added traversal