public boolean nextEvents() {
    int kk = k / 2;

    if (current < n) {
      for (int j = 1; j <= kk; j++) {
        int jj = (current + j) % n;

        if (random.nextDouble() < beta) {
          delEdge(edgeId(current, jj));
          int newTarget = chooseNewNode(current, jj);
          String edgeId = edgeId(current, newTarget);

          if (internalGraph.getEdge(edgeId) == null)
            addEdge(edgeId, nodeId(current), nodeId(newTarget));
        }
      }

      current += 1;

      return true;
    } else {
      return false;
    }
  }