public void PopState() { if (StateStack.Count < 1) { throw new Exception("There are no more states to pop"); } var last = StateStack.Last(); StateStack.RemoveAt(StateStack.Count - 1); Position = last.Position; Mode = last.Mode; }