added component subgenerator