started checkout refactor