improved watcher