observer undo redo enable done