refactoring product list