file caching implemented