diff --git a/lib/puppet/provider/sensu_handler/json.rb b/lib/puppet/provider/sensu_handler/json.rb
index 6fb762dfd1..b9cb2bcee4 100644
--- a/lib/puppet/provider/sensu_handler/json.rb
+++ b/lib/puppet/provider/sensu_handler/json.rb
@@ -32,6 +32,7 @@ def create
     self.handlers = resource[:handlers] unless resource[:handlers].nil?
     self.mutator = resource[:mutator] unless resource[:mutator].nil?
     self.severities = resource[:severities] unless resource[:severities].nil?
+    self.filters = resource[:filters] unless resource[:filters].nil?
   end
 
   def destroy
@@ -99,9 +100,9 @@ def filters
 
   def filters=(value)
     if value.is_a?(Array)
-      @conf['filters'][resource[:name]]['filters'] = value
+      @conf['handlers'][resource[:name]]['filters'] = value
     else
-      @conf['filters'][resource[:name]]['filters'] = [ value ]
+      @conf['handlers'][resource[:name]]['filters'] = [ value ]
     end
   end
 
diff --git a/lib/puppet/type/sensu_check.rb b/lib/puppet/type/sensu_check.rb
index db45d4643c..419a1dee69 100644
--- a/lib/puppet/type/sensu_check.rb
+++ b/lib/puppet/type/sensu_check.rb
@@ -97,16 +97,22 @@ def insync?(is)
     desc "Check timeout in seconds, after it fails"
   end
 
-  newproperty(:aggregate) do
+  newproperty(:aggregate, :boolean => true) do
     desc "Whether check is aggregate"
+
+    newvalues(:true, :false)
   end
 
-  newproperty(:handle) do
+  newproperty(:handle, :boolean => true) do
     desc "Whether check event send to a handler"
+
+    newvalues(:true, :false)
   end
 
-  newproperty(:publish) do
+  newproperty(:publish, :boolean => true) do
     desc "Whether check is unpublished"
+
+    newvalues(:true, :false)
   end
 
   autorequire(:package) do
diff --git a/lib/puppet/type/sensu_filter.rb b/lib/puppet/type/sensu_filter.rb
index 2dfb94175f..cced30ed43 100644
--- a/lib/puppet/type/sensu_filter.rb
+++ b/lib/puppet/type/sensu_filter.rb
@@ -56,8 +56,10 @@ def insync?(is)
     defaultto {}
   end
 
-  newproperty(:negate) do
+  newproperty(:negate, :boolean => true) do
     desc ""
+
+    newvalues(:true, :false)
   end
 
   autorequire(:package) do
diff --git a/manifests/filter.pp b/manifests/filter.pp
index efdc7efb0b..48eef2a857 100644
--- a/manifests/filter.pp
+++ b/manifests/filter.pp
@@ -38,7 +38,7 @@
     owner   => 'sensu',
     group   => 'sensu',
     mode    => '0444',
-    before  => Sensu_client_subscription[$name],
+    before  => Sensu_filter[$name],
   }
 
   sensu_filter { $name: