Also, though this is implemented as a class, I think it would be better to use the naming convention for decorators and call it `@classproperty`