started with abstraction-loop