     public func indexOf(item: ArrayElement) -> Int? {
         return self.list.index { return $0.primaryKey == item.primaryKey }
     }
-    
+
     public func update(success: @escaping CNLModelCompletion, failed: @escaping CNLModelFailed) {
+        update(
+            success: { model, error, _, _, _ in success(model, error) },
+            failed: failed
+        )
+    }
+    
+    public func update(success: @escaping CNLModelIncrementalArrayCompletion, failed: @escaping CNLModelFailed) {
         if let localAPI = createAPI() {
             CNLModelNetworkProvider?.performRequest(
                 api: localAPI,
                 success: { apiObject in
+                    
+                    var createdItems: [ArrayElement] = []
+                    var modifiedItems: [ArrayElement] = []
+                    var deletedItems: [ArrayElement.KeyType] = []
+                    
                     if let data = self.preprocessData(apiObject.answerJSON) {
                         if let created = self.createdItems(data) {
                             #if DEBUG

                            #if DEBUG
                                CNLLog("Model removed items: \(deleted.count)", level: .debug)
                            #endif
                            
                            self.list = self.list.filter { item in !deleted.contains(item.primaryKey) }
                        }
                    }

                            #if DEBUG
                                CNLLog("Model count: \(self.list.count)", level: .debug)
                            #endif
                            success(self, status, createdItems, modifiedItems, deletedItems)
                        },
                        failed: { apiObject, error in failed(self, error) }
                    )
