Implements dijkstra