tree with iterator