Recursive watcher