private static DirectoryWatcher CreateOrReuseWatcher([NotNull] string directory) {
var watcher = Watchers.FirstOrDefault(x => x.TargetDirectory.Equals(directory, StringComparison.OrdinalIgnoreCase));
if (watcher != null) return watcher;
watcher = new DirectoryWatcher(directory);
Watchers.Add(watcher);
return watcher;
}