diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index 69e5873..658cc52 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -8,7 +8,6 @@
 frappe.provide("erpnext.accounts");
 {% include 'buying/doctype/purchase_common/purchase_common.js' %};
 {% include 'accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js' %}
-{% include 'accounts/doctype/sales_invoice/pos.js' %}
 
 erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
 	onload: function() {
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index f376126..2061fb1 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -11,7 +11,6 @@
 
 {% include 'selling/sales_common.js' %};
 {% include 'accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js' %}
-{% include 'accounts/doctype/sales_invoice/pos.js' %}
 
 frappe.provide("erpnext.accounts");
 erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.extend({
diff --git a/erpnext/accounts/page/accounts_browser/accounts_browser.js b/erpnext/accounts/page/accounts_browser/accounts_browser.js
index c927596..dc0dd7a 100644
--- a/erpnext/accounts/page/accounts_browser/accounts_browser.js
+++ b/erpnext/accounts/page/accounts_browser/accounts_browser.js
@@ -13,7 +13,7 @@
 		single_column: true
 	})
 
-	wrapper.appframe.add_module_icon("Accounts");
+	frappe.add_breadcrumbs("Accounts");
 
 	var main = $(wrapper).find(".layout-main"),
 		chart_area = $("<div>")
diff --git a/erpnext/accounts/page/financial_analytics/financial_analytics.js b/erpnext/accounts/page/financial_analytics/financial_analytics.js
index 2da9381..f0fdffe 100644
--- a/erpnext/accounts/page/financial_analytics/financial_analytics.js
+++ b/erpnext/accounts/page/financial_analytics/financial_analytics.js
@@ -10,7 +10,7 @@
 		single_column: true
 	});
 	erpnext.trial_balance = new erpnext.FinancialAnalytics(wrapper, 'Financial Analytics');
-	wrapper.appframe.add_module_icon("Accounts")
+	frappe.add_breadcrumbs("Accounts")
 
 }
 
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js
index e712995..ed7e2c2 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.js
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.js
@@ -9,7 +9,6 @@
 
 {% include 'buying/doctype/purchase_common/purchase_common.js' %};
 {% include 'accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js' %}
