refactor method ordering