Refactor Checkout