update the function of foresee