generated product model