better file watcher