-{% include 'accounts/doctype/sales_invoice/pos.js' %}
 
 erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend({
 	refresh: function(doc, cdt, cdn) {
diff --git a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
index b9286a1..dda0632 100644
--- a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
+++ b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
@@ -9,7 +9,6 @@
 // attach required files
 {% include 'buying/doctype/purchase_common/purchase_common.js' %};
 {% include 'accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js' %}
-{% include 'accounts/doctype/sales_invoice/pos.js' %}
 
 erpnext.buying.SupplierQuotationController = erpnext.buying.BuyingController.extend({
 	refresh: function() {
diff --git a/erpnext/buying/page/purchase_analytics/purchase_analytics.js b/erpnext/buying/page/purchase_analytics/purchase_analytics.js
index f1c050d..e1d6294 100644
--- a/erpnext/buying/page/purchase_analytics/purchase_analytics.js
+++ b/erpnext/buying/page/purchase_analytics/purchase_analytics.js
@@ -11,7 +11,7 @@
 	new erpnext.PurchaseAnalytics(wrapper);
 
 
-	wrapper.appframe.add_module_icon("Buying")
+	frappe.add_breadcrumbs("Buying")
 
 }
 
diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py
index 247d4ff..0ec8bf0 100644
--- a/erpnext/controllers/status_updater.py
+++ b/erpnext/controllers/status_updater.py
@@ -73,9 +73,7 @@
 				frappe.db.set_value(self.doctype, self.name, "status", self.status)
 
 	def validate_qty(self):
-		"""
-			Validates qty at row level
-		"""
+		"""Validates qty at row level"""
 		self.tolerance = {}
 		self.global_tolerance = None
 
@@ -153,7 +151,7 @@
 					args['second_source_condition'] = ""
 					if args.get('second_source_dt') and args.get('second_source_field') \
 							and args.get('second_join_field'):
-						if not args.get("second_source_extra_cond"): 
+						if not args.get("second_source_extra_cond"):
 							args["second_source_extra_cond"] = ""
 
 						args['second_source_condition'] = """ + ifnull((select sum(%(second_source_field)s)
diff --git a/erpnext/public/build.json b/erpnext/public/build.json
index 49b0907..588f4ec 100644
--- a/erpnext/public/build.json
+++ b/erpnext/public/build.json
@@ -13,7 +13,10 @@
 		"public/js/queries.js",
 		"public/js/utils/party.js",
 		"public/js/templates/address_list.html",
-		"public/js/templates/contact_list.html"
+		"public/js/templates/contact_list.html",
+		"public/js/pos/pos.html",
+		"public/js/pos/pos_bill_item.html",
+		"public/js/pos/pos.js"
 	],
 	"css/shopping-cart-web.css":  [
 		"public/css/shopping_cart.css"
diff --git a/erpnext/public/css/erpnext.css b/erpnext/public/css/erpnext.css
index 6d3f475..7a93757 100644
--- a/erpnext/public/css/erpnext.css
+++ b/erpnext/public/css/erpnext.css
@@ -20,6 +20,9 @@
 }
 
 /* pos */
+.pos {
+}
+
 .pos-item {
 	height: 200px;
 	overflow: hidden;
@@ -28,10 +31,62 @@
 	padding-right: 5px !important;
 }
 
+.pos-item-area {
+	border: 1px solid #d1d8dd;
+	border-top: none;
+}
+
+.pos-item-toolbar {
+	padding: 10px 0px;
+	border-bottom: 1px solid #d1d8dd;
+}
+
+.item-list-area {
+	padding: 15px;
+}
+
+.pos-toolbar, .pos-bill-toolbar {
+	padding: 10px 0px;
+	border-bottom: 1px solid #d1d8dd;
+	height: 55px;
+}
+
+.pos-item-toolbar .form-group {
+	margin-bottom: 0px;
+}
+
+.pos-bill-wrapper {
+	border: 1px solid #d1d8dd;
+	border-top: none;
+	border-right: none;
+}
+
 .pos-bill {
-	margin-left: -30px;
-	margin-top: -10px;
-	padding: 20px 10px;
-	border-right: 1px solid #c7c7c7;
-	border-bottom: 1px solid #c7c7c7;
+	margin-left: -15px;
+	margin-right: -15px;
+}
+
+.pos-bill-row {
+	margin: 0px;
+	padding: 7px 0px;
+	border-top: 1px solid #d1d8dd;
+}
+
+.pos-bill-header {
+	border: none !important;
+	background-color: #f5f7fa;
+}
+
+.pos-item-qty {
+	display: inline-block;
+}
+
+.pos-qty-row > div {
+	padding: 5px 0px;
+}
+
+.pos-qty-btn {
+	margin-top: 5px;
+	cursor: pointer;
+	font-size: 120%;
 }
diff --git a/erpnext/public/js/conf.js b/erpnext/public/js/conf.js
index e9c790d..deb6a2c 100644
--- a/erpnext/public/js/conf.js
+++ b/erpnext/public/js/conf.js
@@ -7,14 +7,7 @@
 $(document).bind('toolbar_setup', function() {
 	frappe.app.name = "ERPNext";
 
-	$('.navbar-brand').html('<i class="icon-home"></i>')
-	.attr("title", "Home")
-	.addClass("navbar-icon-home")
-	.css({
-		"max-width": "200px",
-		"text-overflow": "ellipsis",
-		"white-space": "nowrap"
-	});
+	$('.navbar-brand').html('ERPNext');
 
 	$('[data-link="docs"]').attr("href", "https://erpnext.com/user-guide")
 });
diff --git a/erpnext/public/js/pos/pos.html b/erpnext/public/js/pos/pos.html
new file mode 100644
index 0000000..dd323bc
--- /dev/null
+++ b/erpnext/public/js/pos/pos.html
@@ -0,0 +1,55 @@
+<div class="pos">
+    <div class="row">
+    	<div class="col-sm-5 pos-bill-wrapper">
+            <div class="pos-bill-toolbar row">
+                <div class="party-area col-xs-6"></div>
+                <div class="col-xs-6">
+        			<button class="btn btn-success make-payment">{%= __("Pay") %}</button>
+                </div>
+            </div>
+    		<div class="pos-bill">
+    			<div class="item-cart">
+                    <div class="row pos-bill-row pos-bill-header">
+                        <div class="col-xs-5"><h6>{%= __("Item") %}</h6></div>
+                        <div class="col-xs-4"><h6 class="text-right">{%= __("Quantity") %}</h6></div>
+                        <div class="col-xs-3"><h6 class="text-right">{%= __("Rate") %}</h6></div>
+                    </div>
+                    <div class="items"></div>
+    			</div>
+    			<div class="totals-area">
+                    <div class="row pos-bill-row  net-total-area">
+                        <div class="col-xs-6"><h6 class="text-muted">{%= __("Net Total") %}</h6></div>
+                        <div class="col-xs-6"><h6 class="net-total text-right"></h6></div>
+                    </div>
+                    <div class="tax-table hide">
+                        <h6>{%= __("Taxes") %}</h6>
+                    </div>
+                    <div class="row pos-bill-row discount-amount-area">
+                        <div class="col-xs-6"><h6 class="text-muted">{%= __("Discount Amount") %}</h6></div>
+                        <div class="col-xs-6"><input type="text" class="form-control discount-amount text-right"></div>
+                    </div>
+                    <div class="row pos-bill-row grand-total-area">
+                        <div class="col-xs-6"><h6>{%= __("Grand Total") %}</h6></div>
+                        <div class="col-xs-6"><h6 class="grand-total text-right"></h6></div>
+                    </div>
+                    <div class="row pos-bill-row paid-amount-area">
+                        <div class="col-xs-6"><h6 class="text-muted">{%= __("Amount Paid") %}</h6></div>
+                        <div class="col-xs-6"><input type="text" class="form-control paid-amount text-right"></div>
+                    </div>
+    			</div>
+    		</div>
+    	</div>
+    	<div class="col-sm-7 pos-item-area">
+            <div class="row pos-item-toolbar">
+            	<div class="barcode-area col-xs-4"></div>
+            	<div class="search-area col-xs-4"></div>
+            	<div class="item-group-area col-xs-4"></div>
+            </div>
+    		<div class="item-list-area row">
+    			<div class="col-sm-12">
+    				<div class="row item-list"></div>
+    			</div>
+    		</div>
+    	</div>
+    </div>
+</div>
diff --git a/erpnext/accounts/doctype/sales_invoice/pos.js b/erpnext/public/js/pos/pos.js
similarity index 70%
rename from erpnext/accounts/doctype/sales_invoice/pos.js
rename to erpnext/public/js/pos/pos.js
index 8c6e3cd..cfae515 100644
--- a/erpnext/accounts/doctype/sales_invoice/pos.js
+++ b/erpnext/public/js/pos/pos.js
@@ -5,105 +5,7 @@
 	init: function(wrapper, frm) {
 		this.wrapper = wrapper;
 		this.frm = frm;
-		this.wrapper.html('<div class="container">\
-			<div class="row" style="margin: -9px 0px 10px -30px; border-bottom: 1px solid #c7c7c7;">\
-				<div class="party-area col-sm-3 col-xs-6"></div>\
-				<div class="barcode-area col-sm-3 col-xs-6"></div>\
-				<div class="search-area col-sm-3 col-xs-6"></div>\
-				<div class="item-group-area col-sm-3 col-xs-6"></div>\
-			</div>\
-			<div class="row">\
-				<div class="col-sm-6">\
-					<div class="pos-bill">\
-						<div class="item-cart">\
-							<table class="table table-condensed table-hover" id="cart" style="table-layout: fixed;">\
-								<thead>\
-									<tr>\
-										<th style="width: 40%">'+__("Item")+'</th>\
-										<th style="width: 9%"></th>\
-										<th style="width: 22%; text-align: right;">Qty</th>\
-										<th style="width: 9%"></th>\
-										<th style="width: 20%; text-align: right;">Rate</th>\
-									</tr>\
-								</thead>\
-								<tbody>\
-								</tbody>\
-							</table>\
-						</div>\
-						<br>\
-						<div class="totals-area" style="margin-left: 40%;">\
-							<div class="net-total-area">\
-								<table class="table table-condensed">\
-									<tr>\
-										<td><b>'+__("Net Total")+'</b></td>\
-										<td style="text-align: right;" class="net-total"></td>\
-									</tr>\
-								</table>\
-							</div>\
-							<div class="tax-table" style="display: none;">\
-								<table class="table table-condensed">\
-									<thead>\
-										<tr>\
-											<th style="width: 60%">'+__("Taxes")+'</th>\
-											<th style="width: 40%; text-align: right;"></th>\
-										</tr>\
-									</thead>\
-									<tbody>\
-									</tbody>\
-								</table>\
-							</div>\
-							<div class="discount-amount-area">\
-								<table class="table table-condensed">\
-									<tr>\
-										<td style="vertical-align: middle;" width="50%"><b>'+__("Discount Amount")+'</b></td>\
-										<td width="20%"></td>\
-										<td style="text-align: right;">\
-											<input type="text" class="form-control discount-amount" \
-												style="text-align: right;">\
-										</td>\
-									</tr>\
-								</table>\
-							</div>\
-							<div class="grand-total-area">\
-								<table class="table table-condensed">\
-									<tr>\
-										<td style="vertical-align: middle;"><b>'+__("Grand Total")+'</b></td>\
-										<td style="text-align: right; font-size: 200%; \
-											font-size: bold;" class="grand-total"></td>\
-									</tr>\
-								</table>\
-							</div>\
-							<div class="paid-amount-area">\
-								<table class="table table-condensed">\
-								<tr>\
-									<td style="vertical-align: middle;">'+__("Amount Paid")+'</td>\
-									<td style="text-align: right; \
-										font-size: bold;" class="paid-amount"></td>\
-								</tr>\
-								</table>\
-							</div>\
-						</div>\
-					</div>\
-					<br><br>\
-					<div class="row">\
-						<div class="col-sm-9">\
-							<button class="btn btn-success btn-lg make-payment">\
-								<i class="icon-money"></i> '+__("Make Payment")+'</button>\
-						</div>\
-						<div class="col-sm-3">\
-							<button class="btn btn-default btn-lg remove-items" style="display: none;">\
-								<i class="icon-trash"></i> '+__("Del")+'</button>\
-						</div>\
-					</div>\
-					<br><br>\
-				</div>\
-				<div class="col-sm-6">\
-					<div class="item-list-area">\
-						<div class="col-sm-12">\
-							<div class="row item-list"></div></div>\
-					</div>\
-				</div>\
-			</div></div>');
+		this.wrapper.html(frappe.render_template("pos", {}));
 
 		this.check_transaction_type();
 		this.make();
@@ -271,14 +173,8 @@
 				// if form is local then allow this function
 				$(me.wrapper).find("div.pos-item").on("click", function() {
 					if(me.frm.doc.docstatus==0) {
-						if(!me.frm.doc[me.party.toLowerCase()] && ((me.frm.doctype == "Quotation" &&
-								me.frm.doc.quotation_to == "Customer")
-								|| me.frm.doctype != "Quotation")) {
-							msgprint(__("Please select {0} first.", [me.party]));
-							return;
-						}
-						else
-							me.add_to_cart($(this).attr("data-item_code"));
+						console.log($(this).attr("data-item_code"));
+						me.add_to_cart($(this).attr("data-item_code"));
 					}
 				});
 			}
@@ -288,8 +184,15 @@
 		var me = this;
 		var caught = false;
 
+		if(!me.frm.doc[me.party.toLowerCase()] && ((me.frm.doctype == "Quotation" &&
+				me.frm.doc.quotation_to == "Customer")
+				|| me.frm.doctype != "Quotation")) {
+			msgprint(__("Please select {0} first.", [me.party]));
+			return;
+		}
+
 		// get no_of_items
-		var no_of_items = me.wrapper.find("#cart tbody tr").length;
+		var no_of_items = me.wrapper.find(".pos-bill-item").length;
 
 		// check whether the item is already added
 		if (no_of_items != 0) {
@@ -333,6 +236,7 @@
 		}
 	},
 	update_qty: function(item_code, qty) {
+		console.log([item_code, qty]);
 		var me = this;
 		$.each(this.frm.doc[this.frm.cscript.fname] || [], function(i, d) {
 			if (d.item_code == item_code) {
@@ -368,7 +272,7 @@
 
 		// If quotation to is not Customer then remove party
 		if (this.frm.doctype == "Quotation" && this.frm.doc.quotation_to!="Customer") {
-			this.party_field.$wrapper.remove();
+			this.party_field.$input.prop("disabled", true);
 		}
 	},
 	refresh_item_list: function() {
@@ -381,45 +285,20 @@
 	},
 	show_items_in_item_cart: function() {
 		var me = this;
-		var $items = this.wrapper.find("#cart tbody").empty();
+		var $items = this.wrapper.find(".items").empty();
 
 		$.each(this.frm.doc[this.frm.cscript.fname] || [], function(i, d) {
-
-			$(repl('<tr id="%(item_code)s" data-selected="false">\
-					<td>%(item_code)s%(item_name)s</td>\
-					<td style="vertical-align:top; padding-top: 10px;" \
-						align="right">\
-						<div class="decrease-qty" style="cursor:pointer;">\
-							<i class="icon-minus-sign icon-large text-danger"></i>\
-						</div>\
-					</td>\
-					<td style="vertical-align:middle;">\
-						<input type="text" value="%(qty)s" \
-						class="form-control qty" style="text-align: right;">\
-						<div class="actual-qty small text-muted">'
-							+__("Stock: ")+'<span class="text-success">%(actual_qty)s</span>%(projected_qty)s</div>\
-					</td>\
-					<td style="vertical-align:top; padding-top: 10px;">\
-						<div class="increase-qty" style="cursor:pointer;">\
-							<i class="icon-plus-sign icon-large text-success"></i>\
-						</div>\
-					</td>\
-					<td style="text-align: right;"><b>%(amount)s</b><br>%(rate)s</td>\
-				</tr>',
-				{
-					item_code: d.item_code,
-					item_name: d.item_name===d.item_code ? "" : ("<br>" + d.item_name),
-					qty: d.qty,
-					actual_qty: d.actual_qty,
-					projected_qty: d.projected_qty ? (" <span title='"+__("Projected Qty")
-						+"'>(" + d.projected_qty + ")<span>") : "",
-					rate: format_currency(d.rate, me.frm.doc.currency),
-					amount: format_currency(d.amount, me.frm.doc.currency)
-				}
-			)).appendTo($items);
+			$(frappe.render_template("pos_bill_item", {
+				item_code: d.item_code,
+				item_name: d.item_name===d.item_code ? "" : ("<br>" + d.item_name),
+				qty: d.qty,
+				actual_qty: d.actual_qty,
+				rate: format_currency(d.rate, me.frm.doc.currency),
+				amount: format_currency(d.amount, me.frm.doc.currency)
+			})).appendTo($items);
 		});
 
-		this.wrapper.find("input.qty").on("focus", function() {
+		this.wrapper.find("input.pos-item-qty").on("focus", function() {
 			$(this).select();
 		});
 	},
@@ -461,15 +340,15 @@
 		var me = this;
 
 		// append quantity to the respective item after change from input box
-		$(this.wrapper).find("input.qty").on("change", function() {
+		$(this.wrapper).find("input.pos-item-qty").on("change", function() {
 			var item_code = $(this).closest("tr").attr("id");
 			me.update_qty(item_code, $(this).val());
 		});
 
 		// increase/decrease qty on plus/minus button
-		$(this.wrapper).find(".increase-qty, .decrease-qty").on("click", function() {
-			var tr = $(this).closest("tr");
-			me.increase_decrease_qty(tr, $(this).attr("class"));
+		$(this.wrapper).find(".pos-qty-btn").on("click", function() {
+			var $item = $(this).parents(".pos-bill-item:first");
+			me.increase_decrease_qty($item, $(this).attr("data-action"));
 		});
 
 		// on td click toggle the highlighting of row
@@ -487,15 +366,19 @@
 		});
 
 		me.refresh_delete_btn();
+		//me.focus();
+	},
+	focus: function() {
 		if(me.frm.doc[this.party]) {
 			this.barcode.$input.focus();
 		} else {
-			this.party_field.$input.focus();
+			if(!(this.frm.doctype == "Quotation" && this.frm.doc.quotation_to!="Customer"))
+				this.party_field.$input.focus();
 		}
 	},
-	increase_decrease_qty: function(tr, operation) {
-		var item_code = tr.attr("id");
-		var item_qty = cint(tr.find("input.qty").val());
+	increase_decrease_qty: function($item, operation) {
+		var item_code = $item.attr("data-item-code");
+		var item_qty = cint($item.find("input.pos-item-qty").val());
 
 		if (operation == "increase-qty")
 			this.update_qty(item_code, item_qty + 1);
@@ -506,7 +389,7 @@
 		var me = this;
 		// if form is submitted & cancelled then disable all input box & buttons
 		$(this.wrapper)
-			.find(".remove-items, .make-payment, .increase-qty, .decrease-qty")
+			.find(".remove-items, .make-payment, .pos-qty-btn")
 			.toggle(this.frm.doc.docstatus===0);
 
 		$(this.wrapper).find('input, button').prop("disabled", !(this.frm.doc.docstatus===0));
diff --git a/erpnext/public/js/pos/pos_bill_item.html b/erpnext/public/js/pos/pos_bill_item.html
new file mode 100644
index 0000000..e45536f
--- /dev/null
+++ b/erpnext/public/js/pos/pos_bill_item.html
@@ -0,0 +1,16 @@
+<div class="row pos-bill-row pos-bill-item" data-item-code="{%= item_code %}">
+    <div class="col-xs-5"><h6>{%= item_code %}{%= item_name %}</h6></div>
+    <div class="col-xs-4">
+        <div class="row pos-qty-row">
+            <div class="col-xs-2 text-center pos-qty-btn" data-action="decrease-qty"><i class="icon-minus-sign text-muted"></i></div>
+            <div class="col-xs-8">
+				<input type="text" value="{%= qty %}" class="form-control input-sm pos-item-qty text-right">
+				<div class="actual-qty small text-muted text-right">{%= actual_qty %}</div>
+            </div>
+            <div class="col-xs-2 text-center pos-qty-btn" data-action="increase-qty"><i class="icon-plus-sign text-muted"></i></div>
+        </div>
+    </div>
+    <div class="col-xs-3 text-right">
+        <h6>{%= amount %}<div class="text-muted" style="margin-top: 5px;">{%= rate %}</div></h6>
+    </div>
+</div>
diff --git a/erpnext/public/js/transaction.js b/erpnext/public/js/transaction.js
index a261649..5bbfae4 100644
--- a/erpnext/public/js/transaction.js
+++ b/erpnext/public/js/transaction.js
@@ -105,12 +105,12 @@
 
 		// make pos
 		if(!this.frm.pos) {
-			this.frm.layout.add_view("pos");
-			this.frm.pos = new erpnext.POS(this.frm.layout.views.pos, this.frm);
+			var wrapper = this.frm.appframe.add_view("pos", "<div>");
+			this.frm.pos = new erpnext.POS(wrapper, this.frm);
 		}
 
 		// toggle view
-		this.frm.layout.set_view(this.pos_active ? "" : "pos");
+		this.frm.appframe.set_view(this.pos_active ? "main" : "pos");
 		this.pos_active = !this.pos_active;
 
 		// refresh
@@ -224,9 +224,9 @@
 
 				me.frm.script_manager.trigger("currency");
 				me.apply_pricing_rule();
-			}	
+			}
 		}
-		
+
 		if (this.frm.doc.posting_date) var date = this.frm.doc.posting_date;
 		else var date = this.frm.doc.transaction_date;
 		erpnext.get_fiscal_year(this.frm.doc.company, date, fn);
diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js
index 0026582..cad9a8c 100644
--- a/erpnext/selling/doctype/quotation/quotation.js
+++ b/erpnext/selling/doctype/quotation/quotation.js
@@ -10,7 +10,6 @@
 
 {% include 'selling/sales_common.js' %}
 {% include 'accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js' %}
-{% include 'accounts/doctype/sales_invoice/pos.js' %}
 
 erpnext.selling.QuotationController = erpnext.selling.SellingController.extend({
 	onload: function(doc, dt, dn) {
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index 65b91f4..2c19686 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -10,7 +10,6 @@
 
 {% include 'selling/sales_common.js' %}
 {% include 'accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js' %}
-{% include 'accounts/doctype/sales_invoice/pos.js' %}
 
 erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend({
 	refresh: function(doc, dt, dn) {
diff --git a/erpnext/selling/page/sales_analytics/sales_analytics.js b/erpnext/selling/page/sales_analytics/sales_analytics.js
index 3480866..7586353 100644
--- a/erpnext/selling/page/sales_analytics/sales_analytics.js
+++ b/erpnext/selling/page/sales_analytics/sales_analytics.js
@@ -10,7 +10,7 @@
 	new erpnext.SalesAnalytics(wrapper);
 
 
-	wrapper.appframe.add_module_icon("Selling")
+	frappe.add_breadcrumbs("Selling")
 
 }
 
diff --git a/erpnext/selling/page/sales_browser/sales_browser.js b/erpnext/selling/page/sales_browser/sales_browser.js
index d254028..fcbd71c 100644
--- a/erpnext/selling/page/sales_browser/sales_browser.js
+++ b/erpnext/selling/page/sales_browser/sales_browser.js
@@ -6,7 +6,7 @@
 		parent: wrapper,
 	})
 
-	wrapper.appframe.add_module_icon("Selling")
+	frappe.add_breadcrumbs("Selling")
 
 	wrapper.appframe.set_title_right(__('Refresh'), function() {
 			wrapper.make_tree();
diff --git a/erpnext/selling/page/sales_funnel/sales_funnel.js b/erpnext/selling/page/sales_funnel/sales_funnel.js
index 7670762..99d3d07 100644
--- a/erpnext/selling/page/sales_funnel/sales_funnel.js
+++ b/erpnext/selling/page/sales_funnel/sales_funnel.js
@@ -1,73 +1,71 @@
 // Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
 // License: GNU General Public License v3. See license.txt
 
-frappe.pages['sales-funnel'].onload = function(wrapper) { 
+frappe.pages['sales-funnel'].onload = function(wrapper) {
 	frappe.ui.make_app_page({
 		parent: wrapper,
 		title: __('Sales Funnel'),
 		single_column: true
 	});
-	
+
 	wrapper.sales_funnel = new erpnext.SalesFunnel(wrapper);
-	
-	wrapper.appframe.add_module_icon("Selling", "sales-funnel", function() {
-		frappe.set_route("selling-home");
-	});
+
+	frappe.add_breadcrumbs("Selling");
 }
 
 erpnext.SalesFunnel = Class.extend({
 	init: function(wrapper) {
 		var me = this;
 		// 0 setTimeout hack - this gives time for canvas to get width and height
-		setTimeout(function() { 
+		setTimeout(function() {
 			me.setup(wrapper);
 			me.get_data();
 		}, 0);
 	},
-	
+
 	setup: function(wrapper) {
 		var me = this;
-		
-		this.elements = { 
+
+		this.elements = {
 			layout: $(wrapper).find(".layout-main"),
 			from_date: wrapper.appframe.add_date(__("From Date")),
 			to_date: wrapper.appframe.add_date(__("To Date")),
-			refresh_btn: wrapper.appframe.set_title_right(__("Refresh"), 
+			refresh_btn: wrapper.appframe.set_title_right(__("Refresh"),
 				function() { me.get_data(); }, "icon-refresh"),
 		};
-		
+
 		this.elements.no_data = $('<div class="alert alert-warning">' + __("No Data") + '</div>')
 			.toggle(false)
 			.appendTo(this.elements.layout);
-		
+
 		this.elements.funnel_wrapper = $('<div class="funnel-wrapper text-center"></div>')
 			.appendTo(this.elements.layout);
-		
+
 		this.options = {
 			from_date: frappe.datetime.add_months(frappe.datetime.get_today(), -1),
 			to_date: frappe.datetime.get_today()
 		};
-		
+
 		// set defaults and bind on change
-		$.each(this.options, function(k, v) { 
-			me.elements[k].val(frappe.datetime.str_to_user(v)); 
+		$.each(this.options, function(k, v) {
+			me.elements[k].val(frappe.datetime.str_to_user(v));
 			me.elements[k].on("change", function() {
 				me.options[k] = frappe.datetime.user_to_str($(this).val());
 				me.get_data();
 			});
 		});
-		
+
 		// bind refresh
 		this.elements.refresh_btn.on("click", function() {
 			me.get_data(this);
 		});
-		
+
 		// bind resize
 		$(window).resize(function() {
 			me.render();
 		});
 	},
-	
+
 	get_data: function(btn) {
 		var me = this;
 		frappe.call({
@@ -85,72 +83,72 @@
 			}
 		});
 	},
-	
+
 	render: function() {
 		var me = this;
 		this.prepare();
-		
+
 		var context = this.elements.context,
 			x_start = 0.0,
 			x_end = this.options.width,
 			x_mid = (x_end - x_start) / 2.0,
 			y = 0,
 			y_old = 0.0;
-		
+
 		if(this.options.total_value === 0) {
 			this.elements.no_data.toggle(true);
 			return;
 		}
-		
+
 		this.options.data.forEach(function(d) {
 			context.fillStyle = d.color;
 			context.strokeStyle = d.color;
 			me.draw_triangle(x_start, x_mid, x_end, y, me.options.height);
-			
+
 			y_old = y;
 
 			// new y
 			y = y + d.height;
-			
+
 			// new x
 			var half_side = (me.options.height - y) / Math.sqrt(3);
 			x_start = x_mid - half_side;
 			x_end = x_mid + half_side;
-			
+
 			var y_mid = y_old + (y - y_old) / 2.0;
-			
+
 			me.draw_legend(x_mid, y_mid, me.options.width, me.options.height, d.value + " - " + d.title);
 		});
 	},
-	
+
 	prepare: function() {
 		var me = this;
-		
+
 		this.elements.no_data.toggle(false);
-		
+
 		// calculate width and height options
 		this.options.width = $(this.elements.funnel_wrapper).width() * 2.0 / 3.0;
 		this.options.height = (Math.sqrt(3) * this.options.width) / 2.0;
-		
+
 		// calculate total weightage
 		// as height decreases, area decreases by the square of the reduction
 		// hence, compensating by squaring the index value
 		this.options.total_weightage = this.options.data.reduce(
 			function(prev, curr, i) { return prev + Math.pow(i+1, 2) * curr.value; }, 0.0);
-		
+
 		// calculate height for each data
 		$.each(this.options.data, function(i, d) {
 			d.height = me.options.height * d.value * Math.pow(i+1, 2) / me.options.total_weightage;
 		});
-		
+
 		this.elements.canvas = $('<canvas></canvas>')
 			.appendTo(this.elements.funnel_wrapper.empty())
 			.attr("width", $(this.elements.funnel_wrapper).width())
 			.attr("height", this.options.height);
-		
+
 		this.elements.context = this.elements.canvas.get(0).getContext("2d");
 	},
-	
+
 	draw_triangle: function(x_start, x_mid, x_end, y, height) {
 		var context = this.elements.context;
 		context.beginPath();
@@ -161,27 +159,27 @@
 		context.closePath();
 		context.fill();
 	},
-	
+
 	draw_legend: function(x_mid, y_mid, width, height, title) {
 		var context = this.elements.context;
-		
+
 		// draw line
 		context.beginPath();
 		context.moveTo(x_mid, y_mid);
 		context.lineTo(width, y_mid);
 		context.closePath();
 		context.stroke();
-		
+
 		// draw circle
 		context.beginPath();
 		context.arc(width, y_mid, 5, 0, Math.PI * 2, false);
 		context.closePath();
 		context.fill();
-		
+
 		// draw text
 		context.fillStyle = "black";
 		context.textBaseline = "middle";
 		context.font = "1.1em sans-serif";
 		context.fillText(title, width + 20, y_mid);
 	}
-});
\ No newline at end of file
+});
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index 6abc268..354667a 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -9,7 +9,6 @@
 
 {% include 'selling/sales_common.js' %};
 {% include 'accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js' %}
-{% include 'accounts/doctype/sales_invoice/pos.js' %}
 
 frappe.provide("erpnext.stock");
 frappe.provide("erpnext.stock.delivery_note");
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
index fc2d1b3..de2d0de 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -7,7 +7,6 @@
 
 {% include 'buying/doctype/purchase_common/purchase_common.js' %};
 {% include 'accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js' %}
-{% include 'accounts/doctype/sales_invoice/pos.js' %}
 
 frappe.provide("erpnext.stock");
 erpnext.stock.PurchaseReceiptController = erpnext.buying.BuyingController.extend({
diff --git a/erpnext/stock/page/stock_analytics/stock_analytics.js b/erpnext/stock/page/stock_analytics/stock_analytics.js
index 963cff0..8fd2d32 100644
--- a/erpnext/stock/page/stock_analytics/stock_analytics.js
+++ b/erpnext/stock/page/stock_analytics/stock_analytics.js
@@ -12,7 +12,7 @@
 	new erpnext.StockAnalytics(wrapper);
 
 
-	wrapper.appframe.add_module_icon("Stock")
+	frappe.add_breadcrumbs("Stock")
 	
 }
 
diff --git a/erpnext/stock/page/stock_ledger/stock_ledger.js b/erpnext/stock/page/stock_ledger/stock_ledger.js
index b4086dc..84e5b9b 100644
--- a/erpnext/stock/page/stock_ledger/stock_ledger.js
+++ b/erpnext/stock/page/stock_ledger/stock_ledger.js
@@ -9,7 +9,7 @@
 	});
 
 	new erpnext.StockLedger(wrapper);
-	wrapper.appframe.add_module_icon("Stock")
+	frappe.add_breadcrumbs("Stock")
 }
 
 frappe.require("assets/erpnext/js/stock_grid_report.js");
diff --git a/erpnext/stock/page/stock_level/stock_level.js b/erpnext/stock/page/stock_level/stock_level.js
index 8659c28..785ad7f 100644
--- a/erpnext/stock/page/stock_level/stock_level.js
+++ b/erpnext/stock/page/stock_level/stock_level.js
@@ -11,7 +11,7 @@
 	new erpnext.StockLevel(wrapper);
 
 
-	wrapper.appframe.add_module_icon("Stock")
+	frappe.add_breadcrumbs("Stock")
 	;
 }
 
diff --git a/erpnext/support/page/support_analytics/support_analytics.js b/erpnext/support/page/support_analytics/support_analytics.js
index 9e24f67..95c5fc8 100644
--- a/erpnext/support/page/support_analytics/support_analytics.js
+++ b/erpnext/support/page/support_analytics/support_analytics.js
@@ -11,7 +11,7 @@
 	new erpnext.SupportAnalytics(wrapper);
 	
 
-	wrapper.appframe.add_module_icon("Support")
+	frappe.add_breadcrumbs("Support")
 	
 }
 
