more unit tests before continuing to refactor