added shopping cart functionality