     }
 
     public init(options: Options = [:], externalPlugins: [Plugin.Type] = []) {
+        super.init()
+
         Logger.logInfo("loading with \(options)", scope: "Clappr")
+
         self.playbackEventsToListen = [
             .ready, .error,
             .playing, .didComplete,

            .didStop, .bufferUpdate,
            .positionUpdate, .willPlay,
            .willPause, .willStop,
            .airPlayStatusUpdate,
        ]

        super.init()

        let loader = Loader(externalPlugins: externalPlugins, options: options)
        let core = Core(loader: loader, options: options)

        setCore(core)
    }

    fileprivate func setCore(_ core: Core) {

        self.core?.on(InternalEvent.didExitFullscreen.rawValue) { [weak self] (info: EventUserInfo) in self?.forward(.exitFullscreen, userInfo: info) }

        bindPlaybackEvents()

        self.core?.render()
    }

    open func attachTo(_ view: UIView, controller: UIViewController) {
