private void createResponse(Contact c, Assessment a, int questionNumber, boolean correct) {
    AssessmentMessage am = null;
    for (AssessmentMessage m : a.getMessages()) {
      if (m.getTopicItem() instanceof Question) {
        if (--questionNumber < 0) {
          am = m;
          break;
        }
      }
    }
    if (am == null) throw new RuntimeException("Could not find question #" + questionNumber);

    Question q = (Question) am.getTopicItem();
    int answer = correct ? q.getCorrectAnswer() : q.getCorrectAnswer() + 1 % q.getAnswers().length;
    AssessmentMessageResponse r = new AssessmentMessageResponse();
    r.setStudent(c);
    r.setAnswer(answer);
    r.setAssessmentMessage(am);
    r.setCorrect(correct);
    assessmentMessageResponseDao.save(r);
  }