queue is necessary? cauz BFS?