added A* search, finished!