find shortest paths; kind of works, but datasets are fucked up, so kind of