BFS initial impl and tests