         })
     }
     
+    public func editManagedObject(managedObject: NSManagedObject, changes: [String: AnyObject], URLSession: NSURLSession, completionBlock: ((error: NSError?) -> Void)) -> NSURLSessionDataTask {
+        
+        // convert new values to JSON
+        let jsonValues = managedObject.entity.JSONObjectFromCoreDataValues(changes, usingResourceIDAttributeName: self.resourceIDAttributeName)
+        
+        // get resourceID
+        let resourceID = managedObject.valueForKey(self.resourceIDAttributeName) as? UInt
+        
+        return self.editResource(managedObject.entity, withID: resourceID!, changes: jsonValues, URLSession: URLSession, completionBlock: { (error) -> Void in
+            
+            
+            
+        })
+    }
+    
     // MARK: - Internal Methods
     
     private func mergeChangesFromContextDidSaveNotification(notification: NSNotification) {

        return dataTask
    }
    
    // MARK: Cache
    
    private func setupDateCachedAttributeWithAttributeName(dateCachedAttributeName: String) {

        
        let resourcePath = self.resourcePathForEntity(entity)
        
        let resourceURL = self.serverURL.URLByAppendingPathComponent(resourcePath).URLByAppendingPathComponent("\(resourceID)")
        
        let request = NSURLRequest(URL: resourceURL)
        
        let dataTask = URLSession.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
            
