first pass at basic shopping cart functionality