add learning method