 open class Player: UIViewController {
 
     /// Player delegate.
-    public weak var delegate: PlayerDelegate?
+    open weak var delegate: PlayerDelegate?
 
     // configuration
     
     /// Local or remote URL for the file asset to be played.
     ///
     /// - Parameter url: URL of the asset.
-    public func setUrl(_ url: URL) {
+    open func setUrl(_ url: URL) {
         // ensure everything is reset beforehand
         if self.playbackState == .playing {
             self.pause()

    }

    /// Stops playback of the media.
    public func stop() {
        if self.playbackState == .stopped {
            return
        }

    }

    /// The natural dimensions of the media.
    open var naturalSize: CGSize {
        get {
            if let playerItem = self._playerItem {
                let track = playerItem.asset.tracks(withMediaType: AVMediaTypeVideo)[0]
