private static String codeAnswerAux(String answer,String question){
    question=question.replace("[???]", answer);
    MainInfo.submittedQuestion = question;
    log.finer("\n"+question);
    try {
    	try {checkForbiddenKeyWords(answer);}
    	catch (Error e) {
    		return "Wrong! Try again.\n You are trying to do something that is forbidden\n" +
    				getStackTrace(e);
    	}
	    try{balancedParentesis(answer,0);}
	    catch(Error e){
	      return "Wrong!  Try again.\n Have you used a large amount of open parentesis?"
	          + "Otherwise, you could find the following message useful:\n"+getStackTrace(e);
	    }
	    catch(RuntimeException e){
	      return "Wrong!  Try again.\nYou are only allowed to"
	          + " use answers with balanced parentesis."
	          + "There was a parsing error:\n"+getStackTrace(e);
	    }
	    try {
	      System.out.println("ready to create class");
	      ClassLoader cl = InMemoryJavaCompiler.compile(Arrays.asList(
	          new InMemoryJavaCompiler.SourceFile("Exercise", question)
	          ));
	      //cl.setDefaultAssertionStatus(true);
	      System.out.println("created class");
	      RunningUtils.runMainStrictSecurity(cl, "Exercise",5000);
	      System.out.println("created class and run");
	      return "";//TODO: generate good feedback
	      } catch (CompilationError e) {
	      return "Wrong!  Try again.\nThere was a compilation error:\n"+getStackTrace(e);
	      } catch (InvocationTargetException e) {
	      return "Wrong!  Try again.\nThere was an exception:\n"+getStackTrace(e.getCause());
	      }
    }catch(Throwable e){
      return "Unrecognized error, you may find this message useful:\n"+getStackTrace(e);
    }
  }