reworked watcher logic