public void stepSim(long timeStep) {
		long endTime = this.curTime + timeStep;
		try {
			PreparedStatement getInfected = this.fludb.prepareStatement(
					"SELECT infectedID FROM "+EpiSimUtil.dendroConTbl+" WHERE victimID = ?");
			Statement getTransEvents = this.fludb.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()){
				if (isOpen(transEvents.getInt("locationID"))) {
					Person victim = this.getPerson(new Integer(transEvents.getInt("victimID")));
					long time = transEvents.getLong("time");
					getInfected.setInt(1, victim.getID());
					ResultSet infectedIDs = getInfected.executeQuery();
					LinkedList<Person> infectedPeople = new LinkedList<Person>();
					boolean infectedPersonPresent = false;
					while(infectedIDs.next()){
						Integer infectedID = new Integer(infectedIDs.getInt("infectedID"));
						Person infectedPerson = getPerson(infectedID);
						infectedPeople.add(infectedPerson);
						infectedPersonPresent = infectedPersonPresent || infectedPerson.isInfected(time);
					}
					if (infectedPersonPresent){
						this.infect(victim, time);
						Iterator<Person> itr = infectedPeople.iterator();
						while (itr.hasNext()){
							this.infect(itr.next(),time);
						}
					}
//					if (infectedPersonPresent){
//						boolean newInf = victim.infect(time);
//						if(newInf) {
//							this.numInfected++;
//							if(this.trackInfLoc)
//								this.incInfCountOfLocVisited(victim);
//						}
//						Iterator<Person> itr = infectedPeople.iterator();
//						while (itr.hasNext()){
//							Person p = itr.next();
//							newInf = p.infect(time);
//							if(newInf) {
//								this.numInfected++;
//								if(this.trackInfLoc)
//									this.incInfCountOfLocVisited(p);
//							}
//						}
//					}
				}
			}
			this.curTime = endTime;
		} catch (Exception e) {
			System.out.println(e);
		}
	}