 		public function retrieveRecords(pathMapping:Object, options:Object):Array
 		{
 			var dataType:String = options ? options['dataType'] : null;
-			var keySet:WeavePath = options ? options['keySet'] : null;
+			var keySetPath:WeavePath = options ? options['keySet'] : null;
 			
-			if (!keySet && options is WeavePath)
-				keySet = options as WeavePath;
+			if (!keySetPath && options is WeavePath)
+				keySetPath = options as WeavePath;
 			
 			// if only one argument given and it's a WeavePath object, assume it's supposed to be keySetPath.
 			if (arguments.length == 1 && pathMapping is WeavePath)
 			{
-				keySet = pathMapping as WeavePath;
+				keySetPath = pathMapping as WeavePath;
 				pathMapping = null;
 			}
 			

		            if (column is IAttributeColumn)
		            {
		                output.chains.push(prefix.concat(key));
		                output.paths.push(column);
		            }
		        }
		        else
		        {
		            listChainsAndNodes(item, prefix.concat(key), output);
		        }
		    }
		    return output;

		    }
		    
		    // pathMapping is a nested object mapping property chains to WeavePath objects
		    var obj:Object = listChainsAndColumns(pathMapping);
		    
		    /* Perform the actual retrieval of records */
		    var results:Array = ColumnUtils.joinColumns(obj.columns, dataType, true, keySetPath ? keySetPath.getObject() : null);
		    return results[0]
		        .map(this.qkeyToString)
		        .map(function(key:String, iRow:int, a:Array):Object {
