       if let kmp = kmp {
         self.promptAdHocInstall(kmp)
       } else {
-        self.showKMPError()
+        self.showKMPError(KMPError.invalidPackage)
       }
     })
   }
 
-  public func showKMPError() {
+  public func showKMPError(_ error: KMPError) {
+    showSimpleAlert(title: "Error", message: error.rawValue)
+  }
+
+  public func showSimpleAlert(title: String, message: String) {
+    let alertController = UIAlertController(title: title, message: message,
+                                            preferredStyle: UIAlertControllerStyle.alert)
+    alertController.addAction(UIAlertAction(title: "OK",
+                                            style: UIAlertActionStyle.default,
+                                            handler: nil))
+
+    self.window?.rootViewController?.present(alertController, animated: true, completion: nil)
   }
 
   public func promptAdHocInstall(_ kmp: KeymanPackage) {


  @objc func installAdHocBtnHandler() {
    if let adhocDir = _adhocDirectory {
      Manager.shared.parseKMP(adhocDir, complete: { count in
        print("count: \(count)")
        self.window?.rootViewController?.dismiss(animated: true, completion: {
          let title = count == 0 ? "Error" : "Success"
          let message = "\(count) keyboard(s) installed"
          let alertController = UIAlertController(title: title, message:
           message, preferredStyle: UIAlertControllerStyle.alert)
          alertController.addAction(UIAlertAction(title: "OK",
                                                  style: UIAlertActionStyle.default,
                                                  handler: nil))

           self.window?.rootViewController?.present(alertController, animated: true, completion: nil)
        })
      })
    }
  }

    let vc = UIViewController()
    vc.view.backgroundColor = .red
    let wkWebView = WKWebView.init(frame: vc.view.frame)
    wkWebView.backgroundColor = .white
    vc.view.addSubview(wkWebView)
    let cancelBtn = UIBarButtonItem(title: "Cancel", style: .plain,
                                    target: self,
