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

    private var _itemRenderer:IFactory;
    
    private var itemRendererChanged:Boolean;
    
    /**
     *  @private
     *  flag to indicate whether a child in the item renderer has a non-zero layer, requiring child re-ordering.
     */
    private var _layeringFlags:uint = 0;
    
    private static const LAYERING_ENABLED:uint = 	0x1;
    private static const LAYERING_DIRTY:uint = 		0x2;

    [Inspectable(category="Data")]


        invalidateDisplayList();
        
        itemRendererChanged = true;
    }
    
    //----------------------------------
