change the watcher from module levle to class