self-learning tool