diff --git a/cmd/mist/assets/ext/big.js b/cmd/mist/assets/ext/big.js
index daa8d72271b16566780b7b244ea1dd4009e9ca2e..145a6aa6c098b4a873bd31a86d6cb9241407099e 100644
--- a/cmd/mist/assets/ext/big.js
+++ b/cmd/mist/assets/ext/big.js
@@ -15,7 +15,7 @@
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 // MA 02110-1301  USA
 
-var bigInt = (function () {
+var BigNumber = (function () {
     var base = 10000000, logBase = 7;
     var sign = {
         positive: false,
@@ -73,7 +73,7 @@ var bigInt = (function () {
         var isValid = (base == 16 ? /^[0-9A-F]*$/ : /^[0-9]+$/).test(text);
         if (!isValid) throw new Error("Invalid integer");
 	if (base == 16) {
-		var val = bigInt(0);
+		var val = BigNumber(0);
 		while (text.length) {
 			v = text.charCodeAt(0) - 48;
 			if (v > 9)
@@ -89,19 +89,19 @@ var bigInt = (function () {
 		    value.push(+text.slice(divider));
 		    text = text.slice(0, divider);
 		}
-	        var val = bigInt(value, s);
+	        var val = BigNumber(value, s);
 	        if (first) normalize(first, val);
         	return val;
 	}
     };
 
     var goesInto = function (a, b) {
-        var a = bigInt(a, sign.positive), b = bigInt(b, sign.positive);
+        var a = BigNumber(a, sign.positive), b = BigNumber(b, sign.positive);
         if (a.equals(0)) throw new Error("Cannot divide by 0");
         var n = 0;
         do {
             var inc = 1;
-            var c = bigInt(a.value, sign.positive), t = c.times(10);
+            var c = BigNumber(a.value, sign.positive), t = c.times(10);
             while (t.lesser(b)) {
                 c = t;
                 inc *= 10;
@@ -119,7 +119,7 @@ var bigInt = (function () {
         };
     };
 
-    var bigInt = function (value, s) {
+    var BigNumber = function (value, s) {
         var self = {
             value: value,
             sign: s
@@ -129,11 +129,11 @@ var bigInt = (function () {
             sign: s,
             negate: function (m) {
                 var first = m || self;
-                return bigInt(first.value, !first.sign);
+                return BigNumber(first.value, !first.sign);
             },
             abs: function (m) {
                 var first = m || self;
-                return bigInt(first.value, sign.positive);
+                return BigNumber(first.value, sign.positive);
             },
             add: function (n, m) {
                 var s, first = self, second;
@@ -141,8 +141,8 @@ var bigInt = (function () {
                 else second = parse(n, first);
                 s = first.sign;
                 if (first.sign !== second.sign) {
-                    first = bigInt(first.value, sign.positive);
-                    second = bigInt(second.value, sign.positive);
+                    first = BigNumber(first.value, sign.positive);
+                    second = BigNumber(second.value, sign.positive);
                     return s === sign.positive ?
 						o.subtract(first, second) :
 						o.subtract(second, first);
@@ -157,7 +157,7 @@ var bigInt = (function () {
                     sum -= carry * base;
                     result.push(sum);
                 }
-                return bigInt(result, s);
+                return BigNumber(result, s);
             },
             plus: function (n, m) {
                 return o.add(n, m);
@@ -178,7 +178,7 @@ var bigInt = (function () {
                     var minuend = (borrow * base) + tmp - b[i];
                     result.push(minuend);
                 }
-                return bigInt(result, sign.positive);
+                return BigNumber(result, sign.positive);
             },
             minus: function (n, m) {
                 return o.subtract(n, m);
@@ -223,7 +223,7 @@ var bigInt = (function () {
                     sum -= carry * base;
                     result.push(sum);
                 }
-                return bigInt(result, s);
+                return BigNumber(result, s);
             },
             times: function (n, m) {
                 return o.multiply(n, m);
@@ -233,9 +233,9 @@ var bigInt = (function () {
                 if (m) (first = parse(n)) && (second = parse(m));
                 else second = parse(n, first);
                 s = first.sign !== second.sign;
-                if (bigInt(first.value, first.sign).equals(0)) return {
-                    quotient: bigInt([0], sign.positive),
-                    remainder: bigInt([0], sign.positive)
+                if (BigNumber(first.value, first.sign).equals(0)) return {
+                    quotient: BigNumber([0], sign.positive),
+                    remainder: BigNumber([0], sign.positive)
                 };
                 if (second.equals(0)) throw new Error("Cannot divide by zero");
                 var a = first.value, b = second.value;
@@ -248,8 +248,8 @@ var bigInt = (function () {
                 }
                 result.reverse();
                 return {
-                    quotient: bigInt(result, s),
-                    remainder: bigInt(remainder, first.sign)
+                    quotient: BigNumber(result, s),
+                    remainder: BigNumber(remainder, first.sign)
                 };
             },
             divide: function (n, m) {
@@ -268,7 +268,7 @@ var bigInt = (function () {
                 var a = first, b = second;
                 if (b.lesser(0)) return ZERO;
                 if (b.equals(0)) return ONE;
-                var result = bigInt(a.value, a.sign);
+                var result = BigNumber(a.value, a.sign);
 
                 if (b.mod(2).equals(0)) {
                     var c = result.pow(b.over(2));
@@ -377,9 +377,9 @@ var bigInt = (function () {
         return o;
     };
 
-    var ZERO = bigInt([0], sign.positive);
-    var ONE = bigInt([1], sign.positive);
-    var MINUS_ONE = bigInt([1], sign.negative);
+    var ZERO = BigNumber([0], sign.positive);
+    var ONE = BigNumber([1], sign.positive);
+    var MINUS_ONE = BigNumber([1], sign.negative);
 
     var fnReturn = function (a) {
         if (typeof a === "undefined") return ZERO;
@@ -392,6 +392,6 @@ var bigInt = (function () {
 })();
 
 if (typeof module !== "undefined") {
-    module.exports = bigInt;
+    module.exports = BigNumber;
 }
 
diff --git a/cmd/mist/assets/ext/dist/ethereum.js b/cmd/mist/assets/ext/dist/ethereum.js
index 7e7be6d9dce9078120dfef0100bd4498d97ff8bf..6e6c5020cc952fa7c4b9989a61009caab989d72c 100644
--- a/cmd/mist/assets/ext/dist/ethereum.js
+++ b/cmd/mist/assets/ext/dist/ethereum.js
@@ -1195,4 +1195,4 @@ module.exports = web3;
 },{"./lib/abi":1,"./lib/contract":2,"./lib/filter":3,"./lib/httpsync":4,"./lib/providermanager":5,"./lib/qtsync":6,"./lib/web3":7}]},{},["web3"])
 
 
-//# sourceMappingURL=ethereum.js.map
\ No newline at end of file
+//# sourceMappingURL=ethereum.js.map
diff --git a/cmd/mist/assets/ext/example/balance.html b/cmd/mist/assets/ext/example/balance.html
index 88f55315a89d8bcc212d4ba885ec533c85a4f80f..75c41dc8e5ed437ecabe365c52b4dbef0159645c 100644
--- a/cmd/mist/assets/ext/example/balance.html
+++ b/cmd/mist/assets/ext/example/balance.html
@@ -2,11 +2,13 @@
 <html>
 
 <head>
-<script type="text/javascript" src="js/bignumber.js/bignumber.min.js"></script>
+<script type="text/javascript" src="../bignumber.min.js"></script>
 <script type="text/javascript" src="../dist/ethereum.js"></script>
 <script type="text/javascript">
    
+console.log("hello world");
     var web3 = require('web3');
+console.log(web3)
     web3.setProvider(new web3.providers.HttpSyncProvider('http://localhost:8080'));
 
     function watchBalance() {
@@ -25,6 +27,11 @@
         });
     }
 
+var request = new XMLHttpRequest();
+request.open('POST', "http://localhost:8080", false);
+request.send({});
+
+
 </script>
 </head>
 <body>
diff --git a/cmd/mist/assets/qml/main.qml b/cmd/mist/assets/qml/main.qml
index b5f1ac0ee2a11eb20da231d6fdebc5bc3efcbbdd..c888737955611ec3bf2c529f19b4627472dd9718 100644
--- a/cmd/mist/assets/qml/main.qml
+++ b/cmd/mist/assets/qml/main.qml
@@ -45,9 +45,9 @@ ApplicationWindow {
 
 		mainSplit.setView(wallet.view, wallet.menuItem);
 
-		try {
-			newBrowserTab("http://google.com");
-		} catch(e) { console.log(e); }
+		console.log("starting browser")
+		newBrowserTab("http://etherian.io");
+		console.log("done")
 
 		// Command setup
 		gui.sendCommand(0)
diff --git a/cmd/mist/assets/qml/views/browser2.qml b/cmd/mist/assets/qml/views/browser2.qml
index 530dde6b932923efefcf64d30d30047fd3d695fb..53fd72ffd97c4a60843e5799b1c0248ef4233e00 100644
--- a/cmd/mist/assets/qml/views/browser2.qml
+++ b/cmd/mist/assets/qml/views/browser2.qml
@@ -1,11 +1,10 @@
 import QtQuick 2.0
-import QtWebEngine 1.0
-//import QtWebEngine.experimental 1.0
 import QtQuick.Controls 1.0;
 import QtQuick.Controls.Styles 1.0
 import QtQuick.Layouts 1.0;
+import QtWebEngine 1.0
+//import QtWebEngine.experimental 1.0
 import QtQuick.Window 2.0;
-import Ethereum 1.0
 
 Rectangle {
 	id: window
@@ -64,17 +63,6 @@ Rectangle {
 	}
 
 	Component.onCompleted: {
-		webview.url = "http://etherian.io"
-	}
-
-	function messages(messages, id) {
-		// Bit of a cheat to get proper JSON
-		var m = JSON.parse(JSON.parse(JSON.stringify(messages)))
-		webview.postEvent("eth_changed", id, m);
-	}
-
-	function onShhMessage(message, id) {
-		webview.postEvent("shh_changed", id, message)
 	}
 
 	Item {
@@ -129,6 +117,8 @@ Rectangle {
 				}
 				iconSource: "../../bug.png"
 				onClicked: {
+					// XXX soon
+					return
 					if(inspector.visible == true){
 						inspector.visible = false
 					}else{
@@ -155,13 +145,23 @@ Rectangle {
 		WebEngineView {
 			objectName: "webView"
 			id: webview
-			//	anchors.fill: parent
 			anchors {
 				left: parent.left
 				right: parent.right
 				bottom: parent.bottom
 				top: divider.bottom
 			}
+
+			onLoadingChanged: {
+				console.log(url)
+				if (loadRequest.status == WebEngineView.LoadSucceededStatus) {
+					webview.runJavaScript(eth.readFile("bignumber.min.js"));
+					webview.runJavaScript(eth.readFile("dist/ethereum.js"));
+				}
+			}
+			onJavaScriptConsoleMessage: {
+				console.log(sourceID + ":" + lineNumber + ":" + JSON.stringify(message));
+			}
 		}
 
 		Rectangle {
@@ -193,6 +193,7 @@ Rectangle {
 				top: sizeGrip.bottom
 				bottom: root.bottom
 			}
+
 		}
 
 		states: [
diff --git a/cmd/mist/ext_app.go b/cmd/mist/ext_app.go
index 012c94923ac00869617220e52653214a33dcda87..3a41fe5ded967a6b70c9b48c19059f59d4c25dde 100644
--- a/cmd/mist/ext_app.go
+++ b/cmd/mist/ext_app.go
@@ -21,12 +21,9 @@
 package main
 
 import (
-	"encoding/json"
-
 	"github.com/ethereum/go-ethereum/core"
 	"github.com/ethereum/go-ethereum/core/types"
 	"github.com/ethereum/go-ethereum/event"
-	"github.com/ethereum/go-ethereum/javascript"
 	"github.com/ethereum/go-ethereum/state"
 	"github.com/ethereum/go-ethereum/ui/qt"
 	"github.com/ethereum/go-ethereum/xeth"
@@ -113,13 +110,15 @@ func (app *ExtApplication) mainLoop() {
 		case core.NewBlockEvent:
 			app.container.NewBlock(ev.Block)
 
-		case state.Messages:
-			for id, filter := range app.filters {
-				msgs := filter.FilterMessages(ev)
-				if len(msgs) > 0 {
-					app.container.Messages(msgs, id)
+			/* TODO remove
+			case state.Messages:
+				for id, filter := range app.filters {
+					msgs := filter.FilterMessages(ev)
+					if len(msgs) > 0 {
+						app.container.Messages(msgs, id)
+					}
 				}
-			}
+			*/
 		}
 	}
 }
@@ -129,6 +128,7 @@ func (self *ExtApplication) Watch(filterOptions map[string]interface{}, identifi
 }
 
 func (self *ExtApplication) GetMessages(object map[string]interface{}) string {
+	/* TODO remove me
 	filter := qt.NewFilterFromMap(object, self.eth)
 
 	messages := filter.Find()
@@ -143,4 +143,6 @@ func (self *ExtApplication) GetMessages(object map[string]interface{}) string {
 	}
 
 	return string(b)
+	*/
+	return ""
 }
diff --git a/cmd/mist/gui.go b/cmd/mist/gui.go
index fd2ad5a1170f3070792a957e649e531136015106..c563a5ee808e787583daf8191cd957196d50ad98 100644
--- a/cmd/mist/gui.go
+++ b/cmd/mist/gui.go
@@ -398,14 +398,6 @@ func (gui *Gui) setup() {
 		gui.setPeerInfo()
 	}()
 
-	// Inject javascript files each time navigation is requested.
-	// Unfortunately webview.experimental.userScripts injects _after_
-	// the page has loaded which kind of renders it useless...
-	//jsfiles := loadJavascriptAssets(gui)
-	gui.getObjectByName("webView").On("navigationRequested", func() {
-		//gui.getObjectByName("webView").Call("injectJs", jsfiles)
-	})
-
 	gui.whisper.SetView(gui.getObjectByName("whisperView"))
 
 	gui.SendCommand(update)
diff --git a/cmd/mist/html_container.go b/cmd/mist/html_container.go
index f2ba6fbe24196c893de6306fc63b12dd25704ce7..3e3613e9a5d9872ae5a7afee26085325a915b5a6 100644
--- a/cmd/mist/html_container.go
+++ b/cmd/mist/html_container.go
@@ -21,7 +21,6 @@
 package main
 
 import (
-	"encoding/json"
 	"errors"
 	"fmt"
 	"io/ioutil"
@@ -32,7 +31,6 @@ import (
 
 	"github.com/ethereum/go-ethereum/core/types"
 	"github.com/ethereum/go-ethereum/ethutil"
-	"github.com/ethereum/go-ethereum/javascript"
 	"github.com/ethereum/go-ethereum/state"
 	"github.com/ethereum/go-ethereum/xeth"
 	"github.com/howeyc/fsnotify"
@@ -147,6 +145,7 @@ func (app *HtmlApplication) NewBlock(block *types.Block) {
 }
 
 func (self *HtmlApplication) Messages(messages state.Messages, id string) {
+	/* TODO remove me
 	var msgs []javascript.JSMessage
 	for _, m := range messages {
 		msgs = append(msgs, javascript.NewJSMessage(m))
@@ -155,6 +154,7 @@ func (self *HtmlApplication) Messages(messages state.Messages, id string) {
 	b, _ := json.Marshal(msgs)
 
 	self.webView.Call("onWatchedCb", string(b), id)
+	*/
 }
 
 func (app *HtmlApplication) Destroy() {
diff --git a/cmd/mist/ui_lib.go b/cmd/mist/ui_lib.go
index e0321f6dd07907eaae02d4aa1d5dda366dadaf4e..2cb6895b37a74e6bd6035b0d6478babcc8bfc3da 100644
--- a/cmd/mist/ui_lib.go
+++ b/cmd/mist/ui_lib.go
@@ -23,11 +23,11 @@ package main
 import (
 	"bytes"
 	"fmt"
+	"io/ioutil"
 	"path"
 	"strconv"
 	"strings"
 
-	"github.com/ethereum/go-ethereum/core"
 	"github.com/ethereum/go-ethereum/core/types"
 	"github.com/ethereum/go-ethereum/crypto"
 	"github.com/ethereum/go-ethereum/eth"
@@ -35,8 +35,6 @@ import (
 	"github.com/ethereum/go-ethereum/event/filter"
 	"github.com/ethereum/go-ethereum/javascript"
 	"github.com/ethereum/go-ethereum/miner"
-	"github.com/ethereum/go-ethereum/state"
-	"github.com/ethereum/go-ethereum/ui/qt"
 	"github.com/ethereum/go-ethereum/xeth"
 	"gopkg.in/qml.v1"
 )
@@ -313,34 +311,50 @@ func (self *UiLib) ToAscii(data string) string {
 
 /// Ethereum filter methods
 func (self *UiLib) NewFilter(object map[string]interface{}, view *qml.Common) (id int) {
+	/* TODO remove me
 	filter := qt.NewFilterFromMap(object, self.eth)
 	filter.MessageCallback = func(messages state.Messages) {
 		view.Call("messages", xeth.ToJSMessages(messages), id)
 	}
 	id = self.filterManager.InstallFilter(filter)
 	return id
+	*/
+	return 0
 }
 
 func (self *UiLib) NewFilterString(typ string, view *qml.Common) (id int) {
+	/* TODO remove me
 	filter := core.NewFilter(self.eth)
 	filter.BlockCallback = func(block *types.Block) {
 		view.Call("messages", "{}", id)
 	}
 	id = self.filterManager.InstallFilter(filter)
 	return id
+	*/
+	return 0
 }
 
 func (self *UiLib) Messages(id int) *ethutil.List {
+	/* TODO remove me
 	filter := self.filterManager.GetFilter(id)
 	if filter != nil {
 		messages := xeth.ToJSMessages(filter.Find())
 
 		return messages
 	}
+	*/
 
 	return ethutil.EmptyList()
 }
 
+func (self *UiLib) ReadFile(p string) string {
+	content, err := ioutil.ReadFile(self.AssetPath(path.Join("ext", p)))
+	if err != nil {
+		guilogger.Infoln("error reading file", p, ":", err)
+	}
+	return string(content)
+}
+
 func (self *UiLib) UninstallFilter(id int) {
 	self.filterManager.UninstallFilter(id)
 }