retooling and refactoring