     //
     //--------------------------------------------------------------------------
     
+    /**
+     *  Called when a part has been added. Override this function to attach
+     *  behavior to the part.
+     */
+    protected function partAdded(partName:String, instance:*):void
+    {   
+    }
+
+    /**
+     *  Called when an instance of a dynamic part is being removed. 
+     *  Override this function to remove behavior from the part.
+     */
+    protected function partRemoved(partName:String, instance:*):void
+    {       
+    }
+    
+    //--------------------------------------------------------------------------
+    //
+    //  Methods - Dynamic Parts
+    //
+    //--------------------------------------------------------------------------
+    
     // Private cache of instantiated dynamic parts. This is accessed through
     // the numDynamicParts() and getDynamicPartAt() methods.
     private var dynamicPartsCache:Object;
-    
-    /**
-     *  Called when a part has been added. Override this function to attach
-     *  behavior to the part.
-     */
-    protected function partAdded(partName:String, instance:*):void
-    {   
-    }
-
-    /**
-     *  Called when an instance of a dynamic part is being removed. 
-     *  Override this function to remove behavior from the part.
-     */
-    protected function partRemoved(partName:String, instance:*):void
-    {       
-    }
     
     /**
      *  Create an instance of a dynamic part. Dynamic parts should always be instantiated

	 *  directly. Typically, subclasses will not need to override this method.
	 * 
	 *  It instantiates the skin for the component, adds the skin as a child, 
	 *  resolves all part associations, and calls attachBehaviors().
	 */
    protected function loadSkin():void
    {

    }
    
	/**
	 *  Remove behavior from the skin object. This method should be overridden
	 *  by subclasses. 
	 *
	 *  It is called by the unloadSkin() method.
	 */
    protected function unloadingSkin():void
    {
        skinObject.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, skin_propertyChangeHandler);
        
