public override async Task SetUpGameAsync(bool isBeginning)
        {
            LoadControls();
            if (FinishUpAsync == null)
            {
                throw new BasicBlankException("The loader never set the finish up code.  Rethink");
            }

            if (BasicData.MultiPlayer == false)
            {
                SaveRoot.Level = EnumLevel.Hard;
                IShuffleTiles tiles = MainContainer.Resolve <IShuffleTiles>();
                await tiles.StartShufflingAsync(this);
            }
            else
            {
                SaveRoot.Level    = EnumLevel.None;
                SaveRoot.CanStart = false;
                _model.PlayerWon  = "";
                await LoadStartOptionsAsync();
            }
            //hopefully will be this simple this time (?)

            await FinishUpAsync(isBeginning);
        }
 public AdvancedProcesses(BasicData basicData,
                          TestOptions test,
                          IAsyncDelayer delayer,
                          IEventAggregator aggregator,
                          ThreeLetterFunMainGameClass mainGame,
                          IShuffleTiles shuffle
                          )
 {
     _basicData  = basicData;
     _test       = test;
     _delayer    = delayer;
     _aggregator = aggregator;
     _mainGame   = mainGame;
     _shuffle    = shuffle;
     _network    = _basicData.GetNetwork();
     _checker    = _basicData.GetChecker();
 }