I've been thinking about a layer on top of these chat apps that augment the experience for learning in particular. I've found that once you dig into the problem, a key element to solve for is reinforcement. The "provide information" part is easy, now how do you make it stick and how do you continue over an extended period of time?