add undo-persistence