 //          MARK: - Undefined Type
             else {
                 if let value: AnyObject = dictionary[property] {
-                    try assignUndefinedValue(value, forKey: property)
+                    try assignUndefinedValue(value, forProperty: property)
                 }
             }
         }

    /// Override this method in subclasses to assign a value of an undefined type to a property
    /// - parameter value: the value to be assigned
    /// - parameter key: the name of the property to assign
    public func assignUndefinedValue(undefinedValue: AnyObject, forKey key: String) throws {}
    
    public func shouldFailWithInvalidValue(value: AnyObject?, forProperty property: String) -> Bool { return false }
    

        return formatter
    }()
    
    public class func dateFromString(string: String) -> NSDate? {
        if let date = dateFormatter.dateFromString(string) {
            return date
        }
