         }
     }
     
-    //MARK: - Login
+    // MARK: - Login
+    open static func presentLoginMethodVC(_ caller: UIViewController) {
+        let podBundle = Bundle(for: ZypeAppleTVBase.self)
+        
+        guard let bundleURL = podBundle.url(forResource: "ZypeAppleTVBaseResources", withExtension: "bundle") else {
+            assertionFailure("Could not create a path to the bundle")
+            return
+        }
+        guard let bundle = Bundle(url: bundleURL) else {
+            assertionFailure("Could not load the bundle")
+            return
+        }
+        
+        
+        let storyboard = UIStoryboard(name: "DeviceLinking", bundle: bundle)
+        let vc = storyboard.instantiateViewController(withIdentifier: "LoginMethodVC") as! LoginMethodVC
+        caller.present(vc, animated: true, completion: nil)
+    }
+    
     open static func presentLoginVC(_ caller: UIViewController) {
         let podBundle = Bundle(for: ZypeAppleTVBase.self)
         

                    ZypeAppSettings.sharedInstance.limitLivestream.isSet = true
                }
                catch _ {
                     ZypeLog.error("Exception: ZobjectModel - Limit")
                }
                 ZypeAppSettings.sharedInstance.limitLivestream.refreshRate = Int((limitLivestream?.getStringValue("refresh_rate"))!)!
                
                ZypeAppSettings.sharedInstance.limitLivestream.message =  (limitLivestream?.getStringValue("message"))!
            }

    
    open static func livestreamStopped() {
        let playedForDuration = Int(Date().timeIntervalSince1970 - ZypeAppSettings.sharedInstance.limitLivestream.starts)
        ZypeAppSettings.sharedInstance.limitLivestream.played = ZypeAppSettings.sharedInstance.limitLivestream.played + playedForDuration
        print("stopped playing: \(ZypeAppSettings.sharedInstance.limitLivestream.played)")
    }
    
    open static func livestreamLimitReached() -> Bool {
        //if limit livestream not set return false
        if (!ZypeAppSettings.sharedInstance.limitLivestream.isSet){
            return false
        }
