added Client.purchase