extract watcher data logic to watcher-data.js