refactoring product