Complete Learner implementation.