factored out PullerNode
factored out watcher
renamed variable
added watch utility
switched to watch.js
Merge remote-tracking branch 'origin/master'