create smarter cart
add error handling
finish cart
move the cart