     case .fromJSON:
         do {
             if let baseJSON = keyPath.context.json[keyPath.key] {
-                try mapFromJson(baseJSON, toField: &field)
+                try map(from: baseJSON, to: &field)
             }
             else {
                 let userInfo = [ NSLocalizedFailureReasonErrorKey : "Could not find value in JSON \(keyPath.context.json) from keyPath \(keyPath.key)" ]

    case .fromJSON:
        do {
            if let baseJSON = keyPath.context.json[keyPath.key] {
                try mapFromJson(baseJSON, toField: &field)
            }
            else {
                let userInfo = [ NSLocalizedFailureReasonErrorKey : "Value not present in JSON \(keyPath.context.json) from keyPath \(keyPath.key)" ]

    }
}

private func map<T: JSONable>(from json: JSONValue, to field: inout T?) throws where T.ConversionType == T {
    
    if case .null = json {
        field = nil
