docs: private void removeSporadic() {
  		//System.out.println("REMOVE SPORADIC CALLED");
  		// 1. For each grid g in grid_list
  		//    a. If g is sporadic
  		//       i. If currTime - tg > gap, delete g from grid_list
  		//       ii. Else if (S1 && S2), mark as sporadic
  		//       iii. Else, mark as normal
  		//    b. Else
  		//       i. If (S1 && S2), mark as sporadic
  		
  		// For each grid g in grid_list
  		Iterator<Map.Entry<DensityGrid, CharacteristicVector>> glIter = this.grid_list.entrySet().iterator();
  		HashMap<DensityGrid, CharacteristicVector> newGL = new HashMap<DensityGrid, CharacteristicVector>();
  		ArrayList<DensityGrid> remGL = new ArrayList<DensityGrid>();
  				
  		while(glIter.hasNext())
  		{
  			Map.Entry<DensityGrid, CharacteristicVector> grid = glIter.next();
  			DensityGrid dg = grid.getKey();
  			CharacteristicVector cv = grid.getValue();
  			
  			// If g is sporadic
  			if (cv.isSporadic())
  			{
  				// If currTime - tg > gap, delete g from grid_list
  				if ((this.getCurrTime() - cv.getUpdateTime()) >= gap)
  				{
  					int dgClass = cv.getLabel();
  					
  					if (dgClass != -1)
  						this.cluster_list.get(dgClass).removeGrid(dg);
  					
  					remGL.add(dg);
  					//System.out.println("Removed "+dg.toString()+" from cluster "+dgClass);
  				}
  				// Else if (S1 && S2), mark as sporadic - Else mark as normal
  				else
  				{
  					cv.setSporadic(checkIfSporadic(cv));
  					//System.out.println("within gap" + dg.toString() + " sporadicity assessed "+cv.isSporadic());
  					newGL.put(dg, cv);
  				}
  				
  			}
  			// Else if (S1 && S2), mark as sporadic
  			else
  			{
  				cv.setSporadic(checkIfSporadic(cv));
  				//System.out.println(dg.toString() + " sporadicity assessed "+cv.isSporadic());
  				newGL.put(dg, cv);
  			}
  		}
  		
  		this.grid_list.putAll(newGL);
  		
  		//System.out.println(" - Removed "+remGL.size()+" grids from grid_list.");
  		Iterator<DensityGrid> remIter = remGL.iterator();
  		
  		while(remIter.hasNext())
  		{
  			DensityGrid sporadicDG = remIter.next();
  			//System.out.println("Removing sporadic grid "+sporadicDG.toString()+" at time "+this.getCurrTime()+".");
  			this.deleted_grids.put(sporadicDG, new Integer(this.getCurrTime()));
  			this.grid_list.remove(sporadicDG);
  		}
  		
  	}