private void ProceedCommand(string command)
        {
            switch (command)
            {
                case "Enter":
                    Console.Clear();
                    this.renderer.RenderPlayfield(this.playfield);
                    this.PlayTurn();
                    break;
                case "Save":
                    var memory = new Caretaker();
                    memory.Memento = this.playfield.SaveMemento();

                    var fileSerializer = new FileSerializer();
                    fileSerializer.SerializeObject(memory.Memento, GameLocation);
                    break;
                case "Exit":
                    Environment.Exit(0);
                    break;
                default:
                    Console.Clear();
                    Console.WriteLine(ChooseCommand);
                    this.ProceedCommand(Console.ReadLine());
                    break;
            }
        }
        private static void ProceedCommand(string command)
        {
            var randomNumberGenerator = new RandomNumberGenerator();
            var reader = new ConsoleReader();
            var renderer = new ConsoleRenderer();
            var factory = new PlayfieldFactory();

            switch (command)
            {
                case "New game":
                    Playfield playfield;
                    Console.Clear();
                    Console.WriteLine(ChooseSizeMessage);

                    string size = Console.ReadLine();

                    playfield = factory.CreatePlayfield(size);
                    playfield.FillPlayfield(randomNumberGenerator);

                    if (playfield == null)
                    {
                        Console.Clear();
                        Console.WriteLine(ChooseSizeMessage);
                        ProceedCommand("New game");
                    }
                    else
                    {
                        var game = new GameEngine(reader, renderer, playfield);
                        game.Run();
                    }

                    break;
                case "Load game":
                    try
                    {
                        var fileSerializer = new FileSerializer();
                        var memento = fileSerializer.DeserializeObject(GameLocation);
                        playfield = factory.CreatePlayfield(ConvertNumberToString(memento.Grid.GetLength(0)));
                        playfield.RestoreMemento(memento);

                        File.Delete(GameLocation);

                        var game = new GameEngine(reader, renderer, playfield);
                        game.Run();
                    }
                    catch (Exception ex)
                    {
                        Console.Clear();
                        Console.WriteLine(ex.Message);
                        Console.WriteLine(WelcomeMessage);
                        ProceedCommand(Console.ReadLine());
                    }

                    break;
                case "Exit":
                    Environment.Exit(0);
                    break;
                default:
                    Console.Clear();
                    Console.WriteLine(WelcomeMessage);
                    ProceedCommand(Console.ReadLine());
                    break;
            }
        }