file caching added