modified Product class