LAZY: add topology sort code