cached_property moved to gen