watch recursively