public void Register(SignUpLoadingScreen signUpLoadingScreen, PlayerDTO account)
        {
            try
            {
                bool waiting = false;

                Player newPlayer = null;

                ClientServiceProvider csp = new ClientServiceProvider(
                    NetworkObjectParameters.LoginServerInformation.ServerPublicAddress,
                    NetworkObjectParameters.LoginServerInformation.ServerPort,
                    NetworkObjectParameters.LoginServerBufferSize,
                    (serviceProvider, message) =>
                {
                    newPlayer = ObjectWrapper.Deserialize <Player>(message[1]);
                    waiting   = true;
                });
                csp.OnFailToEstabilishConnection += signUpLoadingScreen.OnFailToStablishConnection;

                csp.StartOperation();
                csp.RequestQueue.Enqueue(NetworkObjectParameters.LoginServerAccountCreationRequest, account);

                while (!waiting)
                {
                    Thread.Sleep(100);
                }

                csp.StopOperation();

                if (newPlayer == null)
                {
                    //Unnable to create player (unknown reason)
                    signUpLoadingScreen.OnFailToCreateAccount();
                    return;
                }

                string errorMessage = "";

                //Invalid Nickname
                if (newPlayer.Nickname == null)
                {
                    errorMessage += Language.RegisterFailureNickname;
                }

                //Invalid Email
                if (newPlayer.Email == null)
                {
                    errorMessage += Language.RegisterFailureEmail;
                }

                //Fail
                if (errorMessage.Length > 0)
                {
                    signUpLoadingScreen.OnFailToCreateAccount();
                    return;
                }

                //Success
                signUpLoadingScreen.OnCreateAccount();
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Ex: {ex.Message}");
            }
        }