Replace @reify with @cached_property