Added Product class with virtual functions.