hopefully finished splitting out the traversal module