reorganized class substructure to reflect convention