modular refactoring