protected List<HashMap<String, GraphComponent>> processResults(QueryComponents queryComponents, Hashtable<String, Object> result) throws InformationProblem {
		List<HashMap<String, GraphComponent>> resultList = new Vector<>();
		
		ArrayList data = (ArrayList)result.get("data");
		
		if (data != null) {
			
			// assume there is an array element per "row" and (for the time being) that there is just one row being returned
			
			if (LOG.isDebugEnabled()) {
				LOG.debug("processResults - outer data array length: " + data.size());
			}
			
			for (int gg = 0; gg < data.size(); gg++) {	// each row in the returned data array
				
				HashMap<String, GraphComponent> resultMap = new HashMap<>();
				resultList.add(resultMap);
				
				ArrayList dataRow = (ArrayList) data.get(gg);
				
				ReturnClause retClause = queryComponents.getReturnClause();
				
				int rowItemIndex = 0;
				
				for ( GraphComponent retGraphComp : retClause.getReturnComponentList() ) {
					
					if (retGraphComp instanceof GraphNode) {
						
						GraphNode graphNd = (GraphNode) retGraphComp;
						
						Map fullNodePropsMap = (Map) dataRow.get(rowItemIndex);
						rowItemIndex++;
						
						Map nodeProps = extractGraphComponentProperties(fullNodePropsMap);


						ArrayList labelsList = (ArrayList) dataRow.get(rowItemIndex);
						rowItemIndex++;
						
						GraphNode nd = BaseGraphComponentFactory.instanceForBaseGraphNode(labelsList, nodeProps, graphNd.getLocalAlias());
						
						resultMap.put(graphNd.getLocalAlias(), nd);
						
					} else if (retGraphComp instanceof GraphRelationship) {
						
						GraphRelationship graphRel = (GraphRelationship) retGraphComp;
						
						Map fullNodePropsMap = (Map) dataRow.get(rowItemIndex);
						rowItemIndex++;
						
						Map nodeProps = extractGraphComponentProperties(fullNodePropsMap);
						
						String relType = (String) fullNodePropsMap.get("type");
						
						GraphRelationship rel = BaseGraphComponentFactory.instanceForBaseGraphRelationship(null, null, relType, nodeProps);
						rel.setLocalAlias(graphRel.getLocalAlias());
						
						//System.out.println("processResults - rel is: " + rel);
						
						resultMap.put(rel.getLocalAlias(), rel);
						
					} else {
						throw new InformationProblem("Neo4jCypherOverRestGraphComponentSession, processResults - no idea how to process result item: " + retGraphComp);
					}
					
				}
				
			}
			
		}
		
		return resultList;
	}