Work on PurchaseProduct utility construct()

Exlain the weaknesses and rem some old code for a testing period