add shortest path finding