add file change auto-detect and updater