Solve the adapter problem by copying the list, refactor so people don't have to create a TopSorter anymore.
Make TopSortableDAG responsible for sorting