add BFS algorithim