private void live() throws Exception {

    long start = System.currentTimeMillis();
    
    FileWriter wr = new FileWriter(OUTPUT_FOLDER + "/model" + System.currentTimeMillis() + ".csv");
    
    StringBuilder b = new StringBuilder();
    b.append("#,");
    // Print header
    for (ConnectionDistributor d : distributors) {
      b.append("Dispersion of ").append(d.getName()).append(',')/*.append("Time ").append(d.getName())*/;
    }
    
    writeMsg(wr, b.toString());

    // Generate connections
    for (int i = 0; i < MAX_CONNECTIONS; i++) {
      TVC con = generateTVC(i + 1);

      b = new StringBuilder();
      b.append(i + 1);

      for (ConnectionDistributor d : distributors) {
        // select firewall
        long t = System.currentTimeMillis();
        double dispersion = d.distribute(con);
        t = System.currentTimeMillis() - t;
        // run state tests
        d.getEnvironment().validateModel();
        // calculate dispersion
        b.append(',').append(dispersion)/*.append(',').append(t)*/;
      }
      writeMsg(wr, b.toString());
    }
    writeMsg(wr, "DONE. Modelling time=" + (System.currentTimeMillis() - start));
    
    wr.flush();
    wr.close();
  }