Undo and redo works; separation of concerns still an issue.