updated one sided traversal