diff --git a/portal/templates/base.html b/portal/templates/base.html
index cdbc045..bc6fb97 100644
--- a/portal/templates/base.html
+++ b/portal/templates/base.html
@@ -1,23 +1,3 @@
 {% extends "lib/website/templates/base.html" %}
 
-{% block toolbar %}
-<div class="row">
-	<div class="pull-right" style="margin:4px;" id="user-tools">
-		{% if shopping_cart_enabled -%}
-		<a href="cart" title="Shopping Cart"><i class="icon-shopping-cart"></i> 
-			<span class="cart-count"></span></a> |
-		{%- endif %}
-		<a id="login-link" href="login">Login</a>
-	</div>
-	<div class="pull-right hide" style="margin:4px;" id="user-tools-post-login">
-		<a href="account" title="My Account" id="user-full-name"></a> |
-		{% if shopping_cart_enabled -%}
-		<a href="cart" title="Shopping Cart"><i class="icon-shopping-cart"></i> 
-			<span class="cart-count"></span></a> |
-		{%- endif %}
-		<a href="server.py?cmd=web_logout" title="Sign Out"><i class="icon-signout"></i></a>
-	</div>
-</div>
-{% endblock %}
-
 {% block footer %}{% include "app/portal/templates/includes/footer.html" %}{% endblock %}
\ No newline at end of file
diff --git a/portal/templates/includes/cart.js b/portal/templates/includes/cart.js
index 84d49f3..5ff6e3f 100644
--- a/portal/templates/includes/cart.js
+++ b/portal/templates/includes/cart.js
@@ -4,7 +4,7 @@
 // js inside blog page
 
 $(document).ready(function() {
-	wn.cart.bind_events();
+	erpnext.cart.bind_events();
 	return wn.call({
 		type: "POST",
 		method: "selling.utils.cart.get_cart_quotation",
@@ -14,23 +14,23 @@
 			$(".progress").remove();
 			if(r.exc) {
 				if(r.exc.indexOf("WebsitePriceListMissingError")!==-1) {
-					wn.cart.show_error("Oops!", "Price List not configured.");
+					erpnext.cart.show_error("Oops!", "Price List not configured.");
 				} else if(r["403"]) {
-					wn.cart.show_error("Hey!", "You need to be logged in to view your cart.");
+					erpnext.cart.show_error("Hey!", "You need to be logged in to view your cart.");
 				} else {
-					wn.cart.show_error("Oops!", "Something went wrong.");
+					erpnext.cart.show_error("Oops!", "Something went wrong.");
 				}
 			} else {
-				wn.cart.set_cart_count();
-				wn.cart.render(r.message);
+				erpnext.cart.set_cart_count();
+				erpnext.cart.render(r.message);
 			}
 		}
 	});
 });
 
 // shopping cart
