     public class func find(call: ApiCall = ApiCall(), callback: (ModelType?) -> Void) {
         call.provideDefaults(ModelType)
 
-        api().GET(call.resource!, parameters: [:]) { data, error in
-            if data[call.namespace!] != nil {
-                let modelData = data[call.namespace!]
+        perform(
+            .GET,
+            path: call.resource!,
+            parameters: [:],
+            namespace: ModelType.apiNamespace()
+        ) { dictionaryResponse, arrayResponse, errors in
+            if let modelData = dictionaryResponse {
                 let model = self.fromApi(modelData)
                 callback(model)
             } else {

            apiResource = ModelType.apiResource().update
            method = .PUT
        }

        api().runRequest(method, path: model.apiResourceWithReplacements(apiResource), parameters: [ModelType.apiNamespace(): parameters]) { (data, error) in
            if let responseData = data[ModelType.apiNamespace()].dictionaryObject {
                self.model.modifyStoredObject {
                    self.model.updateFromDictionaryWithMapping(responseData, mapping: ModelType.fromJSONMapping())
                }
            }

            if let errors = data[ModelType.apiNamespace()]["errors"].dictionary {
                self.errors = JSONtoDictionary(errors)
            } else if error != nil {
                self.errors = ["base": ["An unexpected server error occurred"]]
            }

            callback(self)
        }
    }

    public func reload(callback: (ApiForm) -> Void) {
        var parameters = model.JSONDictionary()

        api().GET(model.apiResourceWithReplacements(ModelType.apiResource().show), parameters: [:]) { (data, error) in
            if let responseData = data[ModelType.apiNamespace()].dictionaryObject {
                self.model.modifyStoredObject {
                    self.model.updateFromDictionaryWithMapping(responseData, mapping: ModelType.fromJSONMapping())
                }
            }

            if let errors = data[ModelType.apiNamespace()]["errors"].dictionary {
                self.errors = JSONtoDictionary(errors)
            } else if error != nil {
                self.errors = ["base": ["An unexpected server error occurred"]]
            }

            callback(self)
        }
    }
}

            }
        }
    }
    
    public func save(callback: (ApiForm) -> Void) {
        var parameters = model.JSONDictionary()

