protected override void OnStart()
        {
            _gameDataRepository.Start();

            // Initialize data in a in memory repository
            using (var writeContext = _gameDataRepository.BeginWrite())
            {
                InitTeamAndPlayerData(writeContext);
                InitGameSchedule(writeContext);
            }

            // Load all games and start the clock
            var allGames = _gameDataRepository.GetAll <Game>();


            foreach (var game in allGames)
            {
                var activeGame = new GameMetadata(game);

                _games.Add(activeGame);
            }

            //
            _clock.AccelerationFactor = 2m;
            _clock.Start();

            //
            _startableThread.Start();
        }
        protected override void OnStart()
        {
            base.OnStart();

            _readCacheDataRepository.Start();
            _gameDataRepository.Start();

            _logicHandler.Start();

            _gamePlayEngine.Subscribe(_gamePlayListener);

            _gamePlayEngine.Start();
        }