Rework cart to use new CartContext and Storage component