public ProcessResponse startProcess(String name) throws SSOException {

    String id = idGenerator.generateId();

    PasswordManagementProcess p = getPrototype(name);
    if (p == null) throw new SSOException("No such process : " + name);

    // Create a new process based on the received prototype
    p = p.createNewProcess(id);
    runningProcesses.put(p.getProcessId(), p);
    ProcessResponse r = p.start();
    ((BaseProcessState) p.getState()).setNextStep(r.getNextStep());
    return r;
  }