diff --git a/website/templates/pages/address.html b/website/templates/pages/address.html
index 6544b12..6d4273c 100644
--- a/website/templates/pages/address.html
+++ b/website/templates/pages/address.html
@@ -89,7 +89,7 @@
 			wn.call({
 				btn: $(this),
 				type: "POST",
-				method: "website.helpers.cart.save_address",
+				method: "selling.utils.cart.save_address",
 				args: { fields: fields, address_fieldname: get_url_arg("address_fieldname") },
 				callback: function(r) {
 					if(r.exc) {
diff --git a/website/templates/pages/addresses.html b/website/templates/pages/addresses.html
index 04fc47b..b19780a 100644
--- a/website/templates/pages/addresses.html
+++ b/website/templates/pages/addresses.html
@@ -26,7 +26,7 @@
 	
 	var fetch_addresses = function() {
 		wn.call({
-			method: "website.helpers.cart.get_addresses",
+			method: "selling.utils.cart.get_addresses",
 			callback: function(r) {
 				$("#address-list .progress").remove();
 				var $list = $("#address-list");
diff --git a/website/templates/pages/blog.html b/website/templates/pages/blog.html
deleted file mode 100644
index 9bd1abf..0000000
--- a/website/templates/pages/blog.html
+++ /dev/null
@@ -1,33 +0,0 @@
-{% extends "app/website/templates/html/page.html" %}
-
-{% block javascript %}
-	{% include "app/website/templates/js/blog.js" %}
-{% endblock %}
-
-{% block css %}
-	{% include "app/website/templates/css/blog.css" %}
-{% endblock %}
-
-{% set title="Blog" %}
-
-{% block content %}
-<div class="col-md-12">
-	<h2 id="blog-title">{{ blog_title }}</h2>
-	{% if blog_introduction %}
-	<p>{{ blog_introduction }}</p>
-	{% endif %}
-	<h3 id="blot-subtitle" style="display:none;"></h3>
-	<br>
-	<div class="progress progress-striped active">
-		<div class="progress-bar progress-bar-info" style="width: 100%;"></div>
-	</div>
-	<div id="blog-list">
-		<!-- blog list will be generated dynamically -->
-	</div>
-	<div style="text-align: center;">
-		<button id="next-page" class="btn btn-default" 
-			style="display:none;">More...</button>
-	</div>
-</div>
-{% include 'app/website/templates/html/blog_footer.html' %}
-{% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/messages.html b/website/templates/pages/messages.html
deleted file mode 100644
index e1ea8d0..0000000
--- a/website/templates/pages/messages.html
+++ /dev/null
@@ -1,31 +0,0 @@
-{% extends "app/website/templates/html/transactions.html" %}
-
-{% block javascript -%}
-{{ super() }}
-
-var render = function(doc) {
-	doc.sender = doc.sender ? doc.sender : "To ";
-	doc.recipients = doc.recipients ? (" to " + doc.recipients) : "";
-	doc.content = remove_script_and_style(doc.content);
-	
-	if(!is_html(doc.content)) {
-		doc.content = doc.content.replace("\n", "<br>");
-	}
-		
-	$(repl('<a class="list-group-item">\
-			<div class="row col-md-12">%(subject)s</div>\
-			<div class="row text-muted">\
-				<div class="col-md-6">%(sender)s%(recipients)s</div>\
-				<div class="col-md-6 text-right">%(creation)s</div>\
-			</div>\
-			<div class="row col-md-12 msg-content" style="display: none;"><hr>%(content)s</div>\
-		</a>', doc))
-		.appendTo($list)
-		.on("click", function() {
-			$(this).find(".msg-content").toggle();
-		});
-	
-	
-}
-
-{%- endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/partners.html b/website/templates/pages/partners.html
deleted file mode 100644
index 50a095d..0000000
--- a/website/templates/pages/partners.html
+++ /dev/null
@@ -1,30 +0,0 @@
-{% extends "app/website/templates/html/page.html" %}
-
-{% set title="Partners" %}
-
-{% block content %}
-	<div class="col-md-12">
-		<h2 id="blog-title">{{ title }}</h2>
-		<hr>
-		{% for partner_info in partners %}
-		<div class="row">
-			<div class="col-md-3">
-				{% if partner_info.logo -%}
-				<a href="{{ partner_info.page_name }}">
-					<img itemprop="brand" src="{{ partner_info.logo }}" class="partner-logo" 
-						alt="{{ partner_info.partner_name }}" title="{{ partner_info.partner_name }}" />
-				</a>
-				{%- endif %}
-			</div>
-			<div class="col-md-9">
-				<a href="{{ partner_info.page_name }}">
-					<h4>{{ partner_info.partner_name }}</h4>
-				</a>
-				<p style="color: #999">{{ partner_info.territory }} - {{ partner_info.partner_type }}</p>
-				<p>{{ partner_info.introduction }}</p>
-			</div>
-		</div>
-		<hr>
-		{% endfor %}
-	</div>
-{% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/product_search.html b/website/templates/pages/product_search.html
deleted file mode 100644
index e969f75..0000000
--- a/website/templates/pages/product_search.html
+++ /dev/null
@@ -1,33 +0,0 @@
-{% extends "app/website/templates/html/page.html" %}
-
-{% set title="Product Search" %}
-
-{% block javascript %}
-{% include "app/website/templates/js/product_list.js" %}
-{% endblock %}
-
-{% block content %}
-<script>
-$(document).ready(function() {
-	var txt = get_url_arg("q");
-	$(".search-results").html("Search results for: " + txt);
-	window.search = txt;
-	window.start = 0;
-	window.get_product_list();
-});
-</script>
-
-{% include 'app/website/templates/html/product_search_box.html' %}
-<div class="col-md-12">
-	<h3 class="search-results">Search Results</h3>
-	<div id="search-list" class="row">
-		
-	</div>
-	<div style="text-align: center;">
-		<div class="more-btn" 
-			style="display: none; text-align: center;">
-			<button class="btn">More...</button>
-		</div>
-	</div>
-</div>
-{% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/ticket.html b/website/templates/pages/ticket.html
deleted file mode 100644
index 6622ed1..0000000
--- a/website/templates/pages/ticket.html
+++ /dev/null
@@ -1,67 +0,0 @@
-{% extends "app/website/templates/html/page.html" %}
-
-{% set title=doc.name %}
-
-{% set status_label = {
-	"Open": "label-success",
-	"To Reply": "label-danger",
-	"Closed": "label-default"
-} %}
-
-{% 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><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-ticket icon-fixed-width"></i> {{ doc.name }}</h3>
-	{% if doc.name == "Not Allowed" -%}
-		<script>ask_to_login();</script>
-	{% else %}
-	<hr>
-	{%- if doc.status -%}
-	{% if doc.status == "Waiting for Customer" -%}
-		{% set status = "To Reply" %}
-	{% else %}
-		{% set status = doc.status %}
-	{%- endif -%}
-	<div class="row">
-		<div class="col-md-2" style="margin-bottom: 7px;">
-			<span class="label {{ status_label.get(status) or 'label-default' }}">{{ status }}</span>
-		</div>
-		<div class="col-md-8">
-			<div class="row col-md-12">{{ doc.subject }}</div>
-		</div>
-		<div class="col-md-2 pull-right">
-			<span class="text-muted">{{ utils.formatdate(doc.creation) }}</span>
-		</div>
-	</div>
-	<br>
-	<h4>Messages</h4>
-	{%- if doclist.get({"doctype":"Communication"}) -%}
-	<div>
-		<table class="table table-bordered table-striped">
-			<tbody>
-				{%- for comm in doclist.get({"doctype":"Communication"}) %}
-				<tr>
-					<td>
-					<h5 style="text-transform: none">
-						{{ comm.sender }} on {{ utils.formatdate(doc.modified) }}</h5>
-					<hr>
-					<p>{{ webnotes.utils.is_html(comm.content) and comm.content or
-						comm.content.replace("\n", "<br>")}}</p>
-					</td>
-				</tr>
-				{% endfor -%}
-			</tbody>
-		</table>
-	</div>
-	{%- else -%}
-	<div class="alert">No messages</div>
-	{%- endif -%}
-	{%- endif -%}
-	{% endif -%}
-</div>
-{% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/tickets.html b/website/templates/pages/tickets.html
deleted file mode 100644
index 166dbcd..0000000
--- a/website/templates/pages/tickets.html
+++ /dev/null
@@ -1,31 +0,0 @@
-{% extends "app/website/templates/html/transactions.html" %}
-
-{% block javascript -%}
-{{ super() }}
-
-var status_label = {
-	"Open": "label-success",
-	"Waiting for Customer": "label-danger",
-	"Closed": "label-default"
-}
-
-var render = function(doc) {
-	doc.status = doc.status.trim();
-	doc.label_class = status_label[doc.status] || "label-default";
-	if(doc.status==="Waiting for Customer") doc.status = "To Reply";
-	
-	$(repl('<a href="{{ page }}?name=%(name)s" class="list-group-item">\
-			<div class="row">\
-				<div class="col-md-2" style="margin-bottom: 7px;"><span class="label %(label_class)s">\
-					%(status)s</span></div>\
-				<div class="col-md-8">\
-					<div class="row col-md-12">%(name)s</div>\
-					<div class="row col-md-12 text-muted">%(subject)s</div>\
-				</div>\
-				<div class="col-md-2 pull-right">\
-					<span class="text-muted">%(creation)s</span>\
-				</div>\
-			</div>\
-		</a>', doc)).appendTo($list);
-};
-{%- endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/writers.html b/website/templates/pages/writers.html
deleted file mode 100644
index 5b254b0..0000000
--- a/website/templates/pages/writers.html
+++ /dev/null
@@ -1,17 +0,0 @@
-{% extends "app/website/templates/html/page.html" %}
-
-{% set title="Blog Writers" %}
-
-{% block content %}
-<div class="col-md-12">
-	<h2 id="blog-title">Blog Writers</h2>
-	{% if writers_introduction %}
-	<p>{{ writers_introduction }}</p>
-	{% endif %}
-	<hr>
-	{% for blogger_info in bloggers %}
-	{% include "app/website/templates/html/blogger.html" %}	
-	{% endfor %}
-</div>
-{% include 'app/website/templates/html/blog_footer.html' %}
-{% endblock %}
\ No newline at end of file
