i think the name is a little misleading here "LeaderWatcher", this class is more like a factory rather than a watcher, because it only creates instances of different watcher classes based on the passed arguments, and it does not watch anything