@Override
  public double distribute(TVC newCon) {
    try {
      stepsCount = 0;
      SortedSet<TVC> conns = environment.getConnectionsSortedUp();
      return walkThrough(conns.toArray(new TVC[conns.size()]), environment.getFirewalls());
    } catch (Exception e) {
      throw new RuntimeException("fatal error", e);
    } finally {
//      System.err.println("Steps count:" + stepsCount);
    }
  }