learner update