added internal bom generation code