only for completePurchase