diff --git a/website/doctype/website_settings/website_settings.txt b/website/doctype/website_settings/website_settings.txt
index 3ae0fbe..b642965 100644
--- a/website/doctype/website_settings/website_settings.txt
+++ b/website/doctype/website_settings/website_settings.txt
@@ -1,256 +1,217 @@
-# DocType, Website Settings
 [
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2012-05-21 15:54:09',
-		'docstatus': 0,
-		'modified': '2012-07-09 16:20:58',
-		'modified_by': u'Administrator',
-		'owner': u'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': u'1329115882',
-		'allow_attach': 1,
-		'colour': u'White:FFF',
-		'doctype': 'DocType',
-		'document_type': u'Other',
-		'issingle': 1,
-		'max_attachments': 10,
-		'module': u'Website',
-		'name': '__common__',
-		'section_style': u'Simple',
-		'show_in_menu': 0,
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': u'DocField',
-		'name': '__common__',
-		'parent': u'Website Settings',
-		'parentfield': u'fields',
-		'parenttype': u'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': u'DocPerm',
-		'name': '__common__',
-		'parent': u'Website Settings',
-		'parentfield': u'permissions',
-		'parenttype': u'DocType',
-		'read': 1
-	},
-
-	# DocType, Website Settings
-	{
-		'doctype': 'DocType',
-		'name': u'Website Settings'
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'System Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'create': 1,
-		'doctype': u'DocPerm',
-		'permlevel': 0,
-		'role': u'Website Manager',
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': u'DocPerm',
-		'permlevel': 1,
-		'role': u'All'
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'top_bar',
-		'fieldtype': u'Section Break',
-		'label': u'Top Bar',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'The name of your company / website as you want to appear on browser title bar. All pages will have this as the prefix to the title.',
-		'doctype': u'DocField',
-		'fieldname': u'title_prefix',
-		'fieldtype': u'Data',
-		'label': u'Title Prefix',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'The "Web Page" that is the website home page',
-		'doctype': u'DocField',
-		'fieldname': u'home_page',
-		'fieldtype': u'Link',
-		'label': u'Home Page',
-		'options': u'Web Page',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'default_product_category',
-		'fieldtype': u'Link',
-		'label': u'Default Product Category',
-		'options': u'Item Group',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Brand is what appears on the top-right of the toolbar. If it is an image, make sure it\nhas a transparent background and use the &lt;img /&gt; tag',
-		'doctype': u'DocField',
-		'fieldname': u'brand_html',
-		'fieldtype': u'Text',
-		'label': u'Brand HTML',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'top_bar_items',
-		'fieldtype': u'Table',
-		'label': u'Top Bar Items',
-		'options': u'Top Bar Item',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'footer',
-		'fieldtype': u'Section Break',
-		'label': u'Footer',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'address',
-		'fieldtype': u'Text',
-		'label': u'Address',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'copyright',
-		'fieldtype': u'Data',
-		'label': u'Copyright',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'footer_items',
-		'fieldtype': u'Table',
-		'label': u'Footer Items',
-		'options': u'Top Bar Item',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'misc_section',
-		'fieldtype': u'Section Break',
-		'label': u'Misc',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href="http://favicon-generator.org/" target="_blank">favicon-generator.org</a>]',
-		'doctype': u'DocField',
-		'fieldname': u'favicon',
-		'fieldtype': u'Select',
-		'label': u'FavIcon',
-		'options': u'attach_files:',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'description': u'Sub-domain provided by erpnext.com',
-		'doctype': u'DocField',
-		'fieldname': u'subdomain',
-		'fieldtype': u'Text',
-		'label': u'Subdomain',
-		'permlevel': 1,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'description': u'Enter domain names associated to this website, each on a new line',
-		'doctype': u'DocField',
-		'fieldname': u'domain_list',
-		'fieldtype': u'Text',
-		'hidden': 1,
-		'label': u'Domain List',
-		'permlevel': 0,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'file_list',
-		'fieldtype': u'Text',
-		'hidden': 1,
-		'label': u'File List',
-		'no_copy': 1,
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': u'DocField',
-		'fieldname': u'analytics',
-		'fieldtype': u'Section Break',
-		'label': u'Startup',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': u'White:FFF',
-		'description': u'Bind events on startup and page change',
-		'doctype': u'DocField',
-		'fieldname': u'startup_code',
-		'fieldtype': u'Code',
-		'label': u'Startup Code',
-		'options': u'Javascript',
-		'permlevel': 0
-	}
+ {
+  "owner": "Administrator", 
+  "docstatus": 0, 
+  "creation": "2012-07-12 23:29:36", 
+  "modified_by": "Administrator", 
+  "modified": "2012-12-18 16:15:43"
+ }, 
+ {
+  "issingle": 1, 
+  "allow_attach": 1, 
+  "doctype": "DocType", 
+  "module": "Website", 
+  "max_attachments": 10, 
+  "document_type": "Other", 
+  "name": "__common__"
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Website Settings", 
+  "doctype": "DocField", 
+  "parenttype": "DocType", 
+  "parentfield": "fields"
+ }, 
+ {
+  "name": "__common__", 
+  "parent": "Website Settings", 
+  "read": 1, 
+  "doctype": "DocPerm", 
+  "parenttype": "DocType", 
+  "parentfield": "permissions"
+ }, 
+ {
+  "name": "Website Settings", 
+  "doctype": "DocType"
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Landing Page", 
+  "fieldname": "sb0", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "The \"Web Page\" that is the website home page", 
+  "doctype": "DocField", 
+  "label": "Home Page", 
+  "options": "Web Page", 
+  "fieldname": "home_page", 
+  "fieldtype": "Link", 
+  "reqd": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "description": "The name of your company / website as you want to appear on browser title bar. All pages will have this as the prefix to the title.", 
+  "doctype": "DocField", 
+  "label": "Title Prefix", 
+  "fieldname": "title_prefix", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "cb4", 
+  "fieldtype": "Column Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Only Items / Groups under this Groups will be shown on the website. This will also represent the \"Products\" Home Page.", 
+  "doctype": "DocField", 
+  "label": "Default Product Category", 
+  "options": "Item Group", 
+  "fieldname": "default_product_category", 
+  "fieldtype": "Link", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "If checked, the Home page will be the default Item Group for the website.", 
+  "doctype": "DocField", 
+  "label": "Home Page is Products", 
+  "fieldname": "home_page_is_products", 
+  "fieldtype": "Check", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Top Bar", 
+  "fieldname": "top_bar", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Brand is what appears on the top-right of the toolbar. If it is an image, make sure it\nhas a transparent background and use the &lt;img /&gt; tag. Keep size as 200px x 30px", 
+  "doctype": "DocField", 
+  "label": "Brand HTML", 
+  "fieldname": "brand_html", 
+  "fieldtype": "Text", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Top Bar Items", 
+  "options": "Top Bar Item", 
+  "fieldname": "top_bar_items", 
+  "fieldtype": "Table", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Footer", 
+  "fieldname": "footer", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Address", 
+  "fieldname": "address", 
+  "fieldtype": "Text", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Copyright", 
+  "fieldname": "copyright", 
+  "fieldtype": "Data", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Footer Items", 
+  "options": "Top Bar Item", 
+  "fieldname": "footer_items", 
+  "fieldtype": "Table", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Misc", 
+  "fieldname": "misc_section", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "An icon file with .ico extension. Should be 16 x 16 px. Generated using a favicon generator. [<a href=\"http://favicon-generator.org/\" target=\"_blank\">favicon-generator.org</a>]", 
+  "doctype": "DocField", 
+  "label": "FavIcon", 
+  "options": "attach_files:", 
+  "fieldname": "favicon", 
+  "fieldtype": "Select", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Sub-domain provided by erpnext.com", 
+  "doctype": "DocField", 
+  "label": "Subdomain", 
+  "fieldname": "subdomain", 
+  "fieldtype": "Text", 
+  "reqd": 0, 
+  "permlevel": 1
+ }, 
+ {
+  "description": "Enter domain names associated to this website, each on a new line", 
+  "doctype": "DocField", 
+  "label": "Domain List", 
+  "fieldname": "domain_list", 
+  "fieldtype": "Text", 
+  "reqd": 0, 
+  "hidden": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "print_hide": 1, 
+  "no_copy": 1, 
+  "doctype": "DocField", 
+  "label": "File List", 
+  "fieldname": "file_list", 
+  "fieldtype": "Text", 
+  "hidden": 1, 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocField", 
+  "label": "Startup", 
+  "fieldname": "analytics", 
+  "fieldtype": "Section Break", 
+  "permlevel": 0
+ }, 
+ {
+  "description": "Bind events on startup and page change", 
+  "doctype": "DocField", 
+  "label": "Startup Code", 
+  "options": "Javascript", 
+  "fieldname": "startup_code", 
+  "fieldtype": "Code", 
+  "permlevel": 0
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "write": 1, 
+  "role": "System Manager", 
+  "permlevel": 0
+ }, 
+ {
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "write": 1, 
+  "role": "Website Manager", 
+  "permlevel": 0
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "role": "All", 
+  "permlevel": 1
+ }
 ]
