Refactoring using a new DESelection class.