public override async Task FinishGetSavedAsync()
        {
            LoadControls();
            _model.PlayerWon = "";
            if (SaveRoot !.CanStart == false)
            {
                await LoadStartOptionsAsync();

                return;
            }
            if (BasicData.MultiPlayer == true && SaveRoot.Level != EnumLevel.None) //maybe its needed anyways otherwise, no deck
            {
                _deck.OrderedObjects();                                            //i think
            }
            if (BasicData.MultiPlayer == true && SaveRoot.Level == EnumLevel.Easy)
            {
                PlayerList !.ForEach(player =>
                {
                    player.MainHandList.ForEach(card => card.ReloadSaved());
                });
            }
            if (BasicData.MultiPlayer == false)
            {
                _deck.ClearObjects();
                _deck.OrderedObjects(); //i think
            }
            _gameboard.NewLoadSavedGame();
            _gameboard.Visible = true;         //try this too.
            _model.TileBoard1 !.UpdateBoard(); //i think.
        }
        async Task nm.IReshuffledCardsNM.ReshuffledCardsReceived(string data)
        {
            CustomBasicList <int> firstList = await js.DeserializeObjectAsync <CustomBasicList <int> >(data);

            if (_deckList.Count == 0)
            {
                _deckList.OrderedObjects(); //maybe this was needed.  i think this is the best way to handle this situation.
            }
            DeckObservableDict <D> NewList = firstList.GetNewObjectListFromDeckList(_deckList);

            SaveRoot !.CardList = NewList.ToRegularDeckDict();
            await AfterReshuffleAsync();
        }