 
 		updateFiringTable(nid, fireGrpId[i], cntD2, cntD1);
 
-		if (gpuGrpInfo[fireGrpId[i]].WithSTP)
+		if (groupConfigGPU[fireGrpId[i]].WithSTP)
 			firingUpdateSTP(nid, simTime, fireGrpId[i]);
 
 		// keep track of number spikes per neuron
-		gpuPtrs.nSpikeCnt[nid]++;
+		runtimeDataGPU.nSpikeCnt[nid]++;
 
 		// only neurons would do the remaining settings...
 		// pure poisson generators will return without changing anything else..
-		if (IS_REGULAR_NEURON(nid, gpuNetInfo.numNReg, gpuNetInfo.numNPois))
+		if (IS_REGULAR_NEURON(nid, networkConfigGPU.numNReg, networkConfigGPU.numNPois))
 			resetFiredNeuron(nid, fireGrpId[i], simTime);
 	}
 

				// get our position in the buffer
				fireId = atomicAdd((int*)&fireCnt, 1);

				if (gpuGrpInfo[grpId].MaxDelay == 1)
					atomicAdd((int*)&fireCntD1, 1);

				// store ID of the fired neuron

			if ((fPos >= 0) && (fPos >= k_end)) {

				// get the neuron nid here....
				int val = runtimeDataGPU.firingTableD2[fPos];
				int nid = GET_FIRING_TABLE_NID(val);

				// find the time of firing based on the firing number fPos
				while ( !((fPos >= tex1Dfetch(timingTableD2_tex, t_pos+networkConfigGPU.maxDelay+timingTableD2_tex_offset)) 
					&& (fPos <  tex1Dfetch(timingTableD2_tex, t_pos+networkConfigGPU.maxDelay+1+timingTableD2_tex_offset)))) {
					t_pos--;
				}

