add eval_fun