added shortest path algorithm; still in progress