Better implementation of property_xxx