added a bunch of cart-related stuff