private TVC generateTVC(int id) throws CloneNotSupportedException {
    TVC tvc = new TVC(id, r.nextDouble());

    int idx1, idx2;

    idx1 = r.nextInt(NUM_FIREWALLS);

    do {
      idx2 = r.nextInt(NUM_FIREWALLS);
    } while (idx2 == idx1);

    tvc.setFirewallIndexes(idx1, idx2);
    
    for (Environment e : environments) {
      e.addTVC(tvc.clone()); //TODO probably avoid clone in the future?
    }
    return tvc;
  }