 			{
 				// if csvDataString is specified, do not use url
 				url.value = null;
-				csvDataArray = null;
+				csvDataArray = WeaveAPI.CSVParser.parseCSV(csvDataString.value);
 			}
 		}
 		

			return super.initializationComplete && csvDataArray != null;
		}
		
		override protected function initialize():void
		{
			if (csvDataString.value != null && csvDataArray == null) // if data is specified and not loaded yet
			{
				loadCSVData(csvDataString.value);
			}
			super.initialize();
		}
		
		private function loadCSVData(csvData:String):void
		{
			this.csvDataArray = WeaveAPI.CSVParser.parseCSV(csvData);
			if (_attributeHierarchy.value == null)
			{
				// loop through column names, adding indicators to hierarchy
				var firstRow:Array = csvDataArray[0];

				{
					var attr:XML = <attribute
						title={ colName }
					csvColumn={ colName }
					keyType={ keyType.value }/>;
					root.appendChild(attr);
				}
				_attributeHierarchy.value = root;
