diff --git a/ethereal/assets/back.png b/ethereal/assets/back.png
index 71486c7c05795d7ee5a3ef0ee77af0c0085b40d9..38fc84d6ea9203583110c91f2eaf7610061dbbb9 100644
Binary files a/ethereal/assets/back.png and b/ethereal/assets/back.png differ
diff --git a/ethereal/assets/bug.png b/ethereal/assets/bug.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5e85dc99c85e6c283ff978a9a8f626d11fd36e1
Binary files /dev/null and b/ethereal/assets/bug.png differ
diff --git a/ethereal/assets/ext/home.html b/ethereal/assets/ext/home.html
index 86a659d65f3402315434562a095e979f73a990e0..a524e8403278c08b73688aea956044d43e5d294a 100644
--- a/ethereal/assets/ext/home.html
+++ b/ethereal/assets/ext/home.html
@@ -8,14 +8,15 @@ h1 {
     text-align: center;
     font-family: Courier;
     font-size: 50pt;
-    margin-top: 25%
 }
 </style>
 </head>
 
 <body>
 <h1>... Ethereum ...</h1>
-<!-- ĐΞV --!>
+<ul>
+	<li><a href="http://std.eth">std::Service</a></li>
+</ul>
 </body>
 </html>
 
diff --git a/ethereal/assets/qml/webapp.qml b/ethereal/assets/qml/webapp.qml
index ec2f01741a1b790a7497a2bde161b111a9984a2f..a0ec527525908bbd9de2e9956225fe2c3be499d4 100644
--- a/ethereal/assets/qml/webapp.qml
+++ b/ethereal/assets/qml/webapp.qml
@@ -2,6 +2,7 @@ import QtQuick 2.0
 import QtWebKit 3.0
 import QtWebKit.experimental 1.0
 import QtQuick.Controls 1.0;
+import QtQuick.Controls.Styles 1.0
 import QtQuick.Layouts 1.0;
 import QtQuick.Window 2.1;
 import Ethereum 1.0
