added learn and teach methods