Everything else is refactored and all all tests pass - back to where I started.