add nonrecur tree traversal