add component sub generator