diff --git a/blank.html b/blank.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/blank.html
diff --git a/erpnext/patches/jan_mar_2012/subdomain_login_patch.py b/erpnext/patches/jan_mar_2012/subdomain_login_patch.py
index ced5c68..5c58b08 100644
--- a/erpnext/patches/jan_mar_2012/subdomain_login_patch.py
+++ b/erpnext/patches/jan_mar_2012/subdomain_login_patch.py
@@ -15,8 +15,15 @@
 	delete_doc("DocType", "SSO Control")
 	delete_doc("DocType", "WN ERP Client Control")
 	delete_doc("DocType", "DocTrigger")
+
+	# cleanup control panel
 	delete_doc("DocType", "Control Panel")
 	reload_doc("core", "doctype", "control_panel")
+
+	# cleanup page
+	delete_doc("DocType", "Control Panel")
+	reload_doc("core", "doctype", "control_panel")
+	
 	webnotes.conn.sql("""delete from tabSingles
 		where field like 'startup_%' and doctype='Control Panel'""")
 	
diff --git a/erpnext/patches/jan_mar_2012/website.py b/erpnext/patches/jan_mar_2012/website.py
new file mode 100644
index 0000000..ad60cc5
--- /dev/null
+++ b/erpnext/patches/jan_mar_2012/website.py
@@ -0,0 +1,24 @@
+# website patch
+
+import webnotes
+def execute():	
+	cleanup_file_data()
+	return
+	update_patch_log()
+	from webnotes.modules import reload_doc
+	reload_doc('website', 'Module Def', 'Website')
+	reload_doc('website', 'Role', 'Website Manager')
+	reload_doc('website', 'doctype', 'home_settings')
+	reload_doc('website', 'doctype', 'top_bar_settings')
+	reload_doc('website', 'doctype', 'top_bar_item')
+	reload_doc('website', 'page', 'home')
+
+def cleanup_file_data():
+	webnotes.conn.commit()
+	webnotes.conn.sql("""alter table `tabFile Data` drop column blob_content""")
+	webnotes.conn.begin()
+
+def update_patch_log():
+	webnotes.conn.commit()
+	webnotes.conn.sql("""alter table __PatchLog engine=InnoDB""")
+	webnotes.conn.begin()
diff --git a/erpnext/startup/event_handlers.py b/erpnext/startup/event_handlers.py
index 0275262..8b1a7cf 100644
--- a/erpnext/startup/event_handlers.py
+++ b/erpnext/startup/event_handlers.py
@@ -50,4 +50,4 @@
 	"""load letter heads with startup"""
 	import webnotes
 	ret = webnotes.conn.sql("select name, content from `tabLetter Head` where ifnull(disabled,0)=0")
-	dict(ret)
+	return dict(ret)
diff --git a/erpnext/startup/modules.js b/erpnext/startup/modules.js
index 29adfcb..3dd7b3e 100644
--- a/erpnext/startup/modules.js
+++ b/erpnext/startup/modules.js
@@ -215,7 +215,8 @@
 					}
 				}
 				if(me.il[i].doc_type=='Reports') has_reports = 1;
