      */
     mx_internal function dropDownController_openHandler(event:DropDownEvent):void
     {
-        if (!currentDropDown)
-        {
-            currentDropDown = Callout(dropDown.newInstance());
-            dropDownController.dropDown = currentDropDown;
-            
-            currentDropDown.addEventListener(PopUpEvent.OPEN, open_updateCompleteHandler);
-            currentDropDown.addEventListener(PopUpEvent.CLOSE, close_updateCompleteHandler);
-            
-            // TODO (jasonsj): read proxied properties
-            if (layout)
-                currentDropDown.layout = layout;
-            
-            currentDropDown.mxmlContent = currentContentGroup.getMXMLContent();
-        }
-        
-        // TODO (jasonsj): read proxied properties
-        currentDropDown.horizontalPosition = _horizontalPosition;
-        currentDropDown.verticalPosition = _verticalPosition;
-        
-        currentDropDown.open(openButton, false);
+        // TODO (jasonsj): destroy?
+        if (!callout)
+            callout = createDynamicPartInstance("dropDown") as Callout;
+        
+        if (callout)
+            callout.open(this, false);
     }
     
     /**

            if (dropDownController)
                dropDownController.openButton = openButton;
        }
    }
    
    /**

     */
    mx_internal function dropDownController_closeHandler(event:DropDownEvent):void
    {
        // TODO (jasonsj): close params?
        // dispatch the close event after the callout's PopUpEvent.CLOSE fires
        callout.close();
        
        // TODO (jasonsj): destroy option?
//        removeDynamicPartInstance("dropDown", callout);
//        callout = null;
    }
    
//    private function callout_creationCompleteHandler(event:FlexEvent):void
//    {
//        // initialize contentGroup skin part
//        contentGroup = callout.contentGroup;
//        partAdded("contentGroup", callout.contentGroup);
//    }
    
    /**
     *  @private
     */
    private function callout_openHandler(event:PopUpEvent):void
    {
        dispatchEvent(new DropDownEvent(DropDownEvent.OPEN));
    }
    
    /**
     *  @private
     */
    private function callout_closeHandler(event:PopUpEvent):void
    {   
        dispatchEvent(new DropDownEvent(DropDownEvent.CLOSE));
    }
}
