refactoring order checkout