-				if(in_list(['Single DocType', 'Pages', 'Setup Forms'], me.il[i].doc_type)) has_tools = 1;
+				if(in_list(['Single DocType', 'Pages', 'Setup Forms'], me.il[i].doc_type)) 
+					has_tools = 1;
 			}
 			// reports
 			if(has_reports) {
diff --git a/erpnext/startup/startup.js b/erpnext/startup/startup.js
index 9171d8a..f97eb39 100644
--- a/erpnext/startup/startup.js
+++ b/erpnext/startup/startup.js
@@ -11,10 +11,13 @@
 }
 
 erpnext.startup.start = function() {
+	$('#startup_div').html('Starting up...').toggle(true);
+	
 	erpnext.startup.set_globals();
 	
 	if(user == 'Guest'){
 		$dh(page_body.left_sidebar);
+		wn.require('erpnext/website/css/website.css');
 		wn.require('erpnext/website/js/topbar.js');
 	} else {
 		// modules
@@ -32,6 +35,7 @@
 	$('footer').html('<div class="erpnext-footer">\
 		Powered by <a href="https://erpnext.com">ERPNext</a></div>');
 
+	$('#startup_div').toggle(false);
 }
 
 // chart of accounts
diff --git a/erpnext/website/Module Def/Website/Website.txt b/erpnext/website/Module Def/Website/Website.txt
index 0a5e1b8..7e67c3c 100644
--- a/erpnext/website/Module Def/Website/Website.txt
+++ b/erpnext/website/Module Def/Website/Website.txt
@@ -5,7 +5,7 @@
 	{
 		'creation': '2012-01-23 17:05:32',
 		'docstatus': 0,
-		'modified': '2012-01-24 10:29:53',
+		'modified': '2012-01-24 15:57:51',
 		'modified_by': 'Administrator',
 		'owner': 'Administrator'
 	},
@@ -21,9 +21,6 @@
 
 	# These values are common for all Module Def Item
 	{
-		'display_name': 'Top Bar Settings',
-		'doc_name': 'Top Bar Settings',
-		'doc_type': 'Single DocType',
 		'doctype': 'Module Def Item',
 		'name': '__common__',
 		'parent': 'Website',
@@ -49,6 +46,17 @@
 
 	# Module Def Item
 	{
+		'display_name': 'Top Bar Settings',
+		'doc_name': 'Top Bar Settings',
+		'doc_type': 'Single DocType',
+		'doctype': 'Module Def Item'
+	},
+
+	# Module Def Item
+	{
+		'display_name': 'Home Settings',
+		'doc_name': 'Home Settings',
+		'doc_type': 'Forms',
 		'doctype': 'Module Def Item'
 	},
 
diff --git a/erpnext/website/css/website.css b/erpnext/website/css/website.css
new file mode 100644
index 0000000..bdef882
--- /dev/null
+++ b/erpnext/website/css/website.css
@@ -0,0 +1,21 @@
+#body_div {
+	width: 900px;
+	margin: auto;
+}
+
+header .topbar .container {
+	width: 900px;
+	margin: auto;
+}
+
+.web-main-section {
+	width: 65%;
+	float: left;
+	margin-bottom: 20px;
+}
+
+.web-side-section {
+	width: 30%;
+	float: right;
+	margin-bottom: 20px;
+}
\ No newline at end of file
diff --git a/erpnext/website/doctype/home_settings/__init__.py b/erpnext/website/doctype/home_settings/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/website/doctype/home_settings/__init__.py
diff --git a/erpnext/website/doctype/home_settings/home_settings.py b/erpnext/website/doctype/home_settings/home_settings.py
new file mode 100644
index 0000000..3ceea16
--- /dev/null
+++ b/erpnext/website/doctype/home_settings/home_settings.py
@@ -0,0 +1,26 @@
+"""
+generate home html
+"""
+
+class DocType:
+	def __init__(self, d, dl):
+		self.doc, self.doclist = d, dl
+		
+	def on_update(self):
+		"""make home html"""
+		import os, jinja2, markdown2
+		import webnotes
+		
+		# markdown
+		self.doc.main_section_html = markdown2.markdown(self.doc.main_section or '', \
+			extras=["wiki-tables"])
+		self.doc.side_section_html = markdown2.markdown(self.doc.side_section or '', \
+			extras=["wiki-tables"])
+		
+		# write template
+		with open(os.path.join(os.path.dirname(__file__), 'template.html'), 'r') as f:
+			temp = jinja2.Template(f.read())
+		
+		html = temp.render(doc = self.doc.fields)
+		webnotes.conn.set_value('Page', 'Home', 'content', html)
+		
\ No newline at end of file
diff --git a/erpnext/website/doctype/home_settings/home_settings.txt b/erpnext/website/doctype/home_settings/home_settings.txt
new file mode 100644
index 0000000..413f63f
--- /dev/null
+++ b/erpnext/website/doctype/home_settings/home_settings.txt
@@ -0,0 +1,118 @@
+# DocType, Home Settings
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-01-24 15:56:06',
+		'docstatus': 0,
+		'modified': '2012-01-25 13:31:56',
+		'modified_by': 'Administrator',
+		'owner': 'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': '1327476129',
+		'allow_attach': 1,
+		'colour': 'White:FFF',
+		'doctype': 'DocType',
+		'issingle': 1,
+		'max_attachments': 5,
+		'module': 'Website',
+		'name': '__common__',
+		'section_style': 'Simple',
+		'show_in_menu': 0,
+		'version': 4
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': 'DocField',
+		'name': '__common__',
+		'parent': 'Home Settings',
+		'parentfield': 'fields',
+		'parenttype': 'DocType',
+		'permlevel': 0
+	},
+
+	# These values are common for all DocPerm
+	{
+		'create': 1,
+		'doctype': 'DocPerm',
+		'name': '__common__',
+		'parent': 'Home Settings',
+		'parentfield': 'permissions',
+		'parenttype': 'DocType',
+		'permlevel': 0,
+		'read': 1,
+		'write': 1
+	},
+
+	# DocType, Home Settings
+	{
+		'doctype': 'DocType',
+		'name': 'Home Settings'
+	},
+
+	# DocPerm
+	{
+		'doctype': 'DocPerm',
+		'role': 'System Manager'
+	},
+
+	# DocPerm
+	{
+		'doctype': 'DocPerm',
+		'role': 'Website Manager'
+	},
+
+	# DocField
+	{
+		'colour': 'White:FFF',
+		'description': 'HTML that will appear on the top part of the home page. For no headline, leave blank',
+		'doctype': 'DocField',
+		'fieldname': 'headline',
+		'fieldtype': 'Text',
+		'label': 'Headline'
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'banner',
+		'fieldtype': 'Select',
+		'label': 'Banner',
+		'options': 'attach_files:'
+	},
+
+	# DocField
+	{
+		'colour': 'White:FFF',
+		'description': 'For formatting, use \n<a href="http://warpedvisions.org/projects/markdown-cheat-sheet/" \ntarget = "_blank">markdown</a>',
+		'doctype': 'DocField',
+		'fieldname': 'main_section',
+		'fieldtype': 'Code',
+		'label': 'Main Section'
+	},
+
+	# DocField
+	{
+		'colour': 'White:FFF',
+		'description': 'For formatting, use \n<a href="http://warpedvisions.org/projects/markdown-cheat-sheet/" \ntarget = "_blank">markdown</a>',
+		'doctype': 'DocField',
+		'fieldname': 'side_section',
+		'fieldtype': 'Code',
+		'label': 'Side Section'
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'file_list',
+		'fieldtype': 'Text',
+		'hidden': 1,
+		'label': 'File List',
+		'no_copy': 1,
+		'print_hide': 1
+	}
+]
\ No newline at end of file
diff --git a/erpnext/website/doctype/home_settings/template.html b/erpnext/website/doctype/home_settings/template.html
new file mode 100644
index 0000000..424489a
--- /dev/null
+++ b/erpnext/website/doctype/home_settings/template.html
@@ -0,0 +1,17 @@
+<div class="layout_wrapper">
+	<div id="content-home">
+		{% if doc.headline %}
+			<h1>{{ doc.headline }}</h1>
+		{% endif %}
+		{% if doc.banner %}
+			<img src="files/{{ doc.banner }}" style="width: 870px; margin-bottom: 20px" />
+		{% endif %}
+		<div class="web-main-section">
+			{{ doc.main_section_html }}
+		</div>
+		<div class="web-side-section">
+			{{ doc.side_section_html }}
+		</div>
+		<div style="clear: both"></div>
+	</div>
+</div>
\ No newline at end of file
diff --git a/erpnext/website/js/topbar.js b/erpnext/website/js/topbar.js
index 49ec700..85d975b 100644
--- a/erpnext/website/js/topbar.js
+++ b/erpnext/website/js/topbar.js
@@ -36,8 +36,9 @@
 		for(var i=0;i<items.length;i++) {
 			var item = items[i];
 			if(!item.parent_label) {
-				$('header .nav:first').append(repl('<li><a href="#" data-label="%(label)s">\
-					%(label)s</a></li>', item))
+				item.route = item.std_page.toLowerCase();
+				$('header .nav:first').append(repl('<li><a href="#!%(route)s" \
+					data-label="%(label)s">%(label)s</a></li>', item))
 			}
 		}
 	}
