Add ToplogicalSort. need more debug