Class and template to modify a hierarchy of data types