             },
             remoteFetch: {
                 self.remoteDataManager.deck(deckID, completion: $0)
-            },
-            remoteDependecies: { obj, depenedencyCompletion in
-                self.flashcards(obj.serverID) { _ in
-                    depenedencyCompletion()
-                }
             }, completion: completion)
     }
 

            },
            remoteFetch: {
                self.remoteDataManager.userDecks(completion: $0)
            },
            remoteDependeciesCount: {
                return withDependecies ? $0.count : 0
            }, remoteDependecies: {  objs, dependencyCompletion in
                for obj in objs {
                    let flashcards = self.localDataManager.filter(Flashcard.self, predicate: "deckId == '\(obj.serverID)'")
                    if flashcards.isEmpty {
                        self.flashcards(obj.serverID) { _ in
                            dependencyCompletion()
                        }
                    } else {
                        dependencyCompletion()
                    }
                }
            }, completion: completion)
    }


        localFetch localFetch: (() -> DataManagerResponseObject?)? = nil,
                   remoteFetch: ((ServerResultType<JSON>) -> ()) -> (),
                   remoteParsing: (obj: JSON) -> DataManagerResponseObject? = { DataManagerResponseObject(withJSON: $0) },
                   completion: (DataManagerResponse<DataManagerResponseObject>) -> ()) {
        handleRequest(localFetch: localFetch, remoteFetch: remoteFetch, remoteParsing: remoteParsing, completion: completion)

    }

