refactoring framework