added product controller and implementation