重構 ExamProblem model