added file watcher
added async lock