background watcher being refactored