Add caching

Fixes #7