better incomplete bug fix

still uses caching when the value exists