added some documentation for caching