     public func onResponse(request: String, responseCode: Int, response: NSDictionary) {
         if responseCode == 200 {
             switch request {
-            case Regex(pattern: AldoRequest.REQUEST_AUTH_TOKEN.regex()):
+            case Regex(pattern: RequestURI.REQUEST_AUTH_TOKEN.regex()):
                 Aldo.getStorage().set(response["token"], forKey: Aldo.Keys.AUTH_TOKEN.rawValue)
                 break
-            case Regex(pattern: AldoRequest.SESSION_CREATE.regex()):
-                let data: [String: String] = [
-                    "sessionID": response["sessionID"] as! String,
-                    "playerID": response["playerID"] as! String,
-                    "modToken": response["modToken"] as! String,
-                    "userToken": response["userToken"] as! String,
-                    "username": response["username"] as! String
-                ]
-                let session: AldoSession = AldoSession(data: data)
-                let sessionData: Data = NSKeyedArchiver.archivedData(withRootObject: session)
-                Aldo.getStorage().set(sessionData, forKey: Aldo.Keys.SESSION.rawValue)
+            case Regex(pattern: RequestURI.SESSION_CREATE.regex()):
+                savePlayer(response: response)
                 break
-            case Regex(pattern: AldoRequest.SESSION_JOIN.regex()):
-                let data: [String: String] = [
-                    "sessionID": response["sessionID"] as! String,
-                    "playerID": response["playerID"] as! String,
-                    "modToken": "",
-                    "userToken": "",
-                    "username": response["username"] as! String
-                ]
-                let session: AldoSession = AldoSession(data: data)
-                let sessionData: Data = NSKeyedArchiver.archivedData(withRootObject: session)
-                Aldo.getStorage().set(sessionData, forKey: Aldo.Keys.SESSION.rawValue)
+            case Regex(pattern: RequestURI.SESSION_JOIN.regex()):
+                savePlayer(response: response)
                 break
-            case Regex(pattern: AldoRequest.SESSION_INFO.regex()):
-                print(response)
+            case Regex(pattern: RequestURI.SESSION_INFO.regex()):
+                let player = Aldo.getPlayer()!
+                let session = createSession(response: response)
+                
+                player.setSession(session: session)
+                Aldo.setPlayer(player: player)
                 break
-            case Regex(pattern: AldoRequest.SESSION_PLAYERS.regex()):
+            case Regex(pattern: RequestURI.SESSION_PLAYERS.regex()):
                 break
-            case Regex(pattern: AldoRequest.SESSION_STATE_PLAY.regex()):
+            case Regex(pattern: RequestURI.SESSION_STATE_PLAY.regex()):
+                let player = Aldo.getPlayer()!
+                player.getSession().setStatus(status: Session.Status.PLAYING)
+                
+                Aldo.setPlayer(player: player)
                 break
-            case Regex(pattern: AldoRequest.SESSION_STATE_PAUSE.regex()):
+            case Regex(pattern: RequestURI.SESSION_STATE_PAUSE.regex()):
+                let player = Aldo.getPlayer()!
+                player.getSession().setStatus(status: Session.Status.PAUSED)
+                
+                Aldo.setPlayer(player: player)
                 break
-            case AldoRequest.SESSION_DELETE.regex():
+            case Regex(pattern: RequestURI.SESSION_DELETE.regex()):
                 Aldo.getStorage().removeObject(forKey: Aldo.Keys.SESSION.rawValue)
                 Aldo.getStorage().synchronize()
                 break
-            case Regex(pattern: AldoRequest.PLAYER_ALL.regex()):
-                break
-            case Regex(pattern: AldoRequest.PLAYER_INFO.regex()):
-                break
-            case Regex(pattern: AldoRequest.PLAYER_USERNAME_UPDATE.regex()):
+            case Regex(pattern: RequestURI.PLAYER_USERNAME_UPDATE.regex()):
+                let player = Aldo.getPlayer()!
+                player.setUsername(username: response["username"] as! String)
                 break
             default:
                 break

        }
    }
    
}

    
}

class AldoMainCallback: Callback {
    
    private var callback: Callback?
    
