added traversing