adding dijkstra implemementation