finish refactor of product controller