adding purchasekeeper functionality