updated cart functionality