Migrate to callback based file watcher