       defaults
 
   scrubValue: (keyPath, value) ->
-    value = @constructor.executeTypeFilters(value, schema) if schema = @schemaForKeyPath(keyPath)
+    value = @constructor.executeSchemaValidators(value, schema) if schema = @schemaForKeyPath(keyPath)
     value
 
-Config.addTypeFilters
+Config.addSchemaValidators
   'integer':
     coercion: (value, schema) ->
       value = parseInt(value)
       throw new Error() if isNaN(value)
       value
 
-    minMaxCoercion: (value, schema) ->
-      if schema.minimum? and typeof schema.minimum is 'number'
-        value = Math.max(value, schema.minimum)
-      if schema.maximum? and typeof schema.maximum is 'number'
-        value = Math.min(value, schema.maximum)
-      value
-
   'number':
     coercion: (value, schema) ->
       value = parseFloat(value)
       throw new Error() if isNaN(value)
-      value
-
-    minMaxCoercion: (value, schema) ->
-      if schema.minimum? and typeof schema.minimum is 'number'
-        value = Math.max(value, schema.minimum)
-      if schema.maximum? and typeof schema.maximum is 'number'
-        value = Math.min(value, schema.maximum)
       value
 
   'boolean':

      throw new Error() if typeof value isnt 'object'
      return value unless schema.properties?
      for prop, childSchema of schema.properties
        value[prop] = @executeTypeFilters(value[prop], childSchema) if prop of value
      value

  'array':

      throw new Error() unless Array.isArray(value)
      itemSchema = schema.items
      if itemSchema?
        @executeSchemaValidators(item, itemSchema) for item in value
      else
        value

  '*':
    minimumAndMaximumCoercion: (value, schema) ->
      return value unless typeof value is 'number'
      if schema.minimum? and typeof schema.minimum is 'number'
        value = Math.max(value, schema.minimum)
      if schema.maximum? and typeof schema.maximum is 'number'
        value = Math.min(value, schema.maximum)
      value
