add A* pathfinding