added traversal iterator and tests