caching refactored to `@var ||= begin ... end` form