new aproach to traversal