Refactor to make more DRY & save or update products in Product class.