refine the function return 2 values