optimize learner