A* algorithm added