use @classmethod instead of @property