smarter DSG iteration