make watch directory configurable

also refactored stuff to make more sense