if price provided, make it equal to unitPrice,
modify toString of product,
make compare method of abstractObjectComparator to abstract