abstraction learning method