product komponent refactoring