-if(!wn.cart) wn.cart = {};
-$.extend(wn.cart, {
+if(!erpnext.cart) erpnext.cart = {};
+$.extend(erpnext.cart, {
 	show_error: function(title, text) {
 		$("#cart-container").html('<div class="well"><h4>' + title + '</h4> ' + text + '</div>');
 	},
@@ -39,14 +39,14 @@
 		// bind update button
 		$(document).on("click", ".item-update-cart button", function() {
 			var item_code = $(this).attr("data-item-code");
-			wn.cart.update_cart({
+			erpnext.cart.update_cart({
 				item_code: item_code,
 				qty: $('input[data-item-code="'+item_code+'"]').val(),
 				with_doclist: 1,
 				btn: this,
 				callback: function(r) {
 					if(!r.exc) {
-						wn.cart.render(r.message);
+						erpnext.cart.render(r.message);
 						var $button = $('button[data-item-code="'+item_code+'"]').addClass("btn-success");
 						setTimeout(function() { $button.removeClass("btn-success"); }, 1000);
 					}
@@ -63,7 +63,7 @@
 		});
 		
 		$(".btn-place-order").on("click", function() {
-			wn.cart.place_order();
+			erpnext.cart.place_order(this);
 		});
 	},
 	
@@ -79,7 +79,7 @@
 		
 		var no_items = $.map(doclist, function(d) { return d.item_code || null;}).length===0;
 		if(no_items) {
-			wn.cart.show_error("Empty :-(", "Go ahead and add something to your cart.");
+			erpnext.cart.show_error("Empty :-(", "Go ahead and add something to your cart.");
 			$("#cart-addresses").toggle(false);
 			return;
 		}
@@ -89,14 +89,14 @@
 		var shipping_rule_labels = $.map(out.shipping_rules || [], function(rule) { return rule[1]; });
 		$.each(doclist, function(i, doc) {
 			if(doc.doctype === "Quotation Item") {
-				wn.cart.render_item_row($cart_items, doc);
+				erpnext.cart.render_item_row($cart_items, doc);
 			} else if (doc.doctype === "Sales Taxes and Charges") {
 				if(out.shipping_rules && out.shipping_rules.length && 
 					shipping_rule_labels.indexOf(doc.description)!==-1) {
 						shipping_rule_added = true;
-						wn.cart.render_tax_row($cart_taxes, doc, out.shipping_rules);
+						erpnext.cart.render_tax_row($cart_taxes, doc, out.shipping_rules);
 				} else {
-					wn.cart.render_tax_row($cart_taxes, doc);
+					erpnext.cart.render_tax_row($cart_taxes, doc);
 				}
 				
 				taxes_exist = true;
@@ -104,7 +104,7 @@
 		});
 		
 		if(out.shipping_rules && out.shipping_rules.length && !shipping_rule_added) {
-			wn.cart.render_tax_row($cart_taxes, {description: "", formatted_tax_amount: ""},
+			erpnext.cart.render_tax_row($cart_taxes, {description: "", formatted_tax_amount: ""},
 				out.shipping_rules);
 			taxes_exist = true;
 		}
@@ -112,7 +112,7 @@
 		if(taxes_exist)
 			$('<hr>').appendTo($cart_taxes);
 			
-		wn.cart.render_tax_row($cart_totals, {
+		erpnext.cart.render_tax_row($cart_totals, {
 			description: "<strong>Total</strong>", 
 			formatted_tax_amount: "<strong>" + doclist[0].formatted_grand_total_export + "</strong>"
 		});
@@ -120,8 +120,8 @@
 		if(!(addresses && addresses.length)) {
 			$cart_shipping_address.html('<div class="well">Hey! Go ahead and add an address</div>');
 		} else {
-			wn.cart.render_address($cart_shipping_address, addresses, doclist[0].shipping_address_name);
-			wn.cart.render_address($cart_billing_address, addresses, doclist[0].customer_address);
+			erpnext.cart.render_address($cart_shipping_address, addresses, doclist[0].shipping_address_name);
+			erpnext.cart.render_address($cart_billing_address, addresses, doclist[0].customer_address);
 		}
 	},
 	
@@ -185,7 +185,7 @@
 				}
 			});
 			$tax_row.find('select').on("change", function() {
-				wn.cart.apply_shipping_rule($(this).val(), this);
+				erpnext.cart.apply_shipping_rule($(this).val(), this);
 			});
 		}
 	},
@@ -198,7 +198,7 @@
 			args: { shipping_rule: rule },
 			callback: function(r) {
 				if(!r.exc) {
-					wn.cart.render(r.message);
+					erpnext.cart.render(r.message);
 				}
 			}
 		});
@@ -249,7 +249,7 @@
 					},
 					callback: function(r) {
 						if(!r.exc) {
-							wn.cart.render(r.message);
+							erpnext.cart.render(r.message);
 						}
 					}
 				});
@@ -270,10 +270,11 @@
 			.collapse("show");
 	},
 	
