public void stepSim(long timeStep) {
		long endTime = this.curTime + timeStep;
		try {
			Connection con = EpiSimUtil.dbConnect();
			PreparedStatement getInfected = con.prepareStatement(
					"SELECT infectedID FROM "+EpiSimUtil.dendroConTbl+" WHERE victimID = ?");
			Statement getTransEvents = con.createStatement();
			ResultSet transEvents = getTransEvents.executeQuery(
					"SELECT victimID,time,locationID FROM "+EpiSimUtil.dendroTbl+" WHERE time > "+this.curTime+
					" AND time <= "+endTime+" ORDER BY time ASC");
			while (transEvents.next()){
				Integer victim = new Integer(transEvents.getInt("victimID"));
				Integer location = new Integer(transEvents.getInt("locationID"));
				long time = transEvents.getLong("time");
				getInfected.setInt(1, victim.intValue());
				ResultSet infectedIDs = getInfected.executeQuery();
				LinkedList<Integer> infectedPeople = new LinkedList<Integer>();
				boolean infectedPersonPresent = false;
				while(infectedIDs.next()){
					Integer infectedPerson = new Integer(infectedIDs.getInt("infectedID"));
					infectedPeople.add(infectedPerson);
					infectedPersonPresent = infectedPersonPresent || this.isInfected(infectedPerson, time);
				}
				if (infectedPersonPresent){
					//this.infect(victim, time);
					Iterator<Integer> itr = infectedPeople.iterator();
					while (itr.hasNext()){
						Integer infected = itr.next();
						this.infect(infected, victim, location, time);
						Iterator<Integer> itr2 = infectedPeople.iterator();
						while (itr2.hasNext()) {
							this.infect(infected, itr2.next(), location, time);
						}
					}
				}
			}
			this.curTime = endTime;
			con.close();
		} catch (Exception e) {
			System.out.println(e);
		}
	}