ProductAssembler refactoring