ENH: Midway through the refactoring.