adding PurchaseItem implementation