refactor product_controllerand product model