 		
 		private static const NO_KEY	: String		= "__no_key__";
 		
-		private var _bindings			: Dictionary		= new Dictionary(true);
-		private var _values				: Object			= new Object();
-		private var _properties			: Vector.<String>	= new <String>[];
-		private var _propertyToProvider	: Object			= {};
+		private var _bindings			: Dictionary				= new Dictionary(true);
+		private var _values				: Object					= new Object();
+		private var _properties			: Vector.<String>			= new <String>[];
+		private var _propertyToProvider	: Object					= {};
+		private var _providers			: Vector.<IDataProvider> 	= new <IDataProvider>[];
 		
 		private var _propertyChanged	: Object			= {};
 		
 		public function get numProperties() : uint
 		{
 			return _properties.length;
+		}
+		
+		public function get numProviders() : uint
+		{
+			return _providers.length;
 		}
 		
 		public function propertyExists(propertyName : String) : Boolean

			
			dataProvider.changed.remove(dataProviderChangedHandler);
			
			return this;
		}
		

		{
			if (!dataProvider)
				throw new Error("The argument 'dataProvider' cannot be null.");

			var dataProviderIndex : int = _providers.indexOf(dataProvider);
			
			if (dataProviderIndex == -1)
				throw new ArgumentError("No such dataProvider was added.");
			
			var bindingTable	: Object	= _bindings[dataProvider];
			
