     {
         super.createChildren();
         
-        if (!labelTextField)
-        {
-            labelTextField = new TextField();
-            labelTextField.multiline = false;
-            labelTextField.wordWrap = false;
-            labelTextField.selectable = false;
-            
-            addChild(DisplayObject(labelTextField));
-            if (_label != "")
-                labelTextField.text = _label;
-            
-            recreateLabelTextFieldStyles = true;
-            invalidateProperties();
-        }
-        
-        // iconDisplay and decoratorClass are created in 
-        // commitProperties()
+        // create any children you need in here
+        
+        // iconDisplay, subTextDisplay, and decoratorDisplay are created in 
+        // commitProperties() since they are dependent on 
+        // other properties and we don't always create them
+        // headerText just uses labelElement to display its data
     }
     
     /**

    }
    
    //----------------------------------
    //  iconField
    //----------------------------------
    

    }
    
    //----------------------------------
    //  subTextField
    //----------------------------------
    
    /**
     *  @private
     */
    private var _subTextField:String;
    
    /**
     *  @private
     */
    private var subTextFieldOrFunctionChanged:Boolean; 
    
    /**
     *  The name of the field in the data provider items to display 
     *  as the subText. 
     *  The <code>subTextFunction</code> property overrides this property.
     *
     *  @default null
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 2.5
     *  @productversion Flex 4.5
     */
    public function get subTextField():String
    {
        // FIXME (rfrishbe): PARB this property name b/c confusing with "TextField" the component
        return _subTextField;
    }
    
    /**
     *  @private
     */
    public function set subTextField(value:String):void
    {
        if (value == _subTextField)
            return;
        
        _subTextField = value;
        subTextFieldOrFunctionChanged = true;
        invalidateProperties();
    }
    
    //----------------------------------
    //  subTextFunction
    //----------------------------------
    
    /**
     *  @private
     */
    private var _subTextFunction:Function;
    
    /**
     *  A user-supplied function to run on each item to determine its subText.  
     *  The <code>subTextFunction</code> property overrides 
     *  the <code>subTextField</code> property.
     *
     *  <p>You can supply a <code>subTextFunction</code> that finds the 
     *  appropriate fields and returns a displayable string. The 
     *  <code>subTextFunction</code> is also good for handling formatting and 
     *  localization.</p>
     *
     *  <p>The subText function takes a single argument which is the item in 
     *  the data provider and returns a String.</p>
     *  <pre>
     *  mySubTextFunction(item:Object):String</pre>
     *
     *  @default null
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 2.5
     *  @productversion Flex 4.5
     */
    public function get subTextFunction():Function
    {
        return _subTextFunction;
    }
    
    /**
     *  @private
     */
    public function set subTextFunction(value:Function):void
    {
        if (value == _subTextFunction)
            return;
        
        _subTextFunction = value;
        subTextFieldOrFunctionChanged = true;
        invalidateProperties(); 
    }
    
    //--------------------------------------------------------------------------
