 // Temporary seperation of izhikevich and lif per timestep instructions. Eventually hope to share as much execuation as possible between both models for generality
 void Simulator::temp_izhikevich_per_timestep_instructions(float current_time_in_seconds) {
 
-
-	// --------------- SAME ---------------
-	synapses->check_for_synapse_spike_arrival(current_time_in_seconds);
+	neurons->check_for_neuron_spikes(current_time_in_seconds);
+	input_neurons->check_for_neuron_spikes(current_time_in_seconds);
+
+	synapses->move_spikes_towards_synapses(neurons->d_last_spike_time_of_each_neuron, input_neurons->d_last_spike_time_of_each_neuron, current_time_in_seconds);
+
 	synapses->calculate_postsynaptic_current_injection(neurons, current_time_in_seconds);
-	// --------------- SAME ---------------
-
-	// synapses->apply_ltd_to_synapse_weights(neurons->d_last_spike_time_of_each_neuron, current_time_in_seconds);
-	stdp_rule->Run_STDP(neurons->d_last_spike_time_of_each_neuron, current_time_in_seconds, timestep);
-
-
-	// --------------- SAME ---------------
+
+	if (apply_stdp_to_relevant_synapses){
+		stdp_rule->Run_STDP(neurons->d_last_spike_time_of_each_neuron, current_time_in_seconds, timestep);
+	}
+
 	neurons->update_membrane_potentials(timestep);
 	input_neurons->update_membrane_potentials(timestep);
-
-	neurons->check_for_neuron_spikes(current_time_in_seconds);
-	input_neurons->check_for_neuron_spikes(current_time_in_seconds);
-					
-	synapses->move_spikes_towards_synapses(neurons->d_last_spike_time_of_each_neuron, input_neurons->d_last_spike_time_of_each_neuron, current_time_in_seconds);
-	// --------------- SAME ---------------
-
-
-	// synapses->apply_ltp_to_synapse_weights(neurons->d_last_spike_time_of_each_neuron, current_time_in_seconds);
 
 }
 

					
	synapses->move_spikes_towards_synapses(neurons->d_last_spike_time_of_each_neuron, input_neurons->d_last_spike_time_of_each_neuron, current_time_in_seconds);

	// --------------- SAME ---------------
	// synapses->check_for_synapse_spike_arrival(current_time_in_seconds);

	// Calculate I(t) from delta_g(t) and V(t)

	synapses->update_synaptic_conductances(timestep, current_time_in_seconds);
	
	if (apply_stdp_to_relevant_synapses) {
		stdp_rule->Run_STDP(neurons->d_last_spike_time_of_each_neuron, current_time_in_seconds, timestep);
	}

	neurons->update_membrane_potentials(timestep);
	input_neurons->update_membrane_potentials(timestep);



}



