added caching to file loader