add template for BFS