 
      - Returns: A new `AVPlayerLayer` to which we can direct our visual output.
      */
-    func newPlayerLayer() -> AVPlayerLayer? {
+    public func newPlayerLayer() -> AVPlayerLayer? {
         return AVPlayerLayer(player: avPlayer)
     }
 

     - Returns: `False` if the current `WistiaMedia` matches the parameter (resulting in a no-op).  `True` otherwise,
        _which does not guarantee success of the asynchronous video load_.
    */
    func replaceCurrentVideoWithVideoForMedia(media:WistiaMedia, forcingAsset asset:WistiaAsset? = nil) -> Bool {
        guard media != self.media else { return false }
        pause()


    //MARK: - Controlling Playback

    /// Play the video.  This method is idempotent.
    public func play() {
        if avPlayer.rate == 0 {
            avPlayer.play()
            logEvent(.Play)
