@Override
  protected StepProcessingResult determineNextStepNumOnStepProcessing(
      Service36400168Form form, boolean goback, Map<String, Object> model) {
    StepProcessingResult stepProcessingResult =
        super.determineNextStepNumOnStepProcessing(form, goback, model);

    if (stepProcessingResult.getStepNum() == 2) {
      if ("off".equalsIgnoreCase(form.getDov_enable())) {
        stepProcessingResult = new StepProcessingResult(2, "step2applicant.html");
      } else {
        stepProcessingResult = new StepProcessingResult(2, "step2representative.html");
      }
    }

    return stepProcessingResult;
  }
  @Override
  protected StepProcessingResult determineNextStepNumOnStepProcessing(
      Service36400242Form form, boolean goback, Map<String, Object> model) {
    final StepProcessingResult res =
        super.determineNextStepNumOnStepProcessing(form, goback, model);

    if ("1".equals(form.getAccount_skills())) {
      switch (form.getStepNum()) {
        case 2:
          res.setStepNum(4);
          break;
        case 4:
          if (goback) res.setStepNum(2);
          break;
      }
    }

    return res;
  }
  @Override
  protected void patchModelAndFormOnStepProcessing(
      Service36400168Form form,
      Map<String, Object> model,
      StepProcessingResult stepProcessingResult) {
    super.patchModelAndFormOnStepProcessing(form, model, stepProcessingResult);

    if (stepProcessingResult.getStepNum() == 2 && form.getDov_enable_changed().booleanValue()) {

      if ("off".equalsIgnoreCase(form.getDov_enable())) {

        form.fillApplicantAttributesWithPrivateRoomData(this.getPrivateRoomDataContainer());
      } else {
        form.clearApplicantAttributes();
      }

      form.setDov_enable_changed(false);
    }
  }