refactor file caching; begin watch