shortest path works, WIP add time contraints, etc