shoppingcart example mostly done