checkout refactor partial