generating product model