//no need for turn information because the shell is handling that part.
        //hint:  needs instructions and whose turn it is.
        //i think its okay if its repeating this time.
        //since its used for a different purpose.

        //public BoardGamesColorPicker<E, O, P> ColorChooser { get; set; }
        public BeginningChooseColorViewModel(CommandContainer commandContainer, BeginningColorModel <E, O, P> model, IBeginningColorProcesses <E> processes)
        {
            CommandContainer                       = commandContainer;
            _model                                 = model;
            _processes                             = processes;
            _processes.SetInstructions             = (x => Instructions = x);
            _processes.SetTurn                     = (x => Turn = x); //has to set delegates before init obviously.
            _model.ColorChooser.AutoSelectCategory = EnumAutoSelectCategory.AutoEvent;
            //hopefully smart enough that for multiplayer that they can't choose if its not their turn (?)
            _model.ColorChooser.ItemClickedAsync += ColorChooser_ItemClickedAsync;
        }
        public BeginningColorProcessorClass(BeginningColorModel <E, O, P> model,
                                            BasicGameContainer <P, S> gameContainer
                                            )
        {
            _model         = model;
            _gameContainer = gameContainer;
            //looks like i have to set a delegate for showing for all now with pauses.

            MiscDelegates.ComputerChooseColorsAsync = ComputerChooseColorAsync;
            MiscDelegates.ContinueColorsAsync       = ContinueColorsAsync;
            MiscDelegates.FillRestColors            = (() =>
            {
                _model.ColorChooser.FillInRestOfColors();
            });
        }