feat(filterWatcher): create filterWatcherProvider