@Override
 public void modify(Question question) {
   super.modify(question);
   StringMatchingQuestion q = (StringMatchingQuestion) question;
   if (io.requestYesOrNo("Do you want to modify the number of the items available?")) {
     recreateChoices(q);
   } else if (io.requestYesOrNo("Do you want to modify the choices?")) {
     System.out.println(q.choicesToString());
     if (io.requestYesOrNo("Do you want to modify the choices on the left side?")) {
       int choice = io.requestSingleChoice("Enter choice number:", false);
       if (q.hasSourceElement(choice)) {
         q.setSourceElement(choice, io.requestString("Enter new content for this choice:"));
       } else {
         System.out.println("This choice doesn't exist");
       }
     }
     if (io.requestYesOrNo("Do you want to modify the choices on the right side?")) {
       int choice = io.requestSingleChoice("Enter choice number:", false);
       if (q.hasTargetElement(choice)) {
         q.setTargetElement(choice, io.requestString("Enter new content for this choice:"));
       } else {
         System.out.println("This choice doesn't exist");
       }
     }
   }
 }