             Logging.log("Completion: \(cursor) - \(error)")
             Logging.log("Have \(self.records.count) records")
             
-            self.handleResultWithError(error) {
-                self.perform(query, limit: limit, pullAll: pullAll, inDatabase: db)
-            }
+            let usedCursor = pullAll ? cursor : nil
+            
+            self.handleResult(withCursor: usedCursor, limit: limit, error: error, inDatabase: db, retryClosure: retryClosure)
         }
         
         database(db).addOperation(fetchOperation)
     }
-}
-
-private extension CloudRequest {
-    func continueWith(cursor: CKQueryCursor, inDatabase db: UsedDatabase) {
-        
-    }
-}
+}
        }
    }
    
    private func handleResultWithError(error: NSError?, retryClosure: () -> ()) {
        let finalizer = {
            self.finish()
        }
        
        if let error = error, retryAfter = error.userInfo[CKErrorRetryAfterKey] as? NSTimeInterval {

                self.deleted.appendContentsOf(deleted)
            }

            self.handleResult(withCursor: nil, error: error, inDatabase: db) {
                self.delete(record: record, inDatabase: db)
            }
        }
