working on subclassing then adding undo functionality to each subclassed
command;wq