         super();
         VideoPlayer.iNCManagerClass = fl.video.NCManagerDynamicStream;
         
-        var flvPlayer:VideoPlayer = new VideoPlayer();
-        videoPlayer = flvPlayer;
-        
         // we wrap the VideoPlayer inside of another container because 
         // the video player doesn't handle setting x/y correctly. we could allocate
         // layout features and subclass it so that layoutX always sets registrationX on the
         // videoPlayer, but this seemed more straight forward
         videoPlayerContainer = new Sprite();
-        videoPlayerContainer.addChild(flvPlayer);
-        
-        flvPlayer.addEventListener(fl.video.VideoEvent.AUTO_REWOUND, videoPlayer_autoRewoundHandler);
-        flvPlayer.addEventListener(fl.video.VideoEvent.CLOSE, videoPlayer_closeHandler);
-        flvPlayer.addEventListener(fl.video.VideoEvent.COMPLETE, videoPlayer_completeHandler);
-        flvPlayer.addEventListener(fl.video.MetadataEvent.METADATA_RECEIVED, videoPlayer_metaDataReceivedHandler);
-        flvPlayer.addEventListener(fl.video.VideoEvent.PLAYHEAD_UPDATE, videoPlayer_playHeadUpdateHandler);
-        flvPlayer.addEventListener(ProgressEvent.PROGRESS, dispatchEvent);
-        flvPlayer.addEventListener(fl.video.VideoEvent.READY, videoPlayer_readyHandler);
-        flvPlayer.addEventListener(fl.video.VideoEvent.STATE_CHANGE, videoPlayer_stateChangeHandler);
+        
+        createUnderlyingVideoPlayer();
     }
     
     //--------------------------------------------------------------------------

     */
    public function pause():void
    {
        if (source == null || videoPlayer.state == VideoState.CONNECTION_ERROR)
            return;
        

        }
        else
        {
            setPlaying(false);
        }
    }
