	public void execute(AwRequest awRequest) {
		try {
			getDao().execute(awRequest);
			@SuppressWarnings("unchecked")
			List<MobilityQueryResult> results = (List<MobilityQueryResult>) awRequest.getResultList();
			List<MobilityQueryResult> chunkedResults = new ArrayList<MobilityQueryResult>();
			ChunkedMobilityQueryResult currentChunkedResult = new ChunkedMobilityQueryResult();
			int count = 0, still = 0, walk = 0, run = 0, bike = 0, drive = 0;
			String startTimestamp = null;
			for(int i = 0; i < results.size(); i++) { 
				MobilityQueryResult result = results.get(i);
				if(0 == count) {
					startTimestamp = result.getTimestamp();
				}
				count++;
				currentChunkedResult.setLocation(result.getLocation());
				currentChunkedResult.setLocationStatus(result.getLocationStatus());
				currentChunkedResult.setTimestamp(result.getTimestamp());
				currentChunkedResult.setTimezone(result.getTimezone());
				if("still".equals(result.getValue())) {
					still++;
				} else if("walk".equals(result.getValue())) {
					walk++;
				} else if("run".equals(result.getValue())) {
					run++;
				} else if("bike".equals(result.getValue())) {
					bike++;
				} else if("drive".equals(result.getValue())) {
					drive++;
				} else {
					_logger.warn("unknown mobility mode found: " + result.getValue());
				}
				if(10 == count || (i == (results.size() - 1)) ) {
					JSONObject o = new JSONObject();
					try {
						o.put("still", still);
						o.put("walk", walk);
						o.put("run", run);
						o.put("bike", bike);
						o.put("drive", drive);
					} catch (JSONException jsone) { 
						_logger.warn(jsone);
					}
					currentChunkedResult.setValue(o);
					currentChunkedResult.setDuration(calcDuration(startTimestamp, currentChunkedResult.getTimestamp()));
					chunkedResults.add(currentChunkedResult);
					count = 0; still = 0; walk = 0; run = 0; bike = 0; drive = 0;
				}
			}
			results.clear();
			awRequest.setResultList(chunkedResults);
		} catch (DataAccessException dae) {
			throw new ServiceException(dae);
		}
	}

	public void execute(AwRequest awRequest) {
		try {
			getDao().execute(awRequest);
			@SuppressWarnings("unchecked")
			List<MobilityQueryResult> results = (List<MobilityQueryResult>) awRequest.getResultList();
			List<MobilityQueryResult> chunkedResults = new ArrayList<MobilityQueryResult>();
			ChunkedMobilityQueryResult currentChunkedResult = new ChunkedMobilityQueryResult();
			int count = 0, still = 0, walk = 0, run = 0, bike = 0, drive = 0;
			String startTimestamp = null;
			for(int i = 0; i < results.size(); i++) { 
				MobilityQueryResult result = results.get(i);
				if(0 == count) {
					startTimestamp = result.getTimestamp();
				}
				count++;
				currentChunkedResult.setLocation(result.getLocation());
				currentChunkedResult.setLocationStatus(result.getLocationStatus());
				currentChunkedResult.setTimestamp(result.getTimestamp());
				currentChunkedResult.setTimezone(result.getTimezone());
				if("still".equals(result.getValue())) {
					still++;
				} else if("walk".equals(result.getValue())) {
					walk++;
				} else if("run".equals(result.getValue())) {
					run++;
				} else if("bike".equals(result.getValue())) {
					bike++;
				} else if("drive".equals(result.getValue())) {
					drive++;
				} else {
					_logger.warn("unknown mobility mode found: " + result.getValue());
				}
				if(10 == count || (i == (results.size() - 1)) ) {
					JSONObject o = new JSONObject();
					try {
						o.put("still", still);
						o.put("walk", walk);
						o.put("run", run);
						o.put("bike", bike);
						o.put("drive", drive);
					} catch (JSONException jsone) { 
						_logger.warn(jsone);
					}
					currentChunkedResult.setValue(o);
					currentChunkedResult.setDuration(calcDuration(startTimestamp, currentChunkedResult.getTimestamp()));
					chunkedResults.add(currentChunkedResult);
					count = 0; still = 0; walk = 0; run = 0; bike = 0; drive = 0;
					currentChunkedResult = new ChunkedMobilityQueryResult();
				}
			}
			results.clear();
			awRequest.setResultList(chunkedResults);
		} catch (DataAccessException dae) {
			throw new ServiceException(dae);
		}
	}
