Uses Undoable interface to distinguish Command objects that are undoable