refactoring of the product creation