      *  <ol><li>if itemRendererFunction is defined, call 
      *  it to get the renderer factory and instantiate it</li>
      *  <li>if itemRenderer is defined, instantiate one</li>
-     *  <li>if item is a GraphicElement, create the display 
-     *  object for it</li>
-     *  <li>if item is a DisplayObject, use it directly</li></ol>
+     *  <li>if item is an IVisualElement and a DisplayObject, use 
+     *  it directly</li></ol>
      * 
      *  @param item The data element.
      *
      *  @return The renderer that represents the data elelement.
      */
-    protected function createRendererForItem(item:Object, index:int):Object
-    {
-        var myItemRenderer:Object;
-        
-        if (item === null)
-            throw new Error("DataGroup content can not contain null items.");
+    protected function createRendererForItem(item:Object, index:int):IVisualElement
+    {
+        var myItemRenderer:IVisualElement;
         
         // Rules for lookup:
         // 1. if itemRendererFunction is defined, call it to get the renderer factory and instantiate it
         // 2. if itemRenderer is defined, instantiate one
-        // 3. if item is a GraphicElement, create the display object for it
-        // 4. if item is a DisplayObject, use it directly
+        // 3. if item is an IVisualElement and a DisplayObject, use it directly
         
         // 1. if itemRendererFunction is defined, call it to get the renderer factory and instantiate it    
         if (itemRendererFunction != null)

     *  @param index The item index to dis-associate the renderer with
     *  @param myItemRenderer The item renderer
     */
    protected function unregisterRenderer(index:int, myItemRenderer:Object):void
    {
        itemRendererRegistry.splice(index, 1);
    }
    
    /**

    public function set dataProvider(value:IList):void
    {
        if (_dataProvider)
            _dataProvider.removeEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
        
        _dataProvider = value;
        
        if (_dataProvider)
            _dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler, false, 0, true);
            
        dataProviderChanged = true;
        invalidateProperties();
