discribed smarterLearn()