add do_learn