refactoring product view