simplified traversal