Code compiles; tests do not pass; redesigning (without Spring) for OO