         return on(event.rawValue, callback: callback)
     }
 
-    fileprivate func bindPlaybackEvents() {
+    private func bindPlaybackEvents() {
         if let playback = core?.activePlayback {
             for event in playbackEventsToListen {
                 let listenId = listenTo(

        }
    }

    fileprivate func unbindPlaybackEvents() {
        for id in playbackEventsListenIds {
            stopListening(id)
        }

        playbackEventsListenIds.removeAll()
    }

    fileprivate func forward(_ event: Event, userInfo: EventUserInfo) {
        trigger(event.rawValue, userInfo: userInfo)
    }
    
    public static func register(plugin: Plugin.Type) {
        plugins.append(plugin.self)
    }

    @objc open func destroy() {

open class Player: BaseObject {

    @objc open var playbackEventsToListen: [String] = []
    private var playbackEventsListenIds: [String] = []
    @objc private(set) open var core: Core?
    static var appPlugins: [Plugin.Type] = []

    @objc open var activeContainer: Container? {
        return core?.activeContainer
