Move FileWatcher to separate module