diff --git a/website/templates/pages/account.html b/website/templates/pages/account.html
index 539e014..6dcc497 100644
--- a/website/templates/pages/account.html
+++ b/website/templates/pages/account.html
@@ -8,12 +8,23 @@
     	<li><a href="index">Home</a></li>
     	<li class="active">My Account</li>
     </ul>
-	<h3>My Account</h3>
-	<p><a href="profile"><i class="icon-user icon-fixed-width"></i> Change my name, password</a></p>
-	<p><a href="addresses"><i class="icon-map-marker icon-fixed-width"></i> My Addresses</a></p>
-	<p><a href="orders"><i class="icon-list icon-fixed-width"></i> My Orders</a></p>
-	<p><a href="tickets"><i class="icon-tags icon-fixed-width"></i> My Tickets</a></p>
-	<p><a href="server.py?cmd=web_logout"><i class="icon-signout icon-fixed-width"></i> Logout</a></p>
+	<!-- <h3>My Account</h3> -->
+	<ul class="nav nav-stacked pull-left">
+		<li><a href="profile"><i class="icon-user icon-fixed-width"></i> 
+			Change my name, password</a></li>
+		<li><a href="addresses"><i class="icon-map-marker icon-fixed-width"></i> 
+			My Addresses</a></li>
+		<li><a href="orders"><i class="icon-list icon-fixed-width"></i> My Orders</a></li>
+		<li><a href="tickets"><i class="icon-tags icon-fixed-width"></i> My Tickets</a></li>
+		<li style="border-top: 1px solid #ddd"></li>
+		<li><a href="messages"><i class="icon-comments icon-fixed-width"></i> Messages</a></li>
+		<li><a href="quotations"><i class="icon-shopping-cart icon-fixed-width"></i> 
+			Quotations</a></li>
+		<li><a href="invoices"><i class="icon-file-text icon-fixed-width"></i> Invoices</a></li>
+		<li><a href="delivery_notes"><i class="icon-truck icon-fixed-width"></i> Shipments</a></li>
+		<li style="border-top: 1px solid #ddd"></li>
+		<li><a href="server.py?cmd=web_logout"><i class="icon-signout icon-fixed-width"></i>
+			Logout</a></li>
 	</ul>
 </div>
 {% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/address.html b/website/templates/pages/address.html
index faf7bb0..6544b12 100644
--- a/website/templates/pages/address.html
+++ b/website/templates/pages/address.html
@@ -42,9 +42,9 @@
     	<li><a href="index">Home</a></li>
     	<li><a href="account">My Account</a></li>
     	<li><a href="addresses">My Addresses</a></li>
-    	<li class="active">{{ title }}</li>
+    	<li class="active"><i class="icon-map-marker icon-fixed-width"></i> {{ title }}</li>
     </ul>
-	<h3><i class="icon-map-marker"></i> {{ title }}</h3>
+	<h3><i class="icon-map-marker icon-fixed-width"></i> {{ title }}</h3>
 	<button type="button" class="btn btn-primary pull-right" id="address-save"><i class="icon-ok"></i> 
 		{{ doc and "Save" or "Insert" }}</button>
 	<div class="clearfix"></div>
diff --git a/website/templates/pages/addresses.html b/website/templates/pages/addresses.html
index 90d0d13..04fc47b 100644
--- a/website/templates/pages/addresses.html
+++ b/website/templates/pages/addresses.html
@@ -7,10 +7,8 @@
     <ul class="breadcrumb">
     	<li><a href="index">Home</a></li>
     	<li><a href="account">My Account</a></li>
-    	<li class="active">My Addresses</li>
+    	<li class="active"><i class="icon-map-marker icon-fixed-width"></i> My Addresses</li>
     </ul>
-	<h3><i class="icon-map-marker icon-fixed-width"></i> My Addresses</h3>
-	<hr>
 	<p><a class="btn btn-default" href="address"><i class="icon-plus"> New Address</i></a></p>
 	<hr>
 	<div id="address-list">
diff --git a/website/templates/pages/order.html b/website/templates/pages/order.html
index 1893575..c70dcb1 100644
--- a/website/templates/pages/order.html
+++ b/website/templates/pages/order.html
@@ -8,9 +8,9 @@
     	<li><a href="index">Home</a></li>
     	<li><a href="account">My Account</a></li>
     	<li><a href="orders">My Orders</a></li>
-    	<li class="active">{{ doc.name }}</li>
+    	<li class="active"><i class="icon-file icon-fixed-width"></i> {{ doc.name }}</li>
     </ul>
-	<h3><i class="icon-file"></i> {{ doc.name }}</h3>
+	<h3><i class="icon-file icon-fixed-width"></i> {{ doc.name }}</h3>
 	<hr>
 	{%- if doc.status -%}
 	<div style="font-size: 13px;">
diff --git a/website/templates/pages/orders.html b/website/templates/pages/orders.html
deleted file mode 100644
index e0bf4d7..0000000
--- a/website/templates/pages/orders.html
+++ /dev/null
@@ -1,70 +0,0 @@
-{% extends "app/website/templates/html/page.html" %}
-
-{% set title="My Orders" %}
-
-{% block content %}
-<script>
-global_number_format = "{{ global_number_format }}";
-currency = "{{ currency }}";
-wn.currency_symbols = {{ currency_symbols }};
-</script>
-<div class="col-md-12">
-    <ul class="breadcrumb">
-    	<li><a href="index">Home</a> <span class="divider">/</span></li>
-    	<li><a href="account">My Account</a> <span class="divider">/</span></li>
-    	<li class="active">My Orders</li>
-    </ul>
-	<h3><i class="icon-list icon-fixed-width"></i> My Orders</h3>
-	<hr>
-	<div id="order-list" style="font-size: 13px;">
-		<div class="progress progress-striped active">
-			<div class="progress-bar progress-bar-info" style="width: 100%;"></div>
-		</div>
-	</div>
-</div>
-<script>
-$(document).ready(function() {
-	var order_start = 0;
-		
-	wn.call({
-		method: "selling.doctype.sales_order.sales_order.get_orders",
-		args: {
-			start: order_start
-		},
-		callback: function(r) {
-			$("#order-list .progress").remove();
-			var $list = $("#order-list");
-			
-			if(!(r.message && r.message.length)) {
-				$list.html("<div class='alert'>No Orders Yet</div>");
-				return;
-			}
-			
-			$.each(r.message, function(i, order) {
-				
-				// parent
-				var $order = $(repl('<div class="row">\
-					<div class="col-md-3"><a href="order?name=%(name)s">%(name)s</a></div>\
-					<div class="col-md-9"></div>\
-				</div>', order)).appendTo($list);
-				
-				// items
-				$.each(order.items || [], function(i, item) {
-					item.export_rate = format_currency(item.export_rate, order.currency);
-					item.export_amount = format_currency(item.export_amount, order.currency);
-					var $item = $(repl('<div class="row">\
-							<div class="col-md-3">%(item_name)s</div>\
-							<div class="col-md-2" style="text-align: right;">%(export_rate)s</div>\
-							<div class="col-md-2" style="text-align: right;">%(qty)s %(stock_uom)s</div>\
-							<div class="col-md-2" style="text-align: right;">%(export_amount)s</div>\
-						</div>\
-					</div>', item)).appendTo($order.find(".col-md-9"));
-				});
-				
-				$("<hr>").appendTo($list);
-			});
-		}
-	})
-})
-</script>
-{% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/profile.html b/website/templates/pages/profile.html
index ea2433b..4c03b40 100644
--- a/website/templates/pages/profile.html
+++ b/website/templates/pages/profile.html
@@ -5,12 +5,10 @@
 {% block content %}
 <div class="col-md-12">
     <ul class="breadcrumb">
-    	<li><a href="index">Home</a> <span class="divider">/</span></li>
-    	<li><a href="account">My Account</a> <span class="divider">/</span></li>
-    	<li class="active">My Profile</li>
+    	<li><a href="index">Home</a></li>
+    	<li><a href="account">My Account</a></li>
+    	<li class="active"><i class="icon-user icon-fixed-width"></i> My Profile</li>
     </ul>
-	<h2><i class="icon-user"></i> My Profile</h2>
-	<hr>
 	<div class="alert" id="message" style="display: none;"></div>
 	<form>
 		<fieldset>
diff --git a/website/templates/pages/ticket.html b/website/templates/pages/ticket.html
index 1ae2e88..2f85ac0 100644
--- a/website/templates/pages/ticket.html
+++ b/website/templates/pages/ticket.html
@@ -5,12 +5,12 @@
 {% block content %}
 <div class="col-md-12">
     <ul class="breadcrumb">
-    	<li><a href="index">Home</a> <span class="divider">/</span></li>
-    	<li><a href="account">My Account</a> <span class="divider">/</span></li>
-    	<li><a href="tickets">My Tickets</a> <span class="divider">/</span></li>
-    	<li class="active">{{ doc.name }}</li>
+    	<li><a href="index">Home</a></li>
+    	<li><a href="account">My Account</a></li>
+    	<li><a href="tickets">My Tickets</a></li>
+    	<li class="active"><i class="icon-ticket icon-fixed-width"></i> {{ doc.name }}</li>
     </ul>
-	<h3><i class="icon-file"></i> {{ doc.name }}</h3>
+	<h3><i class="icon-ticket icon-fixed-width"></i> {{ doc.name }}</h3>
 	<hr>
 	{%- if doc.status -%}
 	<div class="row">
diff --git a/website/templates/pages/tickets.html b/website/templates/pages/tickets.html
index 3d5cf21..9c476ff 100644
--- a/website/templates/pages/tickets.html
+++ b/website/templates/pages/tickets.html
@@ -7,10 +7,8 @@
     <ul class="breadcrumb">
     	<li><a href="index">Home</a></li>
     	<li><a href="account">My Account</a></li>
-    	<li class="active">My Tickets</li>
+    	<li class="active"><i class="icon-ticket icon-fixed-width"></i> My Tickets</li>
     </ul>
-	<h3><i class="icon-tags icon-fixed-width"></i> My Tickets</h3>
-	<hr>
 	<div id="ticket-list" style="font-size: 13px;">
 		<div class="progress progress-striped active">
 			<div class="progress-bar progress-bar-info" style="width: 100%;"></div>
diff --git a/website/templates/pages/transaction_list.html b/website/templates/pages/transaction_list.html
new file mode 100644
index 0000000..e92764a
--- /dev/null
+++ b/website/templates/pages/transaction_list.html
@@ -0,0 +1,69 @@
+{% extends "app/website/templates/html/page.html" %}
+
+{% block content %}
+<div class="col-md-12">
+    <ul class="breadcrumb">
+    	<li><a href="index">Home</a></li>
+    	<li><a href="account">My Account</a></li>
+    	<li class="active"><i class="{{ icon }} icon-fixed-width"></i> {{ title }}</li>
+    </ul>
+	<div class="list-group transaction-list">
+		<div class="progress progress-striped active">
+			<div class="progress-bar progress-bar-info" style="width: 100%;"></div>
+		</div>
+	</div>
+</div>
+
+<script>
+global_number_format = "{{ global_number_format }}";
+currency = "{{ currency }}";
+wn.currency_symbols = {{ currency_symbols }};
+
+$(document).ready(function() {
+	var start = 0;
+	var $list = $(".transaction-list");
+	
+	var get_transactions = function() {
+		wn.call({
+			method: "{{ method }}",
+			args: { start: start },
+			callback: function(r) {
+				$list.find(".progress").remove();
+			
+				if(!(r.message && r.message.length)) {
+					console.log("empty");
+					if(!$list.html().trim()) {
+						$list.html("<div class='alert alert-warning'>\
+							{{ empty_list_message }}</div>");
+					}
+					return;
+				}
+			
+				start += r.message.length;
+			
+				$.each(r.message, function(i, doc) {
+					render(doc);
+				});
+			}
+		})
+	};
+	
+	var render = function(doc) {
+		doc.grand_total_export = format_currency(doc.grand_total_export, doc.currency);
+		
+		var $row = $(repl('<a href="{{ page }}?name=%(name)s" class="list-group-item">\
+				<div class="row">\
+					<div class="col-md-6">\
+						<div class="row col-md-12">%(name)s</div>\
+						<div class="row col-md-12 text-muted">%(items)s...</div>\
+					</div>\
+					<div class="col-md-3 text-right">%(grand_total_export)s</div>\
+					<div class="col-md-3 text-right text-muted">%(creation)s</div>\
+				</div>\
+			</a>', doc)).appendTo($list);
+	};
+	
+	get_transactions();
+});
+</script>
+{% endblock %}
\ No newline at end of file
