use watchers in undo/redo