breadth first completed, with tests.
working on main, something wonky going on
fixed breadth first to not leave traces, added main to demonstrate both traversals