modify function order