added product gen