         var skinClassFactory:IFactory = getStyle("skinFactory") as IFactory;        
         
         if (skinClassFactory)
-            _skinObject = skinClassFactory.newInstance() as Skin;
+            setSkin( skinClassFactory.newInstance() as Skin );
         
         // Class
-        if (!skinObject)
-        {
-            var skinClass:Class = getStyle("skinZZ") as Class;
+        if (!skin)
+        {
+            var skinClass:Class = getStyle("skinClass") as Class;
             
             if (skinClass)
-                _skinObject = new skinClass();
-        }
-        
-        if (skinObject)
-        {
-            skinObject.owner = this;
-            skinObject.data = this;
+                setSkin( new skinClass() );
+        }
+        
+        if (skin)
+        {
+            skin.owner = this;
+            skin.fxComponent = this;
             
             // As a convenience if someone has declared hostComponent
             // we assign a reference to ourselves.  If the hostComponent

    //
    //--------------------------------------------------------------------------
    
    // we need all these getters/setters around skinObject so it
    // can be a public read-only Bindable variable and a protected
    // read/write variable.
    private var __skinObject:Skin;
    
    [Bindable("skinObjectChanged")]
    
    /**
     *  @private
     */
    private function get _skinObject():Skin
    {
        return __skinObject;
    }
    
    private function set _skinObject(value:Skin):void
    {
        if (value === __skinObject)
           return;
        
        __skinObject = value;
        dispatchEvent(new Event("skinObjectChanged"));
    }
    
    [Bindable("skinObjectChanged")]
    
    /**
     *  The instance of the skin class for this component instance. 
     *  This is a read-only property that you set 
     *  by calling the <code>loadSkin()</code> method.
     */
    public function get skinObject():Skin
    {
        return _skinObject;
    }
    
    //--------------------------------------------------------------------------

                
                if (part.required)
                {
                    if (!(part.id in skin))
                        throw(new Error("Required skin part \"" + part.id + "\" cannot be found.")); 
                }
                
                if (part.id in skin)
                {
                    this[part.id] = skin[part.id];
                    
                    // If the assigned part has already been instantiated, call partAdded() here,
                    // but only for static parts.
