   set: (keyPath, value) ->
     unless value == undefined
       try
-        value = @scrubValue(keyPath, value)
+        value = @makeValueConformToSchema(keyPath, value)
       catch e
         return false
 

        @setRecursive(keys.concat([key]).join('.'), childValue)
    else
      try
        value = @scrubValue(keyPath, value)
        defaultValue = _.valueForKeyPath(@defaultSettings, keyPath)
        value = undefined if _.isEqual(defaultValue, value)
        _.setValueForKeyPath(@settings, keyPath, value)

        newValue = []
        for item in value
          try
            newValue.push @executeSchemaEnforcers(keyPath, item, itemSchema)
          catch error
            console.warn "Error setting item in array: #{error.message}"
        newValue
