     /**
      *  @inheritDoc
      */
-    public function swapElements(element1:Object, element2:Object):void
+    public function swapElements(element1:IVisualElement, element2:IVisualElement):void
     {
         swapElementsAt(getElementIndex(element1), getElementIndex(element2));
     }

    /**
     *  @private
     */
    public function set mxmlContent(value:Object):void
    {
        _mxmlContent = value;
        
        if (_mxmlContent is Array)
            _mxmlContentType = MXML_CONTENT_TYPE_ARRAY;
        else
            _mxmlContentType = MXML_CONTENT_TYPE_UNKNOWN;
            
        mxmlContentChanged = true;
        maskChanged = true;
        invalidateProperties();

        var n:int = numElements;
        for (var i:int = 0; i < n; i++)
        {
            var child:IVisualElement = getElementAt(i);

            if ( recursive && child is IStyleClient)
            {
