Introduce 'build_watcher_guard' method into Watcher, and provide generic implementation for 'start' method