public IEnumerable<IAction> EnumUndoableActions() { SimpleHistoryNode head = Head; while(true) { if(((head == null) || (head == CurrentState)) || (head.NextAction == null)) { yield break; } yield return head.NextAction; head = head.NextNode; } }