 			return _bindingNames[bindingIndex];
 		}
 		
-		/**
-		 * A provider attribute has changed, and the provider tells us.
-		 * For example, camera.fov has changed, the camera dispatches a 'changed' signal with 'fov' as attributeName.
-		 * 
-		 * It could also be that camera.localToWorld has been replaced by another matrix instance.
-		 */
-		private function onProviderChange(source : IDataProvider, attributeName : String) : void
+		private function providerChangedHandler(source : IDataProvider, attributeName : String) : void
 		{
 			if (attributeName == null)
 			{

				// the new value for this key is a dataprovider, we must listen changes.
				if (newDpValue != null)
				{
					newDpValue.changed.add(onProviderAttributeChange);
					
					_attributeToProviders[newDpValue]			||= new <IDataProvider>[];
					_attributeToProvidersAttrNames[newDpValue]	||= new <String>[];

				delete _attributeToProvidersAttrNames[attributeToDelete];
			}
			
			provider.changed.remove(providerChangedHandler);
			
			--_numProviders;
			_providers.splice(_providers.indexOf(provider), 1);
