Alternative Product class with Builder pattern;