A* almost finished