-	place_order: function() {
+	place_order: function(btn) {
 		return wn.call({
 			type: "POST",
 			method: "selling.utils.cart.place_order",
+			btn: btn,
 			callback: function(r) {
 				if(r.exc) {
 					var msg = "";
diff --git a/portal/templates/includes/footer.html b/portal/templates/includes/footer.html
index 1e8dd76..6963175 100644
--- a/portal/templates/includes/footer.html
+++ b/portal/templates/includes/footer.html
@@ -1,10 +1,6 @@
 {% extends "lib/website/templates/includes/footer.html" %}
 
-{% block powered %}
-<p style="float: right; clear: right;">
-	<a style="font-size: 90%; color: #888;" href="http://erpnext.org">ERPNext Powered</a>
-</p>
-{% endblock %}
+{% block powered %}<a style="font-size: 90%; color: #aaa;" href="http://erpnext.org">ERPNext Powered</a>{% endblock %}
 
 {% block extension %}
 <br>
diff --git a/portal/templates/includes/transactions.html b/portal/templates/includes/transactions.html
index 23d5f81..65651ca 100644
--- a/portal/templates/includes/transactions.html
+++ b/portal/templates/includes/transactions.html
@@ -4,7 +4,6 @@
 <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">
diff --git a/portal/templates/pages/account.html b/portal/templates/pages/account.html
deleted file mode 100644
index da43dd2..0000000
--- a/portal/templates/pages/account.html
+++ /dev/null
@@ -1,27 +0,0 @@
-{% extends base_template %}
-
-{% set title="My Account" %}
-
-{% block content %}
-<div class="col-md-12">
-    <ul class="breadcrumb">
-    	<li><a href="index">Home</a></li>
-    	<li class="active">My Account</li>
-    </ul>
-	<!-- <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="invoices"><i class="icon-file-text icon-fixed-width"></i> Invoices</a></li>
-		<li><a href="shipments"><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/portal/templates/pages/account.py b/portal/templates/pages/account.py
deleted file mode 100644
index 24b474a..0000000
--- a/portal/templates/pages/account.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-
-no_cache = True
\ No newline at end of file
diff --git a/portal/templates/pages/cart.html b/portal/templates/pages/cart.html
index f210772..8b648e5 100644
--- a/portal/templates/pages/cart.html
+++ b/portal/templates/pages/cart.html
@@ -13,7 +13,7 @@
 		<div class="progress-bar progress-bar-info" style="width: 100%;"></div>
 	</div>
 	<div id="cart-container" class="hide">
-		<button class="btn btn-success pull-right btn-place-order" type="button">Place Order</button>
+		<p class="pull-right"><button class="btn btn-success btn-place-order" type="button">Place Order</button></p>
 		<div class="clearfix"></div>
 		<div id="cart-error" class="alert alert-danger" style="display: none;"></div>
 		<hr>
@@ -51,7 +51,7 @@
 			</div>
 			<hr>
 		</div>
-		<button class="btn btn-success pull-right btn-place-order" type="button">Place Order</button>
+		<p class="pull-right"><button class="btn btn-success btn-place-order" type="button">Place Order</button></p>
 	</div>
 </div>
 {% endblock %}
\ No newline at end of file
diff --git a/portal/templates/pages/profile.html b/portal/templates/pages/profile.html
index 65f3e37..6971909 100644
--- a/portal/templates/pages/profile.html
+++ b/portal/templates/pages/profile.html
@@ -6,7 +6,6 @@
 <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-user icon-fixed-width"></i> My Profile</li>
     </ul>
 	<div class="alert alert-warning" id="message" style="display: none;"></div>
diff --git a/portal/templates/sale.html b/portal/templates/sale.html
index 3a49684..41ba297 100644
--- a/portal/templates/sale.html
+++ b/portal/templates/sale.html
@@ -6,7 +6,6 @@
 <div class="col-md-12">
     <ul class="breadcrumb">
     	<li><a href="index">Home</a></li>
-    	<li><a href="account">My Account</a></li>
     	<li><a href="{{ parent_link }}">{{ parent_title }}</a></li>
     	<li class="active"><i class="icon-file icon-fixed-width"></i> {{ doc.name }}</li>
     </ul>
