public RubikManager Clone()
        {
            RubikManager newRubikManager = new RubikManager();

            newRubikManager.Rotating       = Rotating;
            newRubikManager.rotationLayer  = rotationLayer;
            newRubikManager.rotationStep   = rotationStep;
            newRubikManager.rotationTarget = rotationTarget;
            newRubikManager.RubikCube      = RubikCube.Clone();
            newRubikManager.Moves          = new List <LayerMove>(Moves.Select(m => m.Clone()));
            return(newRubikManager);
        }