more work solving undo