added caching to the callable field