     }
     
     /**
+     *  This method is responsible for serializing all data related to
+     *  the navigator's children into an object that can be saved
+     *  by the persistence manager.  This object will be sent to the
+     *  restoreViewData method when the navigator is reinstantiated.
+     * 
+     *  @return The object that represents the navigators state
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function saveViewData():Object
+    {
+        return {label:label, iconClassName:getQualifiedClassName(icon)};
+    }
+    
+    /**
+     *  This method is responsible for restoring the navigator's view
+     *  data based on the object that is passed in.
+     * 
+     *  @param value The saved object that should be used to restore
+     *  the navigators state
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    // TODO (chiedozi): This is not module safe
+    public function restoreViewData(value:Object):void
+    {
+        label = value.label;
+        
+        var iconClassName:String = value.iconClassName;
+        icon = (iconClassName == "null") ? null : getDefinitionByName(iconClassName) as Class;
+    }
+    
+    /**
      *  This method updates various properties of the navigator when a
      *  new view is added and activated.
      * 

        {
            _active = value;
            
            var eventName:String = _active ? FlexEvent.NAVIGATOR_ACTIVATE : 
                                             FlexEvent.NAVIGATOR_DEACTIVATE;
            if (hasEventListener(eventName))
                dispatchEvent(new FlexEvent(eventName));
        }
    }
    

    }
    
    /**
     *  @private
     *  
     *  @langversion 3.0
