public void SimSetupButton(int CombinationLevel, InternalSimulator InSim) { int[][] temp = new int[1][]; temp[0] = new int[1]; temp[0][0] = CombinationLevel; IDT.setIntArgs(temp); //IDT.setStringArgs(InSim.GetCommandNames()); This was implemented inside InternalSimulatorSetup; CC.InternalSimulatorSetup(LoggingState, InSim); foreach (CommandCenter l in CC.ReturnCC()) { Subscribe(l); foreach (NodeCluster m in l.ReturnClusters()) { Subscribe(m); } } }