Changed the code to avoid the need for a function for each special_attributes, supporting 2 level hierarchical fields. To be further simplified by Matt...