What should be the way to implement UnDo operation in the GUI. I heard that with "command pattern" we should do it. Ideas are welcome!