define cart functionality as well as lay foundations for checking out