treetop abstraction