use staticmethod, classmethod, and property decorators