 }
 
 enum UserRoutes  {
-    case Me
+    case Current
     case None
     
     func url(baseURL: NSURL) -> NSURL {
         switch self {
-        case .Me:
+        case .Current:
             return baseURL.URLByAppendingPathComponent("/me")
         case .None:
             return baseURL

        }
    }
    
    func addFlashcard(deckId:String, flashcardInJSON json: JSON, completion: (ServerResultType<JSON>) -> ()) {
        
        request(.POST, toURL: url(fromRouter: Router.Flashcards(child: .Post, deckId: deckId))).responseJSON {
            switch $0.result {
            case .Success(let value):
                completion(self.wrongRequest(response: value))

    case Error(obj: E)
}

enum NewDataManagerError: ErrorType {
    case JSONParseError, ServerError, NoDeckWithGivenId, ErrorWith(message: String)
}

public class NewDataManager {
    
    let remoteDataManager = RemoteDataManager()
    let localDataManager = LocalDataManager()
    


    func getDeck(withDeckId deckID: String, mode: ManagerMode, managerCompletion: (DataManagerResponse<Deck, NewDataManagerError>)-> ()) {
       
        var localBlock:(()-> (DataManagerResponse<Deck, NewDataManagerError>))?
        
        /// Obsluga roznych trybow - tylko lokalne dane, tylko dane z serwera, badz dane lokalne w przypadku braku dostepu do danych z serwera
        if mode.contains(.Local) {
            localBlock = {
                if let deck: Deck = self.localDataManager.get(withId: deckID) {
                    return .Success(obj: deck)
                } else {
                    return .Error(obj: .NoDeckWithGivenId)
