gross refactoring