Complete rewrite of FSWatcher