add undo cpabilities