Add caching and improve README.md