Added cacheKey option, closes #2