framework refactor 4