A* improvment