another wave of refactoring