implemented the new learner interface