create UndoableCommand interface.
everything is a Command now, GUI missing