add eval_fun even through it's not good