public static HashMap<Field, ArrayList<Object>> isConflict(TaskDispenser td) {
		ArrayList<Agent> agents = td.agents;

		HashMap<Field, ArrayList<Object>> objectHashMap = new HashMap<Field, ArrayList<Object>>();

		ArrayList<Box> handledBoxes = new ArrayList<Box>();
		
		for (Agent a : agents) {

			Field agentAt = a.atField;
			addObjectToHashMap(objectHashMap, agentAt, a);
			
			Command c = null;
			try {
				c = a.taskQueue.peek().commandQueue.peek();
			} catch (Exception e) {
				continue;
			}

			if (c != null) { // NoOp check
				Field neighbourField = agentAt.neighbors[c.dir1.ordinal()];
				addObjectToHashMap(objectHashMap, neighbourField, a);

				if (c.cmd.equals("Pull")) {
					
					Field boxAtField = agentAt.neighbors[c.dir2.ordinal()];
					
					handledBoxes.add((Box) boxAtField.object);
					addObjectToHashMap(objectHashMap, boxAtField, a);
				} else if (c.cmd.equals("Push")) {
					handledBoxes.add((Box) agentAt.neighbors[c.dir1.ordinal()].object);

					Field boxAtField = agentAt.neighbors[c.dir1.ordinal()].neighbors[c.dir2.ordinal()];
					addObjectToHashMap(objectHashMap, boxAtField, a);
				}
			}
		}
		
		for(Box b : td.boxes){
			if(!handledBoxes.contains(b)){
				addObjectToHashMap(objectHashMap, b.atField, b);
			}
			
		}

		return objectHashMap;
	}