 		
 		public function getGeographies(dataSetIdentifier:String):WeavePromise
 		{
-			return getGeographiesPromise(dataSetIdentifier).thenAgain(
+			return getGeographiesPromise(dataSetIdentifier).then(
 				function (result:Object):Object
 				{
 					var geo:Object = {};

			var requires:Array = null;
			
			return new WeavePromise(this).depend(dataSource.dataSet)
			.thenAgain(
				function (context:Object):IThenable
				{
					weaveTrace("Calling getDataSetPromise");
					dataset_name = dataSource.dataSet.value;
					return getDatasetPromise(dataset_name);
				}
			, reportError).thenAgain(
				function (datasetInfo:Object):IThenable
				{
					weaveTrace("Calling getVariables", dataset_name);
					service_url = datasetInfo.webService;
					return getVariables(dataset_name);
				}
			, reportError).thenAgain(
				function (variableInfo:Object):IThenable
				{
					weaveTrace("Calling getGeographies", dataset_name);
					title = variableInfo[variable_name].label;
					return getGeographies(dataset_name);
				}
			, reportError).depend(dataSource.geographicScope, dataSource.apiKey, dataSource.geographicFilters).thenAgain(
				function (geographyInfo:Object):IThenable
				{
					geography_name = dataSource.geographicScope.value;
					geography_filters = dataSource.geographicFilters.getSessionState();
					api_key = dataSource.apiKey.value;
					requires = VectorUtils.copy(geographyInfo[geography_id].requires || []);

		}
		private function getVariablesPromise(dataSetIdentifier:String):WeavePromise
		{
			return getDatasetPromise(dataSetIdentifier).then(
				function (dataset:Object):WeavePromise
				{
					return jsonCache.getJsonPromise(_api, dataset.c_variablesLink);
				}
