refactored learners