cleaner traversal, tree iterator with ranged for loops