refactor classes and methods for watcher