Code reorganization complete. Tests pass. Shouldn't have been so many commits. Lesson learned. :)