In order for @properties to work adequately The category should be a subclass of object. when the class is just not a subclass of item then The 1st time you try accessibility the setter it essentially makes a whole new attribute with the shorter name as an alternative to accessing https://diigo.com/0zn2c9