refactor method order