diff --git a/erpnext/website/page/__init__.py b/erpnext/website/page/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/website/page/__init__.py
diff --git a/erpnext/website/page/home/__init__.py b/erpnext/website/page/home/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/website/page/home/__init__.py
diff --git a/erpnext/website/page/home/home.txt b/erpnext/website/page/home/home.txt
new file mode 100644
index 0000000..c8bc806
--- /dev/null
+++ b/erpnext/website/page/home/home.txt
@@ -0,0 +1,42 @@
+# Page, home
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2012-01-24 16:08:44',
+		'docstatus': 0,
+		'modified': '2012-01-24 16:08:44',
+		'modified_by': 'Administrator',
+		'owner': 'Administrator'
+	},
+
+	# These values are common for all Page
+	{
+		'doctype': 'Page',
+		'module': 'Website',
+		'name': '__common__',
+		'page_name': 'home',
+		'standard': 'Yes'
+	},
+
+	# These values are common for all Page Role
+	{
+		'doctype': 'Page Role',
+		'name': '__common__',
+		'parent': 'home',
+		'parentfield': 'roles',
+		'parenttype': 'Page',
+		'role': 'Guest'
+	},
+
+	# Page, home
+	{
+		'doctype': 'Page',
+		'name': 'home'
+	},
+
+	# Page Role
+	{
+		'doctype': 'Page Role'
+	}
+]
\ No newline at end of file
diff --git a/index.html b/index.html
index 8662485..dacded5 100644
--- a/index.html
+++ b/index.html
@@ -3,7 +3,7 @@
 	<meta charset="utf-8">
 	<title>ERPNext</title>
 	<meta name="author" content="">
-	<script type="text/javascript">window._version_number="169";
+	<script type="text/javascript">window._version_number="201";
 
 /*
 *	lib/js/wn/class.js
diff --git a/version.num b/version.num
index fb402ef..3bc92d4 100644
--- a/version.num
+++ b/version.num
@@ -1 +1 @@
-169
+201
