add cached_property comprehend