@@ -9,8 +10,8 @@ import Ethereum 1.0
 ApplicationWindow {
 	id: window
 	title: "Ethereum"
-	width: 900
-	height: 600
+	width: 1000
+	height: 800
 	minimumHeight: 300
 
 	property alias url: webview.url
@@ -24,29 +25,74 @@ ApplicationWindow {
 
 		RowLayout {
 			id: navBar
+			height: 40
 			anchors {
 				left: parent.left
 				right: parent.right
+				leftMargin: 7
 			}
 
 			Button {
 				id: back
-				iconSource: "../back.png"
 				onClicked: {
 					webview.goBack()
 				}
+				style: ButtonStyle {
+					background: Image {
+						source: "../back.png"
+						width: 30
+						height: 30
+					}
+				}
 			}
 
 			TextField {
 				anchors {
-					top: parent.top
 					left: back.right
-					right: parent.right
+					right: toggleInspector.left
+					leftMargin: 5
+					rightMargin: 5
 				}
 				id: uriNav
+				y: parent.height / 2 - this.height / 2
 
 				Keys.onReturnPressed: {
-					var uri = this.text;
+					webview.url = this.text;
+				}
+			}
+
+			Button {
+				id: toggleInspector
+				anchors {
+					right: parent.right
+				}
+				iconSource: "../bug.png"
+				onClicked: {
+					if(inspector.visible == true){
+						inspector.visible = false
+					}else{
+						inspector.visible = true
+						inspector.url = webview.experimental.remoteInspectorUrl
+					}
+				}
+			}
+		}
+
+		WebView {
+			objectName: "webView"
+			id: webview
+			anchors {
+				left: parent.left
+				right: parent.right
+				bottom: parent.bottom
+				top: navBar.bottom
+			}
+			onTitleChanged: { window.title = title }
+
+			property var cleanPath: false
+			onNavigationRequested: {
+				if(!this.cleanPath) {
+					var uri = request.url.toString();
 					if(!/.*\:\/\/.*/.test(uri)) {
 						uri = "http://" + uri;
 					}
@@ -54,7 +100,7 @@ ApplicationWindow {
 					var reg = /(^https?\:\/\/(?:www\.)?)([a-zA-Z0-9_\-]*\.eth)(.*)/
 
 					if(reg.test(uri)) {
-						this.text.replace(reg, function(match, pre, domain, path) {
+						uri.replace(reg, function(match, pre, domain, path) {
 							uri = pre;
 
 							var lookup = eth.lookupDomain(domain.substring(0, domain.length - 4));
@@ -73,23 +119,14 @@ ApplicationWindow {
 						});
 					}
 
-					console.log("connecting to ...", uri)
+					this.cleanPath = true;
 
 					webview.url = uri;
+				} else {
+					// Prevent inf loop.
+					this.cleanPath = false;
 				}
 			}
-		}
-
-		WebView {
-			objectName: "webView"
-			id: webview
-			anchors {
-				left: parent.left
-				right: parent.right
-				bottom: parent.bottom
-				top: navBar.bottom
-			}
-			onTitleChanged: { window.title = title }
 			experimental.preferences.javascriptEnabled: true
 			experimental.preferences.navigatorQtObjectEnabled: true
 			experimental.preferences.developerExtrasEnabled: true
@@ -102,107 +139,107 @@ ApplicationWindow {
 				try {
 					switch(data.call) {
 						case "getCoinBase":
-							postData(data._seed, eth.getCoinBase())
+						postData(data._seed, eth.getCoinBase())
 
-							break
+						break
 
 						case "getIsListening":
-							postData(data._seed, eth.getIsListening())
+						postData(data._seed, eth.getIsListening())
 
-							break
+						break
 
 						case "getIsMining":
-							postData(data._seed, eth.getIsMining())
+						postData(data._seed, eth.getIsMining())
 
-							break
+						break
 
 						case "getPeerCount":
-							postData(data._seed, eth.getPeerCount())
+						postData(data._seed, eth.getPeerCount())
 
-							break
+						break
 
 						case "getTxCountAt":
-							require(1)
-							postData(data._seed, eth.getTxCountAt(data.args[0]))
+						require(1)
+						postData(data._seed, eth.getTxCountAt(data.args[0]))
 
-							break
+						break
 
 						case "getBlockByNumber":
-							var block = eth.getBlock(data.args[0])
-							postData(data._seed, block)
+						var block = eth.getBlock(data.args[0])
+						postData(data._seed, block)
 
-							break
+						break
 
 						case "getBlockByHash":
-							var block = eth.getBlock(data.args[0])
-							postData(data._seed, block)
+						var block = eth.getBlock(data.args[0])
+						postData(data._seed, block)
 
-							break
+						break
 
 						case "transact":
-							require(5)
+						require(5)
 
-							var tx = eth.transact(data.args[0], data.args[1], data.args[2],data.args[3],data.args[4],data.args[5])
-							postData(data._seed, tx)
+						var tx = eth.transact(data.args[0], data.args[1], data.args[2],data.args[3],data.args[4],data.args[5])
+						postData(data._seed, tx)
 
-							break
+						break
 
 						case "getStorage":
-							require(2);
+						require(2);
 
-							var stateObject = eth.getStateObject(data.args[0])
-							var storage = stateObject.getStorage(data.args[1])
-							postData(data._seed, storage)
+						var stateObject = eth.getStateObject(data.args[0])
+						var storage = stateObject.getStorage(data.args[1])
+						postData(data._seed, storage)
 
-							break
+						break
 
 						case "getStateKeyVals":
-							require(1);
-							var stateObject = eth.getStateObject(data.args[0]).stateKeyVal(true)
-							postData(data._seed,stateObject)
+						require(1);
+						var stateObject = eth.getStateObject(data.args[0]).stateKeyVal(true)
+						postData(data._seed,stateObject)
 
-							break
+						break
 
 						case "getTransactionsFor":
-							require(1);
-							var txs = eth.getTransactionsFor(data.args[0], true)
-							postData(data._seed, txs)
+						require(1);
+						var txs = eth.getTransactionsFor(data.args[0], true)
+						postData(data._seed, txs)
 
-							break
+						break
 
 						case "getBalance":
-							require(1);
+						require(1);
 
-							postData(data._seed, eth.getStateObject(data.args[0]).value());
+						postData(data._seed, eth.getStateObject(data.args[0]).value());
 
-							break
+						break
 
 						case "getKey":
-							var key = eth.getKey().privateKey;
+						var key = eth.getKey().privateKey;
 
-							postData(data._seed, key)
-							break
+						postData(data._seed, key)
+						break
 
 						case "watch":
-							require(1)
-							eth.watch(data.args[0], data.args[1]);
+						require(1)
+						eth.watch(data.args[0], data.args[1]);
 
-							break
+						break
 
 						case "disconnect":
-							require(1)
-							postData(data._seed, null)
+						require(1)
+						postData(data._seed, null)
 
-							break;
+						break;
 
 						case "getSecretToAddress":
-							require(1)
-							postData(data._seed, eth.secretToAddress(data.args[0]))
+						require(1)
+						postData(data._seed, eth.secretToAddress(data.args[0]))
 
-							break;
+						break;
 
 						case "debug":
-							console.log(data.args[0]);
+						console.log(data.args[0]);
 						break;
 					}
 				} catch(e) {
@@ -236,31 +273,6 @@ ApplicationWindow {
 			}
 		}
 
-		Rectangle {
-			id: toggleInspector
-			color: "#bcbcbc"
-			visible: true
-			height: 20
-			width: 20
-			anchors {
-				right: root.right
-			}
-			MouseArea {
-				onClicked: {
-					if(inspector.visible == true){
-						inspector.visible = false
-					}else{
-						inspector.visible = true
-						inspector.url = webview.experimental.remoteInspectorUrl
-					}
-				}
-
-				onDoubleClicked: {
-					webView.reload()
-				}
-				anchors.fill: parent
-			}
-		}
 
 		Rectangle {
 			id: sizeGrip
diff --git a/ethereal/gui.go b/ethereal/gui.go
index 710a1bd1e1d7bb0c3105084a54d0c835892dde35..d191f67d05afaf5f499120670a593636d36b0d66 100644
--- a/ethereal/gui.go
+++ b/ethereal/gui.go
@@ -391,12 +391,12 @@ func (gui *Gui) update() {
 					if bytes.Compare(tx.Sender(), gui.address()) == 0 {
 						object.SubAmount(tx.Value)
 
-						gui.getObjectByName("transactionView").Call("addTx", "post", ethpub.NewPTx(tx), "send")
+						gui.getObjectByName("transactionView").Call("addTx", ethpub.NewPTx(tx), "send")
 						gui.txDb.Put(tx.Hash(), tx.RlpEncode())
 					} else if bytes.Compare(tx.Recipient, gui.address()) == 0 {
 						object.AddAmount(tx.Value)
 
-						gui.getObjectByName("transactionView").Call("addTx", "post", ethpub.NewPTx(tx), "recv")
+						gui.getObjectByName("transactionView").Call("addTx", ethpub.NewPTx(tx), "recv")
 						gui.txDb.Put(tx.Hash(), tx.RlpEncode())
 					}