order refactor
payment refactor