test framework refactor