framework refactoring