rename f -> objective.fun