file hash caching implemented