modified StructureBuilder