public void Split(int count) { Outputs.Clear(); int smallestPower = Context.GetSmallestPower(count); SplitIntoPower(smallestPower); //do the merging List <Output> finals = GetFinalOutputs(); List <Output> outputsToAdd = new List <Output>(); for (int i = 0; i < smallestPower - count; i++) { outputsToAdd.Add(finals[i]); } if (outputsToAdd.Count > 0) { Node oldInput = Inputs[0]; Merger merger = (oldInput as ICanInsertMergerAfter).InsertMergerAfter(); merger.AddInputsSafe(outputsToAdd); merger.OutputRate = oldInput.OutputRate + oldInput.OutputRate / count * (smallestPower - count); } }