component subgenerator