use A* in small distance & TODO