private void StartSession()
    {
        _synchronizationData.myName.Value = _connectionHandle.PlayerName;

        var clientConnection = UDPConnection.CreateClient();

        _clientApplication = new ClientApplication(clientConnection, _synchronizationData);

        if (_connectionHandle.IsHost)
        {
            _serverApplication = new ServerApplication(UDPConnection.CreateServer(), _localSession);
            _serverApplication.matchCreated += OnSessionStart;

            _connectionHandle.AddTask(_serverApplication.WaitForClientsToBeReady(), TaskHandle.PRIORITY_NETWORK);
        }
        else
        {
            _clientApplication.connected += OnSessionStart;
        }

        _connectionHandle.AddTask(_clientApplication.NotifyClientIsReady(), TaskHandle.PRIORITY_NETWORK);
    }