fixes #245: create cache key ivar for unchanging use