\ No newline at end of file
diff --git a/website/helpers/product.py b/website/helpers/product.py
index ceec17d..60d54e6 100644
--- a/website/helpers/product.py
+++ b/website/helpers/product.py
@@ -29,6 +29,7 @@
 	from webnotes.utils import cstr
 	
 	if not args: args = webnotes.form_dict
+	if not args.search: args.search = ""
 	
 	# base query
 	query = """\
@@ -37,10 +38,10 @@
 			web_short_description) as web_short_description
 		from `tabItem`
 		where docstatus = 0
-		and show_in_website = 1"""
+		and show_in_website = 1 """
 	
 	# search term condition
-	if args.get('search'):
+	if args.search:
 		query += """
 			and (
 				web_short_description like %(search)s or
@@ -54,7 +55,7 @@
 	# product group condition
 	if args.get('product_group') and args.get('product_group') != 'All Products':
 		query += """
-			and item_group = %(product_group)s"""
+			and item_group = %(product_group)s """
 	
 	# order by
 	query += """order by item_name asc, name asc limit %s, 10""" % args.start
diff --git a/website/templates/css/products.css b/website/templates/css/products.css
deleted file mode 100644
index 73289c4..0000000
--- a/website/templates/css/products.css
+++ /dev/null
@@ -1,11 +0,0 @@
-	<style>
-		.img-area {
-			float:left;
-			width: 115px;
-		}
-		
-		.product-list-description {
-			float:left;
-			width: 400px;
-		}
-	</style>
\ No newline at end of file
diff --git a/website/templates/html/outer.html b/website/templates/html/outer.html
index 9741451..1580cbe 100644
--- a/website/templates/html/outer.html
+++ b/website/templates/html/outer.html
@@ -9,7 +9,7 @@
 	</header>
 	<div id="body_div">
 		<div class="navbar-wrapper">
-		<div class="navbar navbar-inverse" 
+		<div class="navbar" 
 			style="margin-bottom: 0px;">
 			<div class="navbar-inner">
 			<div class="container">
diff --git a/website/templates/html/product_group.html b/website/templates/html/product_group.html
index d5e1871..91d79b5 100644
--- a/website/templates/html/product_group.html
+++ b/website/templates/html/product_group.html
@@ -1 +1,35 @@
 {% extends "html/page.html" %}
+
+{% block content %}
+
+<div class="layout-wrapper layout-wrapper-background">
+	<div class="web-content" id="content-product_group">
+		<div class="layout-main" style="padding: 30px;">
+			{% include 'html/product_search_box.html' %}
+			{% if description %}
+			<div>{{ description or ""}}</div>
+			{% else %}
+			<h3>{{ name }}</h3>
+			{% endif %}
+			{% if sub_groups %}
+			<div class="well">
+				<div class="container-fluid">
+				{% for d in sub_groups %}
+					<div class="span2">
+						<i class="icon-chevron-right"></i>
+						<a href="{{ d.page_name }}">{{ d.name }}</a></div>
+				{% endfor %}
+				</div>
+			</div>
+			{% endif %}
+			{% if obj.doclist.get({"doctype":"Featured Item"}) %}
+			<hr>
+			<h3>Featured Products</h3>
+			
+			{% endif %}
+			
+		</div>
+	</div>
+</div>
+
+{% endblock %}
\ No newline at end of file
diff --git a/website/templates/html/product_page.html b/website/templates/html/product_page.html
index 50b3060..dd94190 100644
--- a/website/templates/html/product_page.html
+++ b/website/templates/html/product_page.html
@@ -22,6 +22,7 @@
 			<div class="layout-main" style="padding: 30px;">
 				{% include 'html/product_search_box.html' %}
 				<h1>{{ item_name }}</h1>
+				<p class="help">Item Code: {{ name }}</p>
 				<div class="product-page-content">
 					<div class="span6">
 					{% if website_image %}
@@ -29,7 +30,7 @@
 					{% else %}
 					<div class="img-area">
 						<div style='background-color: #eee; padding: 40px;
-							width: 32px; font-size: 32px; color: #888;'>
+							width: 32px; font-size: 32px; color: #888;' title='No Image'>
 						<i class='icon-camera'></i></div>
 					</div>
 					
@@ -46,7 +47,8 @@
 					<div class="span9">
 						<h3>Product Description</h3>
 						<div>
-						{{ web_long_description or web_short_description }}
+						{{ web_long_description or web_short_description or 
+							"[No description given]" }}
 						</div>
 						<hr>
 						{% if obj.doclist.get({"doctype":"Item Website Specification"}) %}
diff --git a/website/templates/html/product_search_box.html b/website/templates/html/product_search_box.html
index 3cbb3e9..125f0ba 100644
--- a/website/templates/html/product_search_box.html
+++ b/website/templates/html/product_search_box.html
@@ -1,7 +1,8 @@
-<div class="pull-right">
+<div class="pull-right" style="margin-top:-15px;">
 	<form class="form-search">
 		<div class="input-append">
-			<input type="text" class="span2 search-query" id="product-search">
+			<input type="text" class="span2 search-query" 
+				id="product-search" placeholder="Product Search...">
 			<button class="btn" id="btn-product-search">
 				<i class="icon-search"></i></button>
 		</div>
@@ -21,4 +22,5 @@
 			})
 		})
 	</script>
-</div>
\ No newline at end of file
+</div>
+<div class="clearfix"></div>
\ No newline at end of file
diff --git a/website/templates/js/blog.js b/website/templates/js/blog.js
index 43b2d70..6f3260c 100644
--- a/website/templates/js/blog.js
+++ b/website/templates/js/blog.js
@@ -59,10 +59,17 @@
 				<p><a href="%(page_name)s">Read with comments...</a></p>\
 				<hr /><br />', b)).appendTo($wrap);
 		});
-		blog.start += data.length;
+		blog.start += (data.length || 0);
 		if(!data.length) {
-			$("#next-page").toggle(false)
-				.parent().append("<div class='alert'>Nothing more to show.</div>");
+			if(blog.start) {
+				$("#next-page").toggle(false)
+					.parent().append("<div class='alert'>Nothing more to show.</div>");	
+			} else {
+				$("#next-page").toggle(false)
+					.parent().append("<div class='alert'>No blogs written yet.</div>");	
+			}
+		} else {
+			$("#next-page").toggle(true);
 		}
 	}
 }
\ No newline at end of file
diff --git a/website/templates/js/blog_subscribe.js b/website/templates/js/blog_subscribe.js
deleted file mode 100644
index cdc0130..0000000
--- a/website/templates/js/blog_subscribe.js
+++ /dev/null
@@ -1,33 +0,0 @@
-wn.provide('erpnext.blog');
-
-(function() {
-	$('body').on('click', '.btn-blog-subscribe', function() {
-		var d = new wn.ui.Dialog({
-			title: "Get Blog Updates via Email",
-			fields: [
-				{label: "Your Name", fieldtype:"Data", reqd:1},
-				{label: "Your Email Address", fieldtype:"Data", reqd:1
-					,description: "You can unsubscribe anytime."},
-				{label: "Subscribe", fieldtype:"Button"}
-			]
-		});
-		$(d.fields_dict.subscribe.input).click(function() {
-			var args = d.get_values();
-			if(!args) return;
-			wn.call({
-				method: 'website.helpers.blog.add_subscriber',
-				args: args,
-				callback: function(r) {
-					if(r.exc) {
-						msgprint('Opps there seems to be some error, Please check back after some time.');
-					} else {
-						msgprint('Thanks for subscribing!');
-					}
-					d.hide();
-				},
-				btn: this
-			})
-		})
-		d.show()
-	})	
-})()
diff --git a/website/templates/js/product_category.js b/website/templates/js/product_category.js
deleted file mode 100644
index 2b34708..0000000
--- a/website/templates/js/product_category.js
+++ /dev/null
@@ -1,18 +0,0 @@
-wn.provide('erpnext.products');
-
-erpnext.products.make_product_categories = function(wrapper) {
-	if (!wrapper) { wrapper = erpnext.products.wrapper; }
-	if (!wrapper) { return; }
-
-	wrapper.category_list = new wn.ui.Listing({
-		parent: $(wrapper).find('.more-categories').get(0),
-		method: 'website.helpers.product.get_product_category_list',
-		hide_refresh: true,
-		render_row: function(parent, data) {
-			parent.innerHTML = repl(
-				'<a href="products.html#!products/%(item_group)s">%(item_group)s</a> (%(items)s)', 
-				data);
-		}
-	});
-	wrapper.category_list.run();
-}
\ No newline at end of file
diff --git a/website/templates/js/products.js b/website/templates/js/products.js
deleted file mode 100644
index 720d192..0000000
--- a/website/templates/js/products.js
+++ /dev/null
@@ -1,106 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-// js inside blog page
-
-{% include "js/product_category.js" %}
-
-wn.pages['{{ name }}'].onload = function(wrapper) {
-	erpnext.products.wrapper = wrapper;
-	
-	// make product categories in the sidebar
-	erpnext.products.make_product_categories(wrapper);
-	
-	// make lists
-	erpnext.products.make_product_list(wrapper);
-	
-	// bind search button or enter key
-	$(wrapper).find('.products-search .btn').click(function() {
-		erpnext.products.product_list.run();
-	});
-	
-	$(wrapper).find('.products-search input').keypress(function(ev) {
-		if(ev.which==13) $(wrapper).find('.products-search .btn').click();
-	});
-}
-
-erpnext.products.make_product_list = function(wrapper) {
-	if (!wrapper) { wrapper = erpnext.products.wrapper; }
-	if (!wrapper) { return; }
-	
-	erpnext.products.product_list = new wn.ui.Listing({
-		parent: $(wrapper).find('#products-list').get(0),
-		run_btn: $(wrapper).find('.products-search .btn').get(0),
-		no_toolbar: true,
-		method: 'website.helpers.product.get_product_list',
-		get_args: function() {
-			return {
-				search: $('input[name="products-search"]').val() || '',
-				product_group: erpnext.products.cur_group || '',
-			};
-		},
-		render_row: function(parent, data) {
-			if (!data.web_short_description) {
-				data.web_short_description = data.description;
-			}
-			parent.innerHTML = repl('\
-				<a href="%(page_name)s.html"><div class="img-area"></div></a>\
-				<div class="product-list-description">\
-					<h4><a href="%(page_name)s.html">%(item_name)s</a></h4>\
-					<p>%(web_short_description)s</p></div>\
-				<div style="clear: both;"></div>', data);
-				
-			if(data.website_image) {
-				$(parent).find('.img-area').append(repl(
-					'<img src="files/%(website_image)s" style="width:100px;">', data))
-			} else {
-				$(parent).find('.img-area').append(wn.dom.placeholder(100, 
-					data.item_name));
-			}
-		}
-	});
-}
-
-wn.pages['{{ name }}'].onshow = function(wrapper) {
-	// show default product category
-	erpnext.products.set_group();
-}
-
-erpnext.products.set_group = function() {
-	var cat = erpnext.products.get_group();
-
-	// get erpnext.products.default_category
-	var wrapper = erpnext.products.wrapper;
-	
-	$(wrapper).find('h1').html(cat.label);
-	erpnext.products.product_list.run();
-}
-
-erpnext.products.get_group = function() {
-	route = wn.get_route();
-	if(route && route.length>1) {
-		// from url
-		var grp = route[1];
-		var label = route[1];
-		erpnext.products.cur_group = grp;
-	} else {
-		// default
-		var grp = 'Products';
-		var label = 'Products';
-		erpnext.products.cur_group = null;
-	}
-	return {grp:grp, label:label};
-}
\ No newline at end of file
diff --git a/website/templates/pages/404.html b/website/templates/pages/404.html
index 0423608..04584d9 100644
--- a/website/templates/pages/404.html
+++ b/website/templates/pages/404.html
@@ -3,7 +3,7 @@
 {% block content %}
 <div class="content">
 	<div class="layout-wrapper layout-main">
-		<h3>Page missing or moved</h3>
+		<h3><i class="icon-exclamation-sign"></i> Page missing or moved</h3>
 		<br>
 		<p>We are very sorry for this, but the page you are looking for is missing
 			(this could be because of a typo in the address) or moved.</p>
diff --git a/website/templates/pages/blog.html b/website/templates/pages/blog.html
index 75681d5..f31af42 100644
--- a/website/templates/pages/blog.html
+++ b/website/templates/pages/blog.html
@@ -17,11 +17,12 @@
 			<div class="layout-main">
 				<h1>Blog</h1>
 				<br>
-				<div id="blog-list" style="min-height: 400px;">
+				<div id="blog-list">
 					<!-- blog list will be generated dynamically -->
 				</div>
 				<div style="text-align: center;">
-					<button id="next-page" class="btn">More...</button>
+					<button id="next-page" class="btn" 
+						style="display:none;">More...</button>
 				</div>
 			</div>
 		</div>
diff --git a/website/templates/pages/error.html b/website/templates/pages/error.html
new file mode 100644
index 0000000..4fe394f
--- /dev/null
+++ b/website/templates/pages/error.html
@@ -0,0 +1,11 @@
+{% extends "html/outer.html" %}
+
+{% block content %}
+<div class="content">
+	<div class="layout-wrapper layout-main">
+		<h3><i class="icon-exclamation-sign"></i> Oops, a server error has occured</h3>
+		<br>
+		<pre>%(error)s</pre>
+	</div>
+</div>
+{% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/product_search.html b/website/templates/pages/product_search.html
index 53a0572..f8a1144 100644
--- a/website/templates/pages/product_search.html
+++ b/website/templates/pages/product_search.html
@@ -56,7 +56,13 @@
 			
 		}
 		if(data.length < 10) {
-			$(".more-btn").replaceWith("<div class='alert'>Nothing more to show</div>");
+			if(!table) {
+				$(".more-btn")
+					.replaceWith("<div class='alert'>No results found for your search.</div>");
+			} else {
+				$(".more-btn")
+					.replaceWith("<div class='alert'>Nothing more to show.</div>");
+			}
 		} else {
 			$(".more-btn").toggle(true)
 		}
@@ -78,8 +84,11 @@
 			<div id="search-list">
 				
 			</div>
-			<div class="more-btn" style="text-align: middle; display: none;">
-				<button class="btn">More...</button>
+			<div style="text-align: center;">
+				<div class="more-btn" 
+					style="display: none; text-align: center;">
+					<button class="btn">More...</button>
+				</div>
 			</div>
 		</div>
 	</div>
diff --git a/website/templates/pages/products.html b/website/templates/pages/products.html
deleted file mode 100644
index aa23ea2..0000000
--- a/website/templates/pages/products.html
+++ /dev/null
@@ -1,37 +0,0 @@
-{% extends "html/page.html" %}
-
-{% block javascript %}
-	{% include "js/products.js" %}
-{% endblock %}
-
-{% block css %}
-	{% include "css/products.css" %}
-{% endblock %}
-
-{% block title %}
-	Products
-{% endblock %}
-
-{% block content %}
-	<div class="layout-wrapper layout-wrapper-background">
-		<div class="web-content" id="content-products">
-			
-			<div class="layout-main-section">
-				<h1 class="products-category"></h1>
-				<div class="products-search" style="margin-bottom: 15px;">
-					<input name="products-search" />
-					<button class="btn" style="margin-left: 7px">Search</button>
-				</div>
-				<div id="products-list">
-					<!-- product list will be generated dynamically -->
-				</div>
-			</div>
-			
-			<div class="layout-side-section">
-				<h3>Categories</h3>
-				<div class="more-categories"></div>
-			</div>
-			<div style="clear: both"></div>
-		</div>
-	</div>
-{% endblock %}
\ No newline at end of file
diff --git a/website/utils.py b/website/utils.py
index 198746f..be8f5e1 100644
--- a/website/utils.py
+++ b/website/utils.py
@@ -48,7 +48,7 @@
 		else:
 			html = get_html('index')
 	except Exception, e:
-		html = get_html('404')
+		html = get_html('error')
 
 	from webnotes.handler import eprint, print_zip
 	eprint("Content-Type: text/html")
@@ -57,32 +57,29 @@
 def get_html(page_name):
 	"""get page html"""
 	page_name = scrub_page_name(page_name)
-	comments = get_comments(page_name)
 	
 	html = ''
 	
 	# load from cache, if auto cache clear is falsy
 	if not (hasattr(conf, 'auto_cache_clear') and conf.auto_cache_clear or 0):
 		html = webnotes.cache().get_value("page:" + page_name)
+		from_cache = True
 
-	if html:
-		comments += "\nload status: cache"
-	else:
+	if not html:
 		html = load_into_cache(page_name)
-		comments += "\nload status: fresh"
+		from_cache = False
 	
-	# insert comments
-	html += """\n<!-- %s -->""" % webnotes.utils.cstr(comments)
+	if not html:
+		html = get_html("404")
+
+	if page_name=="error":
+		html = html % {"error": webnotes.getTraceback()}
+	else:
+		comments = "\n\npage:"+page_name+\
+			"\nload status: " + (from_cache and "cache" or "fresh")
+		html += """\n<!-- %s -->""" % webnotes.utils.cstr(comments)
 
 	return html
-
-def get_comments(page_name):	
-	if page_name == '404':
-		comments = """error: %s""" % webnotes.getTraceback()
-	else:
-		comments = """page: %s""" % page_name
-		
-	return comments
 	
 def scrub_page_name(page_name):
 	if page_name.endswith('.html'):
@@ -114,6 +111,8 @@
 
 def load_into_cache(page_name):
 	args = prepare_args(page_name)
+	if not args:
+		return ""
 	html = build_html(args)
 	webnotes.cache().set_value("page:" + page_name, html)
 	return html
@@ -141,6 +140,9 @@
 	else:
 		args = get_doc_fields(page_name)
 	
+	if not args:
+		return False
+	
 	args.update(get_outer_env())
 	
 	return args	
@@ -156,6 +158,9 @@
 
 def get_doc_fields(page_name):
 	doc_type, doc_name = get_source_doc(page_name)
+	if not doc_type:
+		return False
+	
 	obj = webnotes.get_obj(doc_type, doc_name, with_children=True)
 
 	if hasattr(obj, 'prepare_template_args'):
