 
 	// few more fired neurons are left. we update their firing state here..
 	if (fireCnt) {
-		int retCode = newFireUpdate(fireTable, fireGrpId, fireCnt, fireCntD1, simTime);
+		int retCode = updateNewFirings(fireTable, fireGrpId, fireCnt, fireCntD1, simTime);
 		if (retCode != 0) return;
 
 		if (networkConfigGPU.sim_with_stdp && !networkConfigGPU.sim_in_testing)


			__syncthreads();

			// table is full.. dump the local table to the global table before proceeding
			if (fireCntTest >= (FIRE_CHUNK_CNT)) {

				// clear the table and update...
				int retCode = newFireUpdate(fireTable,  fireGrpId, fireCnt, fireCntD1, simTime);
				if (retCode != 0) return;
				// update based on stdp rule
				// KILLME !!! if (simTime > 0))

	return;
}

#define LTP_GROUPING_SZ 16 //!< synaptic grouping for LTP Calculation
/*
 * \brief Computes the STDP update values for each of fired neurons stored in the local firing table.
 *
 * \param[in] fireTablePtr the local firing table with neuron ids of fired neuron
 * \param[in] fireCnt the number of fired neurons in local firing table
 * \param[in] simTime the current time step, stored as neuron firing time entry
 */
__device__ void gpu_updateLTP(int* fireTablePtr, short int* fireGrpId, volatile unsigned int& fireCnt, int& simTime) {
	for(int pos=threadIdx.x/LTP_GROUPING_SZ; pos < fireCnt; pos += (blockDim.x/LTP_GROUPING_SZ))  {
		// each neuron has two variable pre and pre_exc
		// pre: number of pre-neuron
		// pre_exc: number of neuron had has plastic connections
		short int grpId = fireGrpId[pos];

		// STDP calculation: the post-synaptic neron fires after the arrival of pre-synaptic neuron's spike
		if (groupConfigGPU[grpId].WithSTDP) { // MDR, FIXME this probably will cause more thread divergence than need be...
			int  nid   = fireTablePtr[pos];
