added traversal with level specifier