This is used for learning algorithms