refactoring -> now two types of shortest path algorithm implementation - single destination and multi-destination (calculate shortest path source -> all other nodes)