[fixes #30] add optional caching
Merge pull request #35 from stefanpenner/cache

Cache