update watcher loop