refine parameter order