Checkout refactored