class ModelWizard implements Disposable {

  private void addStep(@NotNull ModelWizardStep<?> step) {
    mySteps.add(step);

    for (ModelWizardStep subStep : step.createDependentSteps()) {
      myStepOwners.put(subStep, step);
      addStep(subStep);
    }
  }

  private  ModelWizard(@NotNull Collection<ModelWizardStep> steps);

}