public static void createStats(ArrayList<State> states) {
		State prev = states.remove(0);
		for(State s : states) {
			// If the state was in burst, and is now in sleep, it executed burst_time
			for(ProcessState p : s.sleep_queue.getProcesses()) {
				ProcessState prev_state = prev.queue.findProcessState(p.process);
				if(prev_state != null) {
					getStatistics(p.process).addExecutionTime(p.process.getBurst_time());
				}
			}
			
			// If the state was sleeping, but moved to the burst_queue, it slept sleept_time
			for(ProcessState p : s.queue.getProcesses()) {
				ProcessState prev_state = prev.sleep_queue.findProcessState(p.process);
				if(prev_state != null) {
					getStatistics(p.process).addSleepTime(p.process.getSleep_time());
				}
			}
			
			// If it was in the burst queue, and still it is, it had to wait
			for(ProcessState p : s.queue.getProcesses()) {
				ProcessState prev_state = prev.queue.findProcessState(p.process);
				if(prev_state != null) {
					// Make sure to NOT cummulate time from the previous waiting
					getStatistics(p.process).addWaitTime(prev_state.arrive_at);
					getStatistics(p.process).addWaitTime(-1 * p.arrive_at);
				}
			}
      prev = s;
		}
	}