             core.trigger(InternalEvent.didExitFullscreen.rawValue)
         }
     }
-
-    func enterInFullscreen() { }
-
-    func exitFullscreen() { }
-
-    func destroy() { }
 }
 
 struct FullscreenByPlayer: FullscreenStateHandler {
-
     var core: Core
 
     func set(fullscreen: Bool) {

protocol FullscreenStateHandler {

    var core: Core { get }

    init(core: Core)

    func destroy()
}

extension FullscreenStateHandler {
    func enterInFullscreen() { }
    func exitFullscreen() { }
    func destroy() { }
}

struct FullscreenByApp: FullscreenStateHandler {
    var core: Core

    func set(fullscreen: Bool) {
