         addChild(backgroundFill);
         
         // arrow
-        var arrowComponent:Arrow = new Arrow(this);
-        arrowComponent.useBackgroundGradient = useBackgroundGradient;
-        arrowComponent.padding = backgroundCornerRadius;
-        arrowComponent.highlightWeight = highlightWeight;
-        arrowComponent.backgroundGradientHeight = backgroundGradientHeight;
-        arrowComponent.borderColor = borderColor;
-        arrowComponent.borderThickness = borderThickness;
-        
-        arrow = arrowComponent;
-        arrow.id = "arrow";
-        addChild(arrow);
+        if (!arrow)
+        {
+            arrow = new CalloutArrow();
+            arrow.id = "arrow";
+            arrow.styleName = this;
+            addChild(arrow);
+        }
         
         // contentGroup
-        contentGroup = new Group();
-        contentGroup.id = "contentGroup";
-        addChild(contentGroup);
-        
-        // contentBackgroundGraphic
-        if (contentBackgroundClass)
-        {
-            contentBackgroundGraphic = new contentBackgroundClass() as SpriteVisualElement;
-            
-            if (contentBackgroundGraphic)
-                addChild(contentBackgroundGraphic);
-        }
-        
-        // contentMask
-        if (useContentMask)
-        {
-            contentMask = new SpriteVisualElement();
-            contentGroup.mask = contentMask;
+        if (!contentGroup)
+        {
+            contentGroup = new Group();
+            contentGroup.id = "contentGroup";
+            addChild(contentGroup);
         }
     }
     

            case DPIClassification.DPI_320:
            {
                backgroundCornerRadius = 16;
                contentBackgroundClass = spark.skins.mobile320.assets.CalloutContentBackground;
                backgroundGradientHeight = 220;
                frameThickness = 16;
                arrowWidth = 104;

            case DPIClassification.DPI_240:
            {
                backgroundCornerRadius = 12;
                contentBackgroundInsetClass = spark.skins.mobile240.assets.CalloutContentBackground;
                backgroundGradientHeight = 165;
                frameThickness = 12;
                arrowWidth = 78;
