Implementing undo.