private void Refresh(int phase, MenuLayer layer)
        {
            switch (phase)
            {
            case 1:
                ScoreBox.SetText(GamestateManager.Instance.Points.ToString());
                break;

            case 2:
                Layers[MenuLayer.Scores].FindAll(actor => !ScoreActors.Contains(actor)).ForEach(actor => { actor.Dispose(); Layers[MenuLayer.Scores].Remove(actor); });

                int i = 0;

                ScoreManager.GetScores(10, ScoresOffset).ForEach(score =>
                {
                    Layers[MenuLayer.Scores].AddRange(new List <Actor>
                    {
                        new MenuTextBox(new Vector2f(100, 210 + i * 50), new Vector2f(300, 50), score.Item1, 20),
                        new MenuTextBox(new Vector2f(400, 210 + i++ *50), new Vector2f(300, 50), score.Item2, 20)
                    });
                });
                if (layer != MenuLayer.Scores)
                {
                    Layers[MenuLayer.Scores].ForEach(actor => actor.Visible = false);
                }
                break;

            case 3:
                QuitNoSaveButton.Visible = layer == MenuLayer.Main && GamestateManager.Instance.GamePhase != GamePhase.NotStarted && GamestateManager.Instance.GamePhase != GamePhase.Ending;
                ScoresPrev.Visible       = layer == MenuLayer.Scores && ScoresOffset > 0;
                ScoresNext.Visible       = layer == MenuLayer.Scores && ScoresOffset + 10 < ScoreManager.GetScoresCount();
                break;
            }
        }