Shortest path

May make a few updates if we have time, but calling this good for now.