diff --git a/launchers/macosx/I2PLauncher/Utils/browser/ConsoleWebView.storyboard b/launchers/macosx/I2PLauncher/Utils/browser/ConsoleWebView.storyboard
new file mode 100644
index 0000000000000000000000000000000000000000..84d0562766d7183c062ef604325ec1f46c3e6cc0
--- /dev/null
+++ b/launchers/macosx/I2PLauncher/Utils/browser/ConsoleWebView.storyboard
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="oLh-xo-y8T">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <scenes>
+        <!--Window Controller-->
+        <scene sceneID="g0w-9k-Acs">
+            <objects>
+                <windowController id="oLh-xo-y8T" sceneMemberID="viewController">
+                    <window key="window" title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="" animationBehavior="default" id="5Sr-7Y-gfA">
+                        <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
+                        <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
+                        <rect key="contentRect" x="294" y="362" width="480" height="270"/>
+                        <rect key="screenRect" x="0.0" y="0.0" width="1920" height="1177"/>
+                        <connections>
+                            <outlet property="delegate" destination="oLh-xo-y8T" id="Fxx-ke-F0n"/>
+                        </connections>
+                    </window>
+                    <connections>
+                        <segue destination="nXM-BR-Lxj" kind="relationship" relationship="window.shadowedContentViewController" id="3cB-Gf-aj2"/>
+                    </connections>
+                </windowController>
+                <customObject id="K5y-Qa-lNJ" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="50" y="118"/>
+        </scene>
+        <!--Console View Controller-->
+        <scene sceneID="MSW-MZ-pqs">
+            <objects>
+                <viewController id="nXM-BR-Lxj" customClass="ConsoleViewController" customModule="I2PLauncher" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" id="Omy-Aq-Pw7">
+                        <rect key="frame" x="0.0" y="0.0" width="480" height="270"/>
+                        <autoresizingMask key="autoresizingMask"/>
+                    </view>
+                </viewController>
+                <customObject id="LZW-ak-seY" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="757" y="93"/>
+        </scene>
+    </scenes>
+</document>
diff --git a/launchers/macosx/I2PLauncher/Utils/browser/EmbeddedConsoleView.swift b/launchers/macosx/I2PLauncher/Utils/browser/EmbeddedConsoleView.swift
new file mode 100644
index 0000000000000000000000000000000000000000..63d06a64ec679e638d44501ecc76d1fea1efb7ec
--- /dev/null
+++ b/launchers/macosx/I2PLauncher/Utils/browser/EmbeddedConsoleView.swift
@@ -0,0 +1,88 @@
+//
+//  EmbeddedConsoleView.swift
+//  I2PLauncher
+//
+//  Created by Mikal Villa on 08/12/2018.
+//  Copyright © 2018 The I2P Project. All rights reserved.
+//
+
+import AppKit
+import WebKit
+
+/*
+protocol EConsoleViewWrapper {}
+
+class WebViewSource {
+  class func webView() -> EConsoleViewWrapper {
+    if #available(OSX 10.12, *) {
+      //
+      return EmbeddedConsoleView(coder: NSCoder())!
+    } else {
+      // Sorry
+      return EmbeddedConsoleViewDummy()
+    }
+  }
+}
+
+extension EConsoleViewWrapper {
+  static func instantiate(frame frameRect: NSRect) -> EConsoleViewWrapper {
+    return WebViewSource.webView()
+  }
+}
+*/
+
+class ConsoleWindowController: NSWindowController {
+  override func windowDidLoad() {
+    super.windowDidLoad()
+/*    let v: NSView = WebViewSource.webView() as! NSView
+    v.wantsLayer = true
+    self.window?.contentView?.addSubview(v)*/
+  }
+}
+
+class ConsoleViewController: NSViewController {
+  var webView: WKWebView!
+  let consoleWebUrl = URL(string: "http://127.0.0.1:7657")
+  
+  override func loadView() {
+    let webConfiguration = WKWebViewConfiguration()
+    webView = WKWebView(frame: .zero, configuration: webConfiguration)
+    //webView.uiDelegate = self
+    view = webView
+  }
+  override func viewDidLoad() {
+    super.viewDidLoad()
+    
+    webView.load(URLRequest(url: consoleWebUrl!))
+  }
+
+}
+
+/*
+@available(OSX 10.12, *)
+class EmbeddedConsoleView: WKWebView, EConsoleViewWrapper {
+  
+  let consoleWebUrl = URL(string: "http://127.0.0.1:7657")
+  
+  func setupWebViewForConsole(_ f: NSRect = NSRect(x: 0, y: 0, width: 800, height: 400)) {
+    self.allowsBackForwardNavigationGestures = true
+    self.configuration.preferences.javaScriptEnabled = true
+    self.configuration.preferences.plugInsEnabled = false
+    
+    self.load(URLRequest(url: consoleWebUrl!))
+  }
+  
+  override func viewWillDraw() {
+    super.viewWillDraw()
+  }
+  
+  required init?(coder decoder: NSCoder) {
+    super.init(coder: decoder)
+    self.setupWebViewForConsole()
+  }
+  
+}
+
+class EmbeddedConsoleViewDummy: NSView, EConsoleViewWrapper {}
+*/
+
diff --git a/launchers/macosx/I2PLauncher/Utils/browser/FirefoxManager.swift b/launchers/macosx/I2PLauncher/Utils/browser/FirefoxManager.swift
new file mode 100644
index 0000000000000000000000000000000000000000..76d602ad7179f459c4a39bf3bc7c526c368d0d33
--- /dev/null
+++ b/launchers/macosx/I2PLauncher/Utils/browser/FirefoxManager.swift
@@ -0,0 +1,15 @@
+//
+//  FirefoxManager.swift
+//  I2PLauncher
+//
+//  Created by Mikal Villa on 08/12/2018.
+//  Copyright © 2018 The I2P Project. All rights reserved.
+//
+
+import Foundation
+
+
+class FirefoxManager {
+
+}
+