moves' undo-redo works well