Add caching support and a few docs fixes