generating the product model