diff --git a/README b/README
new file mode 100644
index 0000000..3796729
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+erpnext
diff --git a/accounts/doctype/form_16a/form_16a.py b/accounts/doctype/form_16a/form_16a.py
index ef2c8ac..742c454 100644
--- a/accounts/doctype/form_16a/form_16a.py
+++ b/accounts/doctype/form_16a/form_16a.py
@@ -98,9 +98,3 @@
       tot=flt(tot)+flt(d.total_tax_deposited)
     
     self.doc.total_amount = flt(tot)
-
-  # on update
-  def on_update(self):
-    obj = get_obj('Feed Control', 'Feed Control')
-    
-    obj.make_feed(self.doc)
diff --git a/crm/doctype/customer/customer.py b/crm/doctype/customer/customer.py
index d480a6c..3d2fa59 100644
--- a/crm/doctype/customer/customer.py
+++ b/crm/doctype/customer/customer.py
@@ -25,7 +25,8 @@
     if cust_master_name == 'Customer Name':
    
       # filter out bad characters in name
-      cust = self.doc.customer_name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','').replace('`','')
+      #cust = self.doc.customer_name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','').replace('`','')
+      cust = self.doc.customer_name
 
       supp = sql("select name from `tabSupplier` where name = %s", (cust))
       supp = supp and supp[0][0] or ''
diff --git a/event_updates/Module Def/Event Updates/Event Updates.txt b/event_updates/Module Def/Event Updates/Event Updates.txt
deleted file mode 100644
index 3bc62f0..0000000
--- a/event_updates/Module Def/Event Updates/Event Updates.txt
+++ /dev/null
@@ -1,330 +0,0 @@
-[
-	{
-		'_last_update': None,
-		'creation': '2010-11-30 22:40:49',
-		'disabled': 'No',
-		'docstatus': 0,
-		'doctype': 'Module Def',
-		'doctype_list': None,
-		'file_list': None,
-		'idx': None,
-		'is_hidden': 'No',
-		'last_updated_date': '2010-11-29 12:02:02',
-		'modified': '2010-09-25 15:53:18',
-		'modified_by': 'Administrator',
-		'module_desc': '<p>This module contains</p>\n<ul>\n<li>Feeds</li>\n<li>To Do List</li>\n<li>Events</li>\n</ul>',
-		'module_icon': 'star_full.png',
-		'module_label': 'Home',
-		'module_name': 'Event Updates',
-		'module_page': 'Event Updates',
-		'module_seq': 0,
-		'name': 'Event Updates',
-		'owner': 'Administrator',
-		'parent': None,
-		'parentfield': None,
-		'parenttype': None,
-		'trash_reason': None,
-		'widget_code': None
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:40:49',
-		'description': None,
-		'display_name': 'Comment Widget Record',
-		'doc_name': 'Comment Widget Record',
-		'doc_type': 'Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': None,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDI00108',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:40:49',
-		'description': None,
-		'display_name': 'Feed',
-		'doc_name': 'Feed',
-		'doc_type': 'Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': None,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDI00109',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-11-30 22:40:49',
-		'description': None,
-		'display_name': 'Home',
-		'doc_name': 'Home',
-		'doc_type': 'Pages',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': None,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDI00111',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 1,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00014',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Administrator'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 2,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00015',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Accounts User'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 3,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00016',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Accounts Manager'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 4,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00017',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'HR User'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 5,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00018',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'HR Manager'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 6,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00019',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Material User'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 7,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00020',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Material Master Manager'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 8,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00021',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Material Manager'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 9,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00022',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Purchase User'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 10,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00023',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Purchase Master Manager'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 11,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00024',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Purchase Manager'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 12,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00025',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Production User'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 13,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00026',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Production Manager'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 14,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00027',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'System Manager'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 15,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00028',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Sales User'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 16,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00029',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Sales Master Manager'
-	},
-	{
-		'creation': '2010-11-30 22:40:49',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 17,
-		'modified': '2010-11-30 22:40:49',
-		'modified_by': 'Administrator',
-		'name': 'MDR00030',
-		'owner': 'Administrator',
-		'parent': 'Event Updates',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'Sales Manager'
-	}
-]
\ No newline at end of file
diff --git a/event_updates/__init__.py b/event_updates/__init__.py
deleted file mode 100644
index d1f79c7..0000000
--- a/event_updates/__init__.py
+++ /dev/null
@@ -1,52 +0,0 @@
-import webnotes
-
-feed_dict = {
-	# Project
-	'Ticket':			['[%(status)s] %(subject)s', '#000080'],
-
-	# Sales
-	'Lead':				['%(lead_name)s', '#000080'],
-	'Quotation':		['[%(status)s] To %(customer_name)s worth %(currency)s %(grand_total_export)s', '#4169E1'],
-	'Sales Order':		['[%(status)s] To %(customer_name)s worth %(currency)s %(grand_total_export)s', '#4169E1'],
-
-	# Purchase
-	'Supplier':			['%(supplier_name)s, %(supplier_type)s', '#6495ED'],
-	'Purchase Order':	['[%(status)s] %(name)s To %(supplier_name)s for %(currency)s  %(grand_total_import)s', '#4169E1'],
-
-	# Stock
-	'Delivery Note':	['[%(status)s] To %(customer_name)s', '#4169E1'],
-
-	# Accounts
-	'Journal Voucher':	['[%(voucher_type)s] %(name)s', '#4169E1'],
-	'Payable Voucher':	['To %(supplier_name)s for %(currency)s %(grand_total_import)s', '#4169E1'],
-	'Receivable Voucher':['To %(customer_name)s for %(currency)s %(grand_total_export)s', '#4169E1'],
-
-	# HR
-	'Expense Voucher':	['[%(approval_status)s] %(name)s by %(employee_name)s', '#4169E1'],
-	'Salary Slip':		['%(employee_name)s for %(month)s %(fiscal_year)s', '#4169E1'],
-	'Leave Transaction':['%(leave_type)s for %(employee)s', '#4169E1'],
-
-	# Support
-	'Customer Issue':	['[%(status)s] %(description)s by %(customer_name)s', '#000080'],
-	'Maintenance Visit':['To %(customer_name)s', '#4169E1'],
-	'Support Ticket':	['[%(status)s] %(subject)s', '#000080']
-}
-
-def make_feed(doc, subject, color):
-	"makes a new Feed record"
-	from webnotes.model.doc import Document
-	webnotes.conn.sql("delete from tabFeed where doc_type=%s and doc_name=%s", (doc.doctype, doc.name))
-	f = Document('Feed')
-	f.doc_type = doc.doctype
-	f.doc_name = doc.name
-	f.subject = subject
-	f.color = color
-	f.save(1)
-	
-def update_feed(doc):	
-	"adds a new feed"
-	subject, color = feed_dict.get(doc.doctype, [None, None])
-	if subject:
-		subject = subject % doc.fields
-		make_feed(doc, subject, color)
-	
diff --git a/event_updates/doctype/__init__.py b/event_updates/doctype/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/event_updates/doctype/__init__.py
+++ /dev/null
diff --git a/event_updates/doctype/home_control/home_control.txt b/event_updates/doctype/home_control/home_control.txt
deleted file mode 100644
index d23fb3d..0000000
--- a/event_updates/doctype/home_control/home_control.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'section_style': 'Simple', 'is_transaction_doc': None, 'creation': '2009-07-09 16:32:49', 'search_fields': None, 'module': 'Event Updates', 'doctype': 'DocType', 'change_log': None, 'print_outline': '', 'owner': 'Administrator', 'in_dialog': None, 'in_create': None, 'read_only': None, 'allow_email': None, 'dt_template': None, 'hide_heading': None, 'issingle': 1, 'allow_rename': None, 'smallicon': None, 'allow_attach': None, 'show_in_menu': 0, 'max_attachments': None, 'version': 4, 'menu_index': None, 'docstatus': 0, 'allow_copy': None, 'istable': None, 'description': None, 'parent': None, 'server_code': None, 'allow_trash': None, 'allow_print': None, 'autoname': None, 'client_script_core': '', 'client_string': None, 'use_template': None, 'modified_by': 'Administrator', 'document_type': None, 'name': 'Home Control', 'idx': None, 'hide_toolbar': None, 'colour': 'White:FFF', 'client_script': None, 'modified': '2010-11-21 16:46:44', 'server_code_error': ' ', 'name_case': '', 'parenttype': None, 'read_only_onload': None, 'server_code_core': None, 'server_code_compiled': None, 'parent_node': None, 'parentfield': None}]
\ No newline at end of file
diff --git a/event_updates/doctype/widget_control/widget_control.txt b/event_updates/doctype/widget_control/widget_control.txt
deleted file mode 100644
index 184eb24..0000000
--- a/event_updates/doctype/widget_control/widget_control.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'section_style': 'Simple', 'is_transaction_doc': None, 'creation': '2009-11-12 13:06:24', 'search_fields': None, 'module': 'Event Updates', 'doctype': 'DocType', 'change_log': None, 'print_outline': '', 'owner': 'Administrator', 'in_dialog': None, 'in_create': None, 'read_only': None, 'allow_email': None, 'dt_template': None, 'hide_heading': None, 'issingle': 1, 'allow_rename': None, 'smallicon': None, 'allow_attach': None, 'show_in_menu': 0, 'max_attachments': None, 'version': 27, 'menu_index': None, 'docstatus': 0, 'allow_copy': None, 'istable': 0, 'description': None, 'parent': None, 'server_code': None, 'allow_trash': None, 'allow_print': None, 'autoname': None, 'client_script_core': None, 'client_string': None, 'use_template': None, 'modified_by': 'Administrator', 'document_type': None, 'name': 'Widget Control', 'idx': None, 'hide_toolbar': None, 'colour': 'White:FFF', 'client_script': None, 'modified': '2010-09-20 14:06:57', 'server_code_error': ' ', 'name_case': '', 'parenttype': None, 'read_only_onload': None, 'server_code_core': None, 'server_code_compiled': None, 'parent_node': None, 'parentfield': None}]
\ No newline at end of file
diff --git a/event_updates/page/__init__.py b/event_updates/page/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/event_updates/page/__init__.py
+++ /dev/null
diff --git a/event_updates/page/event_updates/event_updates.comp.js b/event_updates/page/event_updates/event_updates.comp.js
deleted file mode 100644
index 3af8868..0000000
--- a/event_updates/page/event_updates/event_updates.comp.js
+++ /dev/null
@@ -1,111 +0,0 @@
-
-pscript['onload_Event Updates']=function(){if(user=='Guest'){loadpage('Login Page');return;}
-pscript.home_make_body();pscript.home_make_status();pscript.home_pre_process();pscript.home_make_widgets();}
-pscript.home_make_body=function(){var wrapper=page_body.pages['Event Updates'];wrapper.main_tab=make_table(wrapper,1,2,'100%',['70%','30%']);$y(wrapper.main_tab,{tableLayout:'fixed'});wrapper.body=$a($td(wrapper.main_tab,0,0),'div','layout_wrapper');wrapper.head=$a(wrapper.body,'div');wrapper.banner_area=$a(wrapper.head,'div');wrapper.toolbar_area=$a(wrapper.head,'div');wrapper.system_message_area=$a(wrapper.body,'div','',{marginBottom:'16px',padding:'8px',backgroundColor:'#FFD',border:'1px dashed #AA6',display:'none'})}
-pscript.home_pre_process=function(wrapper){var wrapper=page_body.pages['Event Updates'];var cp=locals['Control Panel']['Control Panel'];if(cp.client_name){var banner=$a(wrapper.banner_area,'div','',{paddingBottom:'4px'})
-banner.innerHTML=cp.client_name;}
-if(in_list(user_roles,'System Manager')){pscript.complete_registration();}}
-pscript.home_make_widgets=function(){var wrapper=page_body.pages['Event Updates'];var cell=$td(wrapper.main_tab,0,1);sidebar=new wn.widgets.PageSidebar(cell,{sections:[{title:'Calendar',display:function(){return!has_common(user_roles,['Guest','Customer','Vendor'])},render:function(wrapper){new HomeCalendar(new HomeWidget(wrapper,'Calendar','Event'),wrapper);}},{title:'To Do',display:function(){return!has_common(user_roles,['Guest','Customer','Vendor'])},render:function(wrapper){new HomeToDo(new HomeWidget(wrapper,'To Do','Item'));}},{title:'Online Users',display:function(){return!has_common(user_roles,['Guest','Customer','Vendor'])},render:function(wrapper){pscript.online_users_obj=new OnlineUsers(wrapper);}}]})
-sidebar.refresh()
-new FeedList(wrapper.body);}
-OnlineUsers=function(wrapper){var me=this;this.wrapper=wrapper;this.my_company_link=function(){$a($a(wrapper,'div','',{marginBottom:'7px'}),'span','link_type',{color:'#777','color:hover':'#FFF',fontSize:'11px'},'See all users',function(){loadpage('My Company');});}
-this.render=function(online_users){me.my_company_link();if(online_users.length){var max=online_users.length;max=(max>10?10:max)
-for(var i=0;i<max;i++){new OneOnlineUser(me.wrapper,online_users[i]);}}else{$a(wrapper,'div','',{'color':'#888'},'No user online!')}}}
-OneOnlineUser=function(wrapper,det){var name=cstr(det[1])+' '+cstr(det[2]);if(det[1]==user)name='You'
-var div=$a(wrapper,'div','',{padding:'3px 0px'});$a(div,'div','',{width:'7px',height:'7px',cssFloat:'left',margin:'5px',backgroundColor:'green'});$a(div,'div','',{marginLeft:'3px'},name);}
-HomeWidget=function(parent,heading,item){var me=this;this.item=item;this.wrapper=$a(parent,'div');this.body=$a(this.wrapper,'div','',{paddingBottom:'16px'});this.footer=$a(this.wrapper,'div');this.add_btn=$btn(this.footer,'+ Add '+item,function(){me.add()});this.refresh_btn=$ln(this.footer,'Refresh',function(){me.refresh();},{fontSize:'11px',marginLeft:'7px',color:'#888'});}
-HomeWidget.prototype.refresh=function(){var me=this;$di(this.working_img);var callback=function(r,rt){$dh(me.working_img);me.body.innerHTML='';if(me.decorator.setup_body)me.decorator.setup_body();for(var i=0;i<r.message.length;i++){new HomeWidgetItem(me,r.message[i]);}
-if(!r.message.length){$a(me.body,'div','',{color:'#777'},me.no_items_message);}}
-$c_obj('Home Control',this.get_list_method,'',callback);}
-HomeWidget.prototype.make_dialog=function(){var me=this;if(!this.dialog){this.dialog=new wn.widgets.Dialog();this.dialog.make({width:480,title:'New '+this.item,fields:this.dialog_fields});this.dialog.fields_dict.save.input.onclick=function(){this.set_working();me.decorator.save(this);}}}
-HomeWidget.prototype.add=function(){this.make_dialog();this.decorator.clear_dialog();this.dialog.show();}
-HomeWidgetItem=function(widget,det){var me=this;this.det=det;this.widget=widget;this.widget=widget;this.det=det;if(widget.decorator.get_item_parent)parent=widget.decorator.get_item_parent(det);else parent=widget.body;if(!parent)return;this.wrapper=$a(parent,'div');this.tab=make_table(this.wrapper,1,3,'100%',['90%','5%','5%'],{paddingRight:'4px'});this.edit_btn=$a($td(this.tab,0,1),'div','wn-icon '+'ic-doc_edit',{cursor:'pointer'});this.edit_btn.onclick=function(){me.edit();}
-this.del_btn=$a($td(this.tab,0,2),'div','wn-icon '+'ic-trash',{cursor:'pointer'});this.del_btn.onclick=function(){me.delete_item();}
-widget.decorator.render_item(this,det);}
-HomeWidgetItem.prototype.edit=function(){this.widget.make_dialog();this.widget.decorator.set_dialog_values(this.det);this.widget.dialog.show();}
-HomeWidgetItem.prototype.delete_item=function(){var me=this;this.wrapper.innerHTML='<span style="color:#888">Deleting...</span>';var callback=function(r,rt){$(me.wrapper).slideUp();}
-$c_obj('Home Control',this.widget.delete_method,this.widget.get_item_id(this.det),callback);}
-HomeCalendar=function(widget,wrapper){$ln(widget.footer,'Full Calendar',function(){loadpage('_calendar');},{marginLeft:'7px',fontSize:'11px',color:'#888'})
-this.widget=widget;this.widget.get_list_method='get_events_list'
-this.widget.delete_method='delete_event';this.widget.no_items_message='You have no events in the next 7 days';this.widget.get_item_id=function(det){return det.name;}
-this.widget.decorator=this;var hl=[];for(var i=0;i<24;i++){hl.push(((i+8)%24)+':00');}
-this.widget.dialog_fields=[{fieldtype:'Date',fieldname:'event_date',label:'Event Date',reqd:1},{fieldtype:'Time',fieldname:'event_hour',label:'Event Time',reqd:1},{fieldtype:'Text',fieldname:'description',label:'Description',reqd:1},{fieldtype:'Button',fieldname:'save',label:'Save'}];this.widget.refresh();}
-HomeCalendar.prototype.setup_body=function(){var w=this.widget;w.date_blocks={};for(var i=0;i<7;i++){var dt=dateutil.obj_to_str(dateutil.add_days(new Date(),i));var div=$a(w.body,'div','',{padding:'4px 0px',borderBottom:'1px solid #AAA',display:'none'});div.head=$a(div,'div','',{fontWeight:'bold',paddingBottom:'4px'});div.head.innerHTML=(i==0?'Today':(i==1?'Tomorrow':dateutil.str_to_user(dt)))
-w.date_blocks[dt]=div;}}
-HomeCalendar.prototype.get_item_parent=function(det){var d=this.widget.date_blocks[det.event_date];$ds(d);return d;}
-HomeCalendar.prototype.render_item=function(item,det){var tab=make_table($td(item.tab,0,0),1,2,'100%',['48px',null],{padding:'2px',lineHeight:'1.5em'});$y(tab,{tableLayout:'fixed'});$td(tab,0,0).innerHTML='<span style="color:#888">'+det.event_hour+':</span> ';$a($td(tab,0,1),'span','social',{},replace_newlines(det.description));if(det.ref_type&&det.ref_name&&det.ref_name!='None'){var span=$a($a($td(tab,0,1),'div'),'span','link_type');span.innerHTML=det.ref_name;span.dt=det.ref_type;span.onclick=function(){loaddoc(this.dt,this.innerHTML);}}}
-HomeCalendar.prototype.clear_dialog=function(){this.set_dialog_values({event_date:get_today(),event_hour:'8:00',description:''});}
-HomeCalendar.prototype.set_dialog_values=function(det){var d=this.widget.dialog;d.set_values(det);d.det=det;}
-HomeCalendar.prototype.save=function(btn){var d=this.widget.dialog;var me=this;var det=d.get_values();if(!det){btn.done_working();return;}
-det.name=d.det.name;det.owner=user;if(!det.event_type)
-det.event_type='Private';var callback=function(r,rt){btn.done_working();me.widget.dialog.hide();me.widget.refresh();}
-$c_obj('Home Control','edit_event',JSON.stringify(det),callback);}
-HomeToDo=function(widget){this.widget=widget;this.widget.get_list_method='get_todo_list';this.widget.delete_method='remove_todo_item';this.widget.no_items_message='Nothing to do?';this.widget.get_item_id=function(det){return det[0];}
-this.widget.decorator=this;this.widget.dialog_fields=[{fieldtype:'Date',fieldname:'date',label:'Event Date',reqd:1},{fieldtype:'Text',fieldname:'description',label:'Description',reqd:1},{fieldtype:'Check',fieldname:'checked',label:'Completed'},{fieldtype:'Select',fieldname:'priority',label:'Priority',reqd:1,'options':['Medium','High','Low'].join('\n')},{fieldtype:'Button',fieldname:'save',label:'Save'}];this.widget.refresh();}
-HomeToDo.prototype.render_item=function(item,det){var tab=make_table($td(item.tab,0,0),1,2,'100%',['48px',null],{padding:'2px'});$y(tab,{tableLayout:'fixed'});var span=$a($td(tab,0,0),'span','',{padding:'2px',color:'#FFF',fontSize:'10px',backgroundColor:(det[3]=='Low'?'#888':(det[3]=='High'?'#EDA857':'#687FD3'))});$(span).css('-moz-border-radius','3px').css('-webkit-border-radius','3px');span.innerHTML=det[3];var span=$a($td(tab,0,1),'span','social',{lineHeight:'1.5em'},replace_newlines(det[1]));if(det[4])$y(span,{textDecoration:'line-through'});if(!det[4]&&dateutil.str_to_obj(det[2])<new Date()){$y(span,{color:'RED'});$a($td(tab,0,1),'div','',{fontSize:'10px',color:'#666'},dateutil.str_to_user(det[2])+' (Overdue)');}else{$a($td(tab,0,1),'div','',{fontSize:'10px',color:'#666'},dateutil.str_to_user(det[2]));}}
-HomeToDo.prototype.clear_dialog=function(){this.set_dialog_values(['','',get_today(),'Medium',0]);}
-HomeToDo.prototype.set_dialog_values=function(det){var d=this.widget.dialog;d.set_values({date:det[2],priority:det[3],description:det[1],checked:det[4]});d.det=det;}
-HomeToDo.prototype.save=function(btn){var d=this.widget.dialog;var me=this;var det=d.get_values()
-if(!det){btn.done_working();return;}
-det.name=d.det?d.det[0]:'';var callback=function(r,rt){btn.done_working();me.widget.dialog.hide();me.widget.refresh();}
-$c_obj('Home Control','add_todo_item',JSON.stringify(det),callback);}
-FeedList=function(parent){this.auto_feed_off=cint(sys_defaults.auto_feed_off);this.wrapper=$a(parent,'div');this.make_head();this.make_list();this.list.run();}
-FeedList.prototype.make_head=function(){var me=this;this.head=$a(this.wrapper,'div','',{marginBottom:'8px'});$a(this.head,'h1','',{display:'inline'},'Home');$a(this.head,'span','link_type',{marginLeft:'7px'},'[?]',function(){msgprint('<b>What appears here?</b> This is where you get updates of everything you are allowed to access and generates an update')})
-$a(this.head,'span','link_type',{cursor:'pointer',marginLeft:'7px',fontSize:'11px'},'refresh',function(){me.run();});}
-FeedList.prototype.run=function(){this.prev_date=null;this.list.run();}
-FeedList.prototype.make_list=function(){this.list_area=$a(this.wrapper,'div')
-this.no_result=$a(this.wrapper,'div','help_box',{display:'none'},'Nothing to show yet. Your feed will be updated as you start your activities')
-var l=new Listing('Feed List',1);var me=this;l.colwidths=['100%'];l.page_len=20;l.opts.cell_style={padding:'0px'};l.opts.hide_rec_label=1;l.get_query=function(){this.query=repl('select \
-   distinct t1.name, t1.doc_type, t1.doc_name, t1.subject, t1.modified_by, \
-   concat(ifnull(t2.first_name,""), " ", ifnull(t2.last_name,"")), t1.modified, t1.color \
-   from tabFeed t1, tabProfile t2, tabUserRole t3, tabDocPerm t4 \
-   where t1.doc_type = t4.parent \
-   and t2.name = t1.owner \
-   and t3.parent = "%(user)s" \
-   and t4.role = t3.role \
-   and ifnull(t4.`read`,0) = 1 \
-   order by t1.modified desc',{user:user})
-this.query_max=''}
-l.show_cell=function(cell,ri,ci,d){me.render_feed(cell,ri,ci,d);}
-l.onrun=function(){$(me.wrapper).fadeIn();if(me.after_run)me.after_run();}
-l.make(this.list_area);$dh(l.btn_area);this.list=l;}
-FeedList.prototype.after_run=function(){this.list.has_data()?$dh(this.no_result):$ds(this.no_result)}
-FeedList.prototype.render_feed=function(cell,ri,ci,d){new FeedItem(cell,d[ri],this);}
-FeedItem=function(cell,det,feedlist){var me=this;this.det=det;this.feedlist=feedlist;this.wrapper=$a(cell,'div','',{paddingBottom:'4px'});this.head=$a(this.wrapper,'div');this.tab=make_table(this.wrapper,1,2,'100%',[(100/7)+'%',(600/7)+'%']);$y(this.tab,{tableLayout:'fixed'})
-$y($td(this.tab,0,0),{textAlign:'right',paddingRight:'4px'});this.text_area=$a($td(this.tab,0,1),'div');this.render_references(this.text_area,det);this.render_tag(det);this.add_day_sep(det);}
-FeedItem.prototype.add_day_sep=function(det){var me=this;var prev_date=det[6].split(' ')[0];var make_div=function(){var div=$a(me.head,'div','',{borderBottom:'1px solid #888',margin:'8px 0px',padding:'2px 0px',color:'#888',fontSize:'11px'});div.innerHTML=comment_when(det[6],1);if(prev_date==get_today()){div.innerHTML='';span=$a(div,'span','',{padding:'2px',color:'#000',fontWeight:'bold'});span.innerHTML='Today';}}
-if(this.feedlist.prev_date&&this.feedlist.prev_date!=prev_date){make_div();}
-if(!this.feedlist.prev_date){make_div();}
-this.feedlist.prev_date=prev_date;}
-FeedItem.prototype.render_tag=function(det){tag=$a($td(this.tab,0,0),'div','',{color:'#FFF',padding:'3px',textAlign:'right',fontSize:'11px',whiteSpace:'nowrap',overflow:'hidden',cursor:'pointer'});$br(tag,'3px');$y(tag,{backgroundColor:(det[7]?det[7]:'#273')});tag.innerHTML=get_doctype_label(det[1]);tag.dt=det[1]
-tag.onclick=function(){loaddocbrowser(this.dt);}}
-FeedItem.prototype.render_references=function(div,det){div.tab=make_table(div,1,2,'100%',[null,'15%'])
-var dt=det[1];var dn=det[2]
-var allow=in_list(profile.can_read,dt);var span=$a($td(div.tab,0,0),'span',(allow?'link_type':''),null,det[2]);span.dt=dt;span.dn=dn;if(allow)span.onclick=function(){loaddoc(this.dt,this.dn);}
-if(det[3]){$a($td(div.tab,0,0),'span','',{marginLeft:'7px',color:'#444'},det[3]);}
-$y($td(div.tab,0,1),{fontSize:'11px'}).innerHTML=(strip(det[5])?det[5]:det[4]);}
-HomeStatusBar=function(){var me=this;var parent=page_body.pages['Event Updates'];this.wrapper=$a($td(parent.main_tab,0,1),'div','home-status',{},'Loading...');$br(this.wrapper,'3px');this.render=function(r){this.wrapper.innerHTML='';this.span=$a(this.wrapper,'span','home-status-link')
-this.span.onclick=function(){loadpage('My Company')}
-if(r.unread_messages){this.span.innerHTML='<span class="home-status-unread">'+r.unread_messages+'</span> unread message'+(cint(r.unread_messages)>1?'s':'');}else{this.span.innerHTML='No unread messages.';}}}
-pscript.home_make_status=function(){var home_status_bar=new HomeStatusBar()
-var wrapper=page_body.pages['Event Updates'];$c_page('event_updates','event_updates','get_status_details',user,function(r,rt){home_status_bar.render(r.message);if(r.message.system_message)
-pscript.show_system_message(wrapper,r.message.system_message);if(pscript.is_erpnext_saas&&cint(r.message.is_trial)&&in_list(user_roles,'System Manager')){pscript.trial_box=$a(div,'div','help_box',{margin:'2px 8px 2px 0px'},"Your Free Trial expires in "+
-r.message.days_to_expiry+" days. When you are satisfied, please <span class='link_type' onclick='pscript.convert_to_paid()'>please click here</span> to convert to a paid account."+"<br>To get help, view <a href='http://erpnext.blogspot.com/2011/02/getting-started-with-your-erpnext.html' target='_blank'>Getting Started with Your System</a> (opens in a new page)");}
-pscript.online_users_obj.render(r.message.online_users);pscript.online_users=r.message.online_users;});}
-pscript.convert_to_paid=function(){var callback=function(r,rt){if(r.exc){msgprint(r.exc);return;}
-$(pscript.trial_box).slideUp();}
-$c_page('event_updates','event_updates','convert_to_paid','',callback)}
-pscript.show_system_message=function(wrapper,msg){$ds(wrapper.system_message_area);var txt=$a(wrapper.system_message_area,'div','',{lineHeight:'1.6em'});txt.innerHTML=msg;var span=$ln($a(wrapper.system_message_area,'div'),'Dismiss',function(me){me.set_working();$c_obj('Home Control','dismiss_message','',function(r,rt){me.done_working();$(wrapper.system_message_area).slideUp();});},{fontSize:'11px'})}
-pscript.complete_registration=function()
-{var reg_callback=function(r,rt){if(r.message=='No'){var d=new Dialog(400,200,"Please Complete Your Registration");if(user!='Administrator'){d.no_cancel();$dh(page_body.wntoolbar.wrapper);}
-$($a(d.body,'div','',{margin:'8px',color:'#888'})).html('<b>Company Name : </b>'+locals['Control Panel']['Control Panel'].company_name);d.make_body([['Data','Company Abbreviation'],['Select','Fiscal Year Start Date'],['Select','Default Currency'],['Button','Save'],]);pscript.make_dialog_field(d);d.widgets['Save'].onclick=function()
-{d.widgets['Save'].set_working();flag=pscript.validate_fields(d);if(flag)
-{var args=[locals['Control Panel']['Control Panel'].company_name,d.widgets['Company Abbreviation'].value,d.widgets['Fiscal Year Start Date'].value,d.widgets['Default Currency'].value];$c_obj('Setup Control','setup_account',JSON.stringify(args),function(r,rt){sys_defaults=r.message;d.hide();$ds(page_body.wntoolbar.wrapper);});}}
-d.show();}}
-$c_obj('Home Control','registration_complete','',reg_callback);}
-pscript.make_dialog_field=function(d)
-{fisc_format=d.widgets['Fiscal Year Start Date'];add_sel_options(fisc_format,['','1st Jan','1st Apr','1st Jul','1st Oct']);currency_list=['','AED','AFN','ALL','AMD','ANG','AOA','ARS','AUD','AZN','BAM','BBD','BDT','BGN','BHD','BIF','BMD','BND','BOB','BRL','BSD','BTN','BYR','BZD','CAD','CDF','CFA','CFP','CHF','CLP','CNY','COP','CRC','CUC','CZK','DJF','DKK','DOP','DZD','EEK','EGP','ERN','ETB','EUR','EURO','FJD','FKP','FMG','GBP','GEL','GHS','GIP','GMD','GNF','GQE','GTQ','GYD','HKD','HNL','HRK','HTG','HUF','IDR','ILS','INR','IQD','IRR','ISK','JMD','JOD','JPY','KES','KGS','KHR','KMF','KPW','KRW','KWD','KYD','KZT','LAK','LBP','LKR','LRD','LSL','LTL','LVL','LYD','MAD','MDL','MGA','MKD','MMK','MNT','MOP','MRO','MUR','MVR','MWK','MXN','MYR','MZM','NAD','NGN','NIO','NOK','NPR','NRs','NZD','OMR','PAB','PEN','PGK','PHP','PKR','PLN','PYG','QAR','RMB','RON','RSD','RUB','RWF','SAR','SCR','SDG','SDR','SEK','SGD','SHP','SOS','SRD','STD','SYP','SZL','THB','TJS','TMT','TND','TRY','TTD','TWD','TZS','UAE','UAH','UGX','USD','USh','UYU','UZS','VEB','VND','VUV','WST','XAF','XCD','XDR','XOF','XPF','YEN','YER','YTL','ZAR','ZMK','ZWR'];currency=d.widgets['Default Currency'];add_sel_options(currency,currency_list);}
-pscript.validate_fields=function(d)
-{var lst=['Company Abbreviation','Fiscal Year Start Date','Default Currency'];var msg='Please enter the following fields';var flag=1;for(var i=0;i<lst.length;i++)
-{if(!d.widgets[lst[i]].value){flag=0;msg=msg+NEWLINE+lst[i];}}
-if(!flag)alert(msg);return flag;}
\ No newline at end of file
diff --git a/event_updates/page/event_updates/event_updates.txt b/event_updates/page/event_updates/event_updates.txt
deleted file mode 100644
index 6cb8513..0000000
--- a/event_updates/page/event_updates/event_updates.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'creation': '2010-07-13 12:51:53', 'module': 'Event Updates', 'doctype': 'Page', 'owner': 'Administrator', 'style': None, 'modified_by': 'Administrator', 'script': None, 'show_in_menu': None, 'content': None, 'page_name': 'Event Updates', 'menu_index': None, 'docstatus': 0, 'parent': None, 'standard': 'Yes', 'icon': None, 'name': 'Event Updates', 'idx': None, 'static_content': None, 'modified': '2010-11-27 14:59:10', 'parenttype': None, 'parent_node': None, 'parentfield': None}]
\ No newline at end of file
diff --git a/event_updates/page/profile_settings/profile_settings.comp.js b/event_updates/page/profile_settings/profile_settings.comp.js
deleted file mode 100644
index e2c189d..0000000
--- a/event_updates/page/profile_settings/profile_settings.comp.js
+++ /dev/null
@@ -1,19 +0,0 @@
-
-pscript['onload_profile-settings']=function(){var wrapper=page_body.pages['profile-settings'];pscript.myprofile=new MyProfile(wrapper)}
-MyProfile=function(wrapper){this.wrapper=wrapper;var me=this;this.make=function(){this.head=new PageHeader(this.wrapper,'My Profile Settings');this.head.add_button('Change Password',this.change_password)
-this.tab=make_table($a(this.wrapper,'div','',{marginTop:'19px'}),1,2,'90%',['50%','50%'],{padding:'11px'})
-this.img=$a($td(this.tab,0,0),'img');set_user_img(this.img,user);$btn($a($td(this.tab,0,0),'div','',{marginTop:'11px'}),'Change Image',this.change_image)
-this.make_form();this.load_details();}
-this.load_details=function(){$c_page('event_updates','profile_settings','get_user_details','',function(r,rt){me.form.set_values(r.message);})}
-this.make_form=function(){var div=$a($td(this.tab,0,1),'div');this.form=new wn.widgets.FieldGroup()
-this.form.make_fields(div,[{fieldname:'first_name',fieldtype:'Data',label:'First Name',reqd:1},{fieldname:'last_name',fieldtype:'Data',label:'Last Name',reqd:1},{fieldname:'bio',fieldtype:'Text',label:'Bio'},{fieldname:'update',fieldtype:'Button',label:'Update'}]);this.form.fields_dict.update.input.onclick=function(){var v=me.form.get_values();if(v){this.set_working();var btn=this;$c_page('event_updates','profile_settings','set_user_details',v,function(r,rt){btn.done_working();})}}}
-this.change_password=function(){var d=new wn.widgets.Dialog({title:'Change Password',width:400,fields:[{fieldname:'old_password',fieldtype:'Password',label:'Old Password',reqd:1},{fieldname:'new_password',fieldtype:'Password',label:'New Password',reqd:1},{fieldname:'new_password1',fieldtype:'Password',label:'Re-type New Password',reqd:1},{fieldname:'change',fieldtype:'Button',label:'Change'}]})
-d.make();d.fields_dict.change.input.onclick=function(){var v=d.get_values();if(v){if(v.new_password!=v.new_password1){msgprint('Passwords must match');return;}
-this.set_working();$c_page('event_updates','profile_settings','change_password',v,function(r,rt){if(!r.message&&r.exc){msgprint(r.exc);return;}
-d.hide();})}}
-d.show();}
-this.change_image=function(){if(!me.change_dialog){var d=new Dialog(400,200,'Set Your Profile Image');d.make_body([['HTML','wrapper']]);var w=d.widgets['wrapper'];me.uploader=new Uploader(w,{thumbnail:'80px',server_obj:'Company Control',method:'update_profile_image'},pscript.user_image_upload)
-me.change_dialog=d;}
-me.change_dialog.show();}
-this.make();}
-pscript.user_image_upload=function(fid){msgprint('File Uploaded');if(fid){pscript.myprofile.change_dialog.hide();set_user_img(pscript.myprofile.img,user,null,fid);}}
\ No newline at end of file
diff --git a/event_updates/page/profile_settings/profile_settings.txt b/event_updates/page/profile_settings/profile_settings.txt
deleted file mode 100644
index 881cb12..0000000
--- a/event_updates/page/profile_settings/profile_settings.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-[
-	{
-		'content': None,
-		'creation': '2011-05-09 11:04:27',
-		'docstatus': 0,
-		'doctype': 'Page',
-		'icon': None,
-		'idx': None,
-		'menu_index': None,
-		'modified': '2011-04-13 12:08:59',
-		'modified_by': 'Administrator',
-		'module': 'Event Updates',
-		'name': 'Profile Settings',
-		'owner': 'Administrator',
-		'page_name': 'Profile Settings',
-		'parent': None,
-		'parent_node': None,
-		'parentfield': None,
-		'parenttype': None,
-		'script': None,
-		'show_in_menu': None,
-		'standard': 'Yes',
-		'static_content': None,
-		'style': None
-	}
-]
\ No newline at end of file
diff --git a/home/Module Def/Home/Home.txt b/home/Module Def/Home/Home.txt
new file mode 100644
index 0000000..7613ee8
--- /dev/null
+++ b/home/Module Def/Home/Home.txt
@@ -0,0 +1,28 @@
+[
+	{
+		'creation': '2011-06-09 16:14:42',
+		'disabled': 'No',
+		'docstatus': 0,
+		'doctype': 'Module Def',
+		'doctype_list': None,
+		'file_list': None,
+		'idx': None,
+		'is_hidden': 'No',
+		'last_updated_date': None,
+		'modified': '2011-06-09 16:57:36',
+		'modified_by': 'Administrator',
+		'module_desc': None,
+		'module_icon': None,
+		'module_label': 'Home',
+		'module_name': 'Home',
+		'module_page': 'Event Updates',
+		'module_seq': -1,
+		'name': 'Home',
+		'owner': 'Administrator',
+		'parent': None,
+		'parentfield': None,
+		'parenttype': None,
+		'trash_reason': None,
+		'widget_code': None
+	}
+]
\ No newline at end of file
diff --git a/my_company/page/__init__.py b/home/__init__.py
similarity index 100%
copy from my_company/page/__init__.py
copy to home/__init__.py
diff --git a/home/__init__.pyc b/home/__init__.pyc
new file mode 100644
index 0000000..0d32400
--- /dev/null
+++ b/home/__init__.pyc
Binary files differ
diff --git a/my_company/doctype/__init__.py b/home/doctype/__init__.py
similarity index 100%
rename from my_company/doctype/__init__.py
rename to home/doctype/__init__.py
diff --git a/home/doctype/__init__.pyc b/home/doctype/__init__.pyc
new file mode 100644
index 0000000..be44f74
--- /dev/null
+++ b/home/doctype/__init__.pyc
Binary files differ
diff --git a/my_company/doctype/company_control/__init__.py b/home/doctype/company_control/__init__.py
similarity index 100%
rename from my_company/doctype/company_control/__init__.py
rename to home/doctype/company_control/__init__.py
diff --git a/my_company/doctype/company_control/company_control.py b/home/doctype/company_control/company_control.py
similarity index 100%
rename from my_company/doctype/company_control/company_control.py
rename to home/doctype/company_control/company_control.py
diff --git a/home/doctype/company_control/company_control.txt b/home/doctype/company_control/company_control.txt
new file mode 100644
index 0000000..9ec6fe3
--- /dev/null
+++ b/home/doctype/company_control/company_control.txt
@@ -0,0 +1,58 @@
+[
+	{
+		'_last_update': None,
+		'allow_attach': None,
+		'allow_copy': None,
+		'allow_email': None,
+		'allow_print': None,
+		'allow_rename': None,
+		'allow_trash': None,
+		'autoname': None,
+		'change_log': None,
+		'client_script': None,
+		'client_script_core': '',
+		'client_string': None,
+		'colour': 'White:FFF',
+		'creation': '2010-08-08 17:08:55',
+		'description': None,
+		'docstatus': 0,
+		'doctype': 'DocType',
+		'document_type': None,
+		'dt_template': None,
+		'hide_heading': None,
+		'hide_toolbar': None,
+		'idx': None,
+		'in_create': None,
+		'in_dialog': None,
+		'is_transaction_doc': None,
+		'issingle': 1,
+		'istable': None,
+		'max_attachments': None,
+		'menu_index': None,
+		'modified': '2010-11-17 16:25:34',
+		'modified_by': 'Administrator',
+		'module': 'Home',
+		'name': 'Company Control',
+		'name_case': '',
+		'owner': 'Administrator',
+		'parent': None,
+		'parent_node': None,
+		'parentfield': None,
+		'parenttype': None,
+		'print_outline': '',
+		'read_only': None,
+		'read_only_onload': None,
+		'search_fields': None,
+		'section_style': 'Simple',
+		'server_code': None,
+		'server_code_compiled': None,
+		'server_code_core': None,
+		'server_code_error': ' ',
+		'show_in_menu': None,
+		'smallicon': None,
+		'subject': None,
+		'tag_fields': None,
+		'use_template': None,
+		'version': 7
+	}
+]
\ No newline at end of file
diff --git a/event_updates/doctype/feed/__init__.py b/home/doctype/feed/__init__.py
similarity index 100%
rename from event_updates/doctype/feed/__init__.py
rename to home/doctype/feed/__init__.py
diff --git a/event_updates/doctype/feed/feed.py b/home/doctype/feed/feed.py
similarity index 100%
rename from event_updates/doctype/feed/feed.py
rename to home/doctype/feed/feed.py
diff --git a/event_updates/doctype/feed/feed.txt b/home/doctype/feed/feed.txt
similarity index 85%
rename from event_updates/doctype/feed/feed.txt
rename to home/doctype/feed/feed.txt
index 33a47d0..abf306d 100644
--- a/event_updates/doctype/feed/feed.txt
+++ b/home/doctype/feed/feed.txt
@@ -13,7 +13,7 @@
 		'client_script_core': None,
 		'client_string': None,
 		'colour': 'White:FFF',
-		'creation': '2011-05-09 11:04:25',
+		'creation': '2011-04-06 18:07:23',
 		'description': None,
 		'docstatus': 0,
 		'doctype': 'DocType',
@@ -29,9 +29,9 @@
 		'istable': None,
 		'max_attachments': None,
 		'menu_index': None,
-		'modified': '2011-04-05 09:16:57',
+		'modified': '2011-06-09 16:42:12',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'Feed',
 		'name_case': None,
 		'owner': 'Administrator',
@@ -50,13 +50,15 @@
 		'server_code_error': None,
 		'show_in_menu': 0,
 		'smallicon': None,
+		'subject': None,
+		'tag_fields': None,
 		'use_template': None,
-		'version': 1
+		'version': 2
 	},
 	{
 		'allow_on_submit': None,
 		'colour': None,
-		'creation': '2011-05-09 11:04:25',
+		'creation': '2011-04-06 18:07:23',
 		'default': None,
 		'depends_on': None,
 		'description': None,
@@ -69,9 +71,10 @@
 		'idx': 1,
 		'in_filter': None,
 		'label': 'Doc Type',
-		'modified': '2011-05-09 11:04:25',
+		'modified': '2011-06-09 16:42:12',
 		'modified_by': 'Administrator',
-		'name': '000000400',
+		'name': '000000498',
+		'no_column': None,
 		'no_copy': None,
 		'oldfieldname': None,
 		'oldfieldtype': None,
@@ -91,7 +94,7 @@
 	{
 		'allow_on_submit': None,
 		'colour': None,
-		'creation': '2011-05-09 11:04:25',
+		'creation': '2011-04-06 18:07:24',
 		'default': None,
 		'depends_on': None,
 		'description': None,
@@ -104,9 +107,10 @@
 		'idx': 2,
 		'in_filter': None,
 		'label': 'Doc Name',
-		'modified': '2011-05-09 11:04:25',
+		'modified': '2011-06-09 16:42:12',
 		'modified_by': 'Administrator',
-		'name': '000000401',
+		'name': '000000499',
+		'no_column': None,
 		'no_copy': None,
 		'oldfieldname': None,
 		'oldfieldtype': None,
@@ -126,7 +130,7 @@
 	{
 		'allow_on_submit': None,
 		'colour': None,
-		'creation': '2011-05-09 11:04:25',
+		'creation': '2011-04-06 18:07:24',
 		'default': None,
 		'depends_on': None,
 		'description': None,
@@ -139,9 +143,10 @@
 		'idx': 3,
 		'in_filter': None,
 		'label': 'Subject',
-		'modified': '2011-05-09 11:04:25',
+		'modified': '2011-06-09 16:42:12',
 		'modified_by': 'Administrator',
-		'name': '000000402',
+		'name': '000000500',
+		'no_column': None,
 		'no_copy': None,
 		'oldfieldname': None,
 		'oldfieldtype': None,
@@ -161,7 +166,7 @@
 	{
 		'allow_on_submit': None,
 		'colour': None,
-		'creation': '2011-05-09 11:04:25',
+		'creation': '2011-04-06 18:07:24',
 		'default': None,
 		'depends_on': None,
 		'description': None,
@@ -174,9 +179,10 @@
 		'idx': 4,
 		'in_filter': None,
 		'label': 'Color',
-		'modified': '2011-05-09 11:04:25',
+		'modified': '2011-06-09 16:42:12',
 		'modified_by': 'Administrator',
-		'name': '000000403',
+		'name': '000000501',
+		'no_column': None,
 		'no_copy': None,
 		'oldfieldname': None,
 		'oldfieldtype': None,
diff --git a/event_updates/doctype/home_control/__init__.py b/home/doctype/home_control/__init__.py
similarity index 100%
rename from event_updates/doctype/home_control/__init__.py
rename to home/doctype/home_control/__init__.py
diff --git a/home/doctype/home_control/__init__.pyc b/home/doctype/home_control/__init__.pyc
new file mode 100644
index 0000000..f2aa585
--- /dev/null
+++ b/home/doctype/home_control/__init__.pyc
Binary files differ
diff --git a/event_updates/doctype/home_control/home_control.js b/home/doctype/home_control/home_control.js
similarity index 100%
rename from event_updates/doctype/home_control/home_control.js
rename to home/doctype/home_control/home_control.js
diff --git a/event_updates/doctype/home_control/home_control.py b/home/doctype/home_control/home_control.py
similarity index 100%
rename from event_updates/doctype/home_control/home_control.py
rename to home/doctype/home_control/home_control.py
diff --git a/home/doctype/home_control/home_control.pyc b/home/doctype/home_control/home_control.pyc
new file mode 100644
index 0000000..6709adf
--- /dev/null
+++ b/home/doctype/home_control/home_control.pyc
Binary files differ
diff --git a/home/doctype/home_control/home_control.txt b/home/doctype/home_control/home_control.txt
new file mode 100644
index 0000000..4113a61
--- /dev/null
+++ b/home/doctype/home_control/home_control.txt
@@ -0,0 +1,81 @@
+[
+	{
+		'_last_update': None,
+		'allow_attach': None,
+		'allow_copy': None,
+		'allow_email': None,
+		'allow_print': None,
+		'allow_rename': None,
+		'allow_trash': None,
+		'autoname': None,
+		'change_log': None,
+		'client_script': None,
+		'client_script_core': '',
+		'client_string': None,
+		'colour': 'White:FFF',
+		'creation': '2009-07-09 16:32:49',
+		'description': None,
+		'docstatus': 0,
+		'doctype': 'DocType',
+		'document_type': None,
+		'dt_template': None,
+		'hide_heading': None,
+		'hide_toolbar': None,
+		'idx': None,
+		'in_create': None,
+		'in_dialog': None,
+		'is_transaction_doc': None,
+		'issingle': 1,
+		'istable': None,
+		'max_attachments': None,
+		'menu_index': None,
+		'modified': '2011-06-09 16:42:37',
+		'modified_by': 'Administrator',
+		'module': 'Home',
+		'name': 'Home Control',
+		'name_case': None,
+		'owner': 'Administrator',
+		'parent': None,
+		'parent_node': None,
+		'parentfield': None,
+		'parenttype': None,
+		'print_outline': None,
+		'read_only': None,
+		'read_only_onload': None,
+		'search_fields': None,
+		'section_style': 'Simple',
+		'server_code': None,
+		'server_code_compiled': None,
+		'server_code_core': None,
+		'server_code_error': ' ',
+		'show_in_menu': 0,
+		'smallicon': None,
+		'subject': None,
+		'tag_fields': None,
+		'use_template': None,
+		'version': 4
+	},
+	{
+		'amend': None,
+		'cancel': None,
+		'create': 1,
+		'creation': '2010-10-19 13:01:06',
+		'docstatus': 0,
+		'doctype': 'DocPerm',
+		'execute': None,
+		'idx': 1,
+		'match': None,
+		'modified': '2011-06-09 16:42:37',
+		'modified_by': 'Administrator',
+		'name': 'PERM00716',
+		'owner': 'Administrator',
+		'parent': 'Home Control',
+		'parentfield': 'permissions',
+		'parenttype': 'DocType',
+		'permlevel': 0,
+		'read': 1,
+		'role': 'Guest',
+		'submit': None,
+		'write': 1
+	}
+]
\ No newline at end of file
diff --git a/event_updates/doctype/widget_control/__init__.py b/home/doctype/widget_control/__init__.py
similarity index 100%
rename from event_updates/doctype/widget_control/__init__.py
rename to home/doctype/widget_control/__init__.py
diff --git a/event_updates/doctype/widget_control/widget_control.py b/home/doctype/widget_control/widget_control.py
similarity index 100%
rename from event_updates/doctype/widget_control/widget_control.py
rename to home/doctype/widget_control/widget_control.py
diff --git a/home/doctype/widget_control/widget_control.txt b/home/doctype/widget_control/widget_control.txt
new file mode 100644
index 0000000..6380320
--- /dev/null
+++ b/home/doctype/widget_control/widget_control.txt
@@ -0,0 +1,58 @@
+[
+	{
+		'_last_update': None,
+		'allow_attach': None,
+		'allow_copy': None,
+		'allow_email': None,
+		'allow_print': None,
+		'allow_rename': None,
+		'allow_trash': None,
+		'autoname': None,
+		'change_log': None,
+		'client_script': None,
+		'client_script_core': '',
+		'client_string': None,
+		'colour': 'White:FFF',
+		'creation': '2010-08-08 17:09:30',
+		'description': None,
+		'docstatus': 0,
+		'doctype': 'DocType',
+		'document_type': None,
+		'dt_template': None,
+		'hide_heading': None,
+		'hide_toolbar': None,
+		'idx': None,
+		'in_create': None,
+		'in_dialog': None,
+		'is_transaction_doc': None,
+		'issingle': 1,
+		'istable': 0,
+		'max_attachments': None,
+		'menu_index': None,
+		'modified': '2011-06-09 16:44:21',
+		'modified_by': 'Administrator',
+		'module': 'Home',
+		'name': 'Widget Control',
+		'name_case': None,
+		'owner': 'Administrator',
+		'parent': None,
+		'parent_node': None,
+		'parentfield': None,
+		'parenttype': None,
+		'print_outline': None,
+		'read_only': None,
+		'read_only_onload': None,
+		'search_fields': None,
+		'section_style': 'Simple',
+		'server_code': None,
+		'server_code_compiled': None,
+		'server_code_core': None,
+		'server_code_error': ' ',
+		'show_in_menu': 0,
+		'smallicon': None,
+		'subject': None,
+		'tag_fields': None,
+		'use_template': None,
+		'version': 28
+	}
+]
\ No newline at end of file
diff --git a/home/page/.DS_Store b/home/page/.DS_Store
new file mode 100644
index 0000000..5008ddf
--- /dev/null
+++ b/home/page/.DS_Store
Binary files differ
diff --git a/my_company/page/__init__.py b/home/page/__init__.py
similarity index 100%
rename from my_company/page/__init__.py
rename to home/page/__init__.py
diff --git a/home/page/event_updates/.DS_Store b/home/page/event_updates/.DS_Store
new file mode 100644
index 0000000..5008ddf
--- /dev/null
+++ b/home/page/event_updates/.DS_Store
Binary files differ
diff --git a/event_updates/page/event_updates/__init__.py b/home/page/event_updates/__init__.py
similarity index 100%
rename from event_updates/page/event_updates/__init__.py
rename to home/page/event_updates/__init__.py
diff --git a/event_updates/page/event_updates/event_updates.css b/home/page/event_updates/event_updates.css
similarity index 100%
rename from event_updates/page/event_updates/event_updates.css
rename to home/page/event_updates/event_updates.css
diff --git a/event_updates/page/event_updates/event_updates.html b/home/page/event_updates/event_updates.html
similarity index 100%
rename from event_updates/page/event_updates/event_updates.html
rename to home/page/event_updates/event_updates.html
diff --git a/event_updates/page/event_updates/event_updates.js b/home/page/event_updates/event_updates.js
similarity index 99%
rename from event_updates/page/event_updates/event_updates.js
rename to home/page/event_updates/event_updates.js
index 7a401de..4ae0857 100644
--- a/event_updates/page/event_updates/event_updates.js
+++ b/home/page/event_updates/event_updates.js
@@ -610,7 +610,7 @@
 	var wrapper = page_body.pages['Event Updates'];
 
 	// get values
-	$c_page('event_updates', 'event_updates', 'get_status_details', user,
+	$c_page('home', 'event_updates', 'get_status_details', user,
 		function(r,rt) { 
 			
 			home_status_bar.render(r.message);
@@ -640,7 +640,7 @@
 		if(r.exc) { msgprint(r.exc); return; }
 		$(pscript.trial_box).slideUp();
 	}
-	$c_page('event_updates','event_updates','convert_to_paid','',callback)	
+	$c_page('home','event_updates','convert_to_paid','',callback)	
 }
 
 // show system message
diff --git a/event_updates/page/event_updates/event_updates.py b/home/page/event_updates/event_updates.py
similarity index 100%
rename from event_updates/page/event_updates/event_updates.py
rename to home/page/event_updates/event_updates.py
diff --git a/home/page/event_updates/event_updates.txt b/home/page/event_updates/event_updates.txt
new file mode 100644
index 0000000..d35b759
--- /dev/null
+++ b/home/page/event_updates/event_updates.txt
@@ -0,0 +1,36 @@
+[
+	{
+		'author': None,
+		'category': None,
+		'content': None,
+		'creation': '2010-12-14 10:33:09',
+		'docstatus': 0,
+		'doctype': 'Page',
+		'file_list': None,
+		'icon': None,
+		'idx': None,
+		'keywords': None,
+		'menu_index': None,
+		'modified': '2010-12-23 11:48:49',
+		'modified_by': 'Administrator',
+		'module': 'Home',
+		'name': 'Event Updates',
+		'owner': 'Administrator',
+		'page_name': 'Event Updates',
+		'page_title': None,
+		'parent': None,
+		'parent_node': None,
+		'parentfield': None,
+		'parenttype': None,
+		'publish': None,
+		'script': None,
+		'show_in_menu': None,
+		'site_description': None,
+		'standard': 'Yes',
+		'static_content': None,
+		'style': None,
+		'stylesheet': None,
+		'template': None,
+		'write_content': None
+	}
+]
\ No newline at end of file
diff --git a/event_updates/page/event_updates/event_updates_static.html b/home/page/event_updates/event_updates_static.html
similarity index 100%
rename from event_updates/page/event_updates/event_updates_static.html
rename to home/page/event_updates/event_updates_static.html
diff --git a/my_company/page/my_company/__init__.py b/home/page/my_company/__init__.py
similarity index 100%
rename from my_company/page/my_company/__init__.py
rename to home/page/my_company/__init__.py
diff --git a/my_company/page/my_company/my_company.css b/home/page/my_company/my_company.css
similarity index 100%
rename from my_company/page/my_company/my_company.css
rename to home/page/my_company/my_company.css
diff --git a/my_company/page/my_company/my_company.html b/home/page/my_company/my_company.html
similarity index 100%
rename from my_company/page/my_company/my_company.html
rename to home/page/my_company/my_company.html
diff --git a/my_company/page/my_company/my_company.js b/home/page/my_company/my_company.js
similarity index 97%
rename from my_company/page/my_company/my_company.js
rename to home/page/my_company/my_company.js
index ea43604..0384788 100644
--- a/my_company/page/my_company/my_company.js
+++ b/home/page/my_company/my_company.js
@@ -34,7 +34,7 @@
 		+ ' users enabled out of ' + r.message.max_user 
 		+ '. Go to <a href="javascript:pscript.go_to_account_settings()">Account Settings</a> to increase the number of users');
 	}
-	$c_page('my_company', 'my_company', 'get_max_users', '', callback)
+	$c_page('home', 'my_company', 'get_max_users', '', callback)
 }
 
 //
@@ -54,7 +54,7 @@
 		v = d.get_values();
 		if(v) {
 			d.fields_dict.add.input.set_working();
-			$c_page('my_company', 'my_company', 'add_user', v, function(r,rt) {
+			$c_page('home', 'my_company', 'add_user', v, function(r,rt) {
 				if(r.exc) { msgprint(r.exc); return; }
 				else {
 					d.hide();
@@ -99,7 +99,7 @@
 	if(pscript.online_users) {
 		this.make_list();		
 	} else {
-		$c_page('event_updates', 'event_updates', 'get_online_users', '', function(r,rt) {
+		$c_page('home', 'event_updates', 'get_online_users', '', function(r,rt) {
 			pscript.online_users = r.message;
 			me.make_list();
 		})
@@ -333,7 +333,7 @@
 				pscript.myc_refresh()
 				msgprint("User Deleted Successfully");
 			}
-			$c_page('my_company', 'my_company', 'delete_user', {'user': me.uid}, callback);
+			$c_page('home', 'my_company', 'delete_user', {'user': me.uid}, callback);
 		}
 		d.show();
 	}
@@ -354,7 +354,7 @@
 					me.refresh_enable_disable();
 				}
 				this.set_working();
-				$c_page('my_company','my_company', this.innerHTML.toLowerCase()+'_profile',me.profile.name, callback);
+				$c_page('home','my_company', this.innerHTML.toLowerCase()+'_profile',me.profile.name, callback);
 			}, null, null, 1);
 		}
 		if(this.uid==user) $dh(this.status_button); else $di(this.status_button);
@@ -473,7 +473,7 @@
 		// set all messages
 		// as "read" (docstatus = 0)
 		if(user==uid) {
-			$c_page('my_company', 'my_company', 'set_read_all_messages', '', function(r,rt) { });	
+			$c_page('home', 'my_company', 'set_read_all_messages', '', function(r,rt) { });	
 		}
 	}
 	
@@ -505,7 +505,7 @@
 			msgprint('Please write a message first!'); return;
 		}
 		this.post.set_working();
-		$c_page('my_company', 'my_company', 'post_comment', {
+		$c_page('home', 'my_company', 'post_comment', {
 			uid: uid,
 			comment: $(me.input).val(),
 			notify: me.notify_check.checked ? 1 : 0
diff --git a/my_company/page/my_company/my_company.py b/home/page/my_company/my_company.py
similarity index 100%
rename from my_company/page/my_company/my_company.py
rename to home/page/my_company/my_company.py
diff --git a/home/page/my_company/my_company.txt b/home/page/my_company/my_company.txt
new file mode 100644
index 0000000..61aed51
--- /dev/null
+++ b/home/page/my_company/my_company.txt
@@ -0,0 +1,64 @@
+[
+	{
+		'author': None,
+		'category': None,
+		'content': '',
+		'creation': '2010-12-14 10:33:09',
+		'docstatus': 0,
+		'doctype': 'Page',
+		'file_list': None,
+		'icon': None,
+		'idx': None,
+		'keywords': None,
+		'menu_index': None,
+		'modified': '2010-12-01 17:09:46',
+		'modified_by': 'Administrator',
+		'module': 'Home',
+		'name': 'My Company',
+		'owner': 'Administrator',
+		'page_name': 'My Company',
+		'page_title': None,
+		'parent': None,
+		'parent_node': None,
+		'parentfield': None,
+		'parenttype': None,
+		'publish': None,
+		'script': None,
+		'show_in_menu': 1,
+		'site_description': None,
+		'standard': 'Yes',
+		'static_content': '',
+		'style': '',
+		'stylesheet': None,
+		'template': None,
+		'write_content': None
+	},
+	{
+		'creation': '2010-12-14 10:33:09',
+		'docstatus': 0,
+		'doctype': 'Page Role',
+		'idx': 1,
+		'modified': '2010-12-14 10:33:09',
+		'modified_by': 'Administrator',
+		'name': 'PR000235',
+		'owner': 'Administrator',
+		'parent': 'My Company',
+		'parentfield': 'roles',
+		'parenttype': 'Page',
+		'role': 'Administrator'
+	},
+	{
+		'creation': '2010-12-14 10:33:09',
+		'docstatus': 0,
+		'doctype': 'Page Role',
+		'idx': 2,
+		'modified': '2010-12-14 10:33:09',
+		'modified_by': 'Administrator',
+		'name': 'PR000236',
+		'owner': 'nabin@webnotestech.com',
+		'parent': 'My Company',
+		'parentfield': 'roles',
+		'parenttype': 'Page',
+		'role': 'All'
+	}
+]
\ No newline at end of file
diff --git a/event_updates/page/profile_settings/__init__.py b/home/page/profile_settings/__init__.py
similarity index 100%
rename from event_updates/page/profile_settings/__init__.py
rename to home/page/profile_settings/__init__.py
diff --git a/event_updates/page/profile_settings/profile_settings.html b/home/page/profile_settings/profile_settings.html
similarity index 100%
rename from event_updates/page/profile_settings/profile_settings.html
rename to home/page/profile_settings/profile_settings.html
diff --git a/event_updates/page/profile_settings/profile_settings.js b/home/page/profile_settings/profile_settings.js
similarity index 91%
rename from event_updates/page/profile_settings/profile_settings.js
rename to home/page/profile_settings/profile_settings.js
index 573be41..10b06d4 100644
--- a/event_updates/page/profile_settings/profile_settings.js
+++ b/home/page/profile_settings/profile_settings.js
@@ -1,5 +1,6 @@
 pscript['onload_profile-settings'] = function() {
 	var wrapper = page_body.pages['profile-settings'];
+	wrapper.className = 'layout_wrapper';
 	pscript.myprofile = new MyProfile(wrapper)
 }
 
@@ -22,7 +23,7 @@
 	}
 	
 	this.load_details = function() {
-		$c_page('event_updates','profile_settings','get_user_details','',function(r, rt) {
+		$c_page('home','profile_settings','get_user_details','',function(r, rt) {
 			me.form.set_values(r.message);
 		})
 	}
@@ -45,7 +46,7 @@
 			if(v) {
 				this.set_working();
 				var btn = this;
-				$c_page('event_updates','profile_settings','set_user_details',v,function(r, rt) {
+				$c_page('home','profile_settings','set_user_details',v,function(r, rt) {
 					btn.done_working();
 				})
 			}
@@ -74,7 +75,7 @@
 					msgprint('Passwords must match'); return;
 				}
 				this.set_working();
-				$c_page('event_updates','profile_settings','change_password',v,function(r,rt) {
+				$c_page('home','profile_settings','change_password',v,function(r,rt) {
 					if(!r.message && r.exc) { msgprint(r.exc); return; }
 					d.hide();
 				})
@@ -111,4 +112,4 @@
 		pscript.myprofile.change_dialog.hide();
 		set_user_img(pscript.myprofile.img, user, null, fid);
 	}
-}
\ No newline at end of file
+}
diff --git a/event_updates/page/profile_settings/profile_settings.py b/home/page/profile_settings/profile_settings.py
similarity index 100%
rename from event_updates/page/profile_settings/profile_settings.py
rename to home/page/profile_settings/profile_settings.py
diff --git a/home/page/profile_settings/profile_settings.txt b/home/page/profile_settings/profile_settings.txt
new file mode 100644
index 0000000..2bd11e0
--- /dev/null
+++ b/home/page/profile_settings/profile_settings.txt
@@ -0,0 +1,36 @@
+[
+	{
+		'author': None,
+		'category': 'Standard',
+		'content': None,
+		'creation': '2011-04-13 12:08:59',
+		'docstatus': 0,
+		'doctype': 'Page',
+		'file_list': None,
+		'icon': None,
+		'idx': None,
+		'keywords': None,
+		'menu_index': None,
+		'modified': '2011-04-13 12:08:59',
+		'modified_by': 'Administrator',
+		'module': 'Home',
+		'name': 'profile-settings',
+		'owner': 'Administrator',
+		'page_name': 'Profile Settings',
+		'page_title': None,
+		'parent': None,
+		'parent_node': None,
+		'parentfield': None,
+		'parenttype': None,
+		'publish': None,
+		'script': None,
+		'show_in_menu': None,
+		'site_description': None,
+		'standard': 'Yes',
+		'static_content': None,
+		'style': None,
+		'stylesheet': None,
+		'template': None,
+		'write_content': None
+	}
+]
\ No newline at end of file
diff --git a/event_updates/search_criteria/__init__.py b/home/search_criteria/__init__.py
similarity index 100%
rename from event_updates/search_criteria/__init__.py
rename to home/search_criteria/__init__.py
diff --git a/event_updates/search_criteria/bills_to_be_paid/__init__.py b/home/search_criteria/bills_to_be_paid/__init__.py
similarity index 100%
rename from event_updates/search_criteria/bills_to_be_paid/__init__.py
rename to home/search_criteria/bills_to_be_paid/__init__.py
diff --git a/event_updates/search_criteria/bills_to_be_paid/bills_to_be_paid.txt b/home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt
similarity index 97%
rename from event_updates/search_criteria/bills_to_be_paid/bills_to_be_paid.txt
rename to home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt
index e454f49..d0df7ae 100644
--- a/event_updates/search_criteria/bills_to_be_paid/bills_to_be_paid.txt
+++ b/home/search_criteria/bills_to_be_paid/bills_to_be_paid.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-05-13 17:26:48',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'bills-to_be_paid',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/bills_to_be_submitted/__init__.py b/home/search_criteria/bills_to_be_submitted/__init__.py
similarity index 100%
rename from event_updates/search_criteria/bills_to_be_submitted/__init__.py
rename to home/search_criteria/bills_to_be_submitted/__init__.py
diff --git a/event_updates/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt b/home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt
similarity index 97%
rename from event_updates/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt
rename to home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt
index f45a040..69273bd 100644
--- a/event_updates/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt
+++ b/home/search_criteria/bills_to_be_submitted/bills_to_be_submitted.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-05-03 12:24:43',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'bills-to_be_submitted',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/delivery_note_to_be_billed/__init__.py b/home/search_criteria/delivery_note_to_be_billed/__init__.py
similarity index 100%
rename from event_updates/search_criteria/delivery_note_to_be_billed/__init__.py
rename to home/search_criteria/delivery_note_to_be_billed/__init__.py
diff --git a/event_updates/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt b/home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt
similarity index 97%
rename from event_updates/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt
rename to home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt
index ec64dcb..05fd4f4 100644
--- a/event_updates/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt
+++ b/home/search_criteria/delivery_note_to_be_billed/delivery_note_to_be_billed.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-05-13 17:24:34',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'delivery_note-to_be_billed',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/delivery_note_to_be_submitted/__init__.py b/home/search_criteria/delivery_note_to_be_submitted/__init__.py
similarity index 100%
rename from event_updates/search_criteria/delivery_note_to_be_submitted/__init__.py
rename to home/search_criteria/delivery_note_to_be_submitted/__init__.py
diff --git a/event_updates/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt b/home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt
similarity index 97%
rename from event_updates/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt
rename to home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt
index 90ce8c6..1a7a1ef 100644
--- a/event_updates/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt
+++ b/home/search_criteria/delivery_note_to_be_submitted/delivery_note_to_be_submitted.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-05-13 17:17:58',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'delivery_note-to_be_submitted',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/enquiry_quotations_to_be_sent/__init__.py b/home/search_criteria/enquiry_quotations_to_be_sent/__init__.py
similarity index 100%
rename from event_updates/search_criteria/enquiry_quotations_to_be_sent/__init__.py
rename to home/search_criteria/enquiry_quotations_to_be_sent/__init__.py
diff --git a/event_updates/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt b/home/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt
similarity index 96%
rename from event_updates/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt
rename to home/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt
index 82491c4..d65dd98 100644
--- a/event_updates/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt
+++ b/home/search_criteria/enquiry_quotations_to_be_sent/enquiry_quotations_to_be_sent.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-07-16 13:29:58',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'enquiry-quotations_to_be_sent',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/enquiry_to_follow_up/__init__.py b/home/search_criteria/enquiry_to_follow_up/__init__.py
similarity index 100%
rename from event_updates/search_criteria/enquiry_to_follow_up/__init__.py
rename to home/search_criteria/enquiry_to_follow_up/__init__.py
diff --git a/event_updates/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js b/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js
similarity index 100%
rename from event_updates/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js
rename to home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.js
diff --git a/event_updates/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt b/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt
similarity index 94%
rename from event_updates/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt
rename to home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt
index 96574b6..e16a8f6 100644
--- a/event_updates/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt
+++ b/home/search_criteria/enquiry_to_follow_up/enquiry_to_follow_up.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-08-30 12:08:00',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'enquiry-to_follow_up',
 		'owner': 'Administrator',
 		'page_len': 50,
@@ -28,7 +28,7 @@
 		'parent_doc_type': None,
 		'parentfield': None,
 		'parenttype': None,
-		'report_script': None,
+		'report_script': '',
 		'server_script': None,
 		'sort_by': '`tabEnquiry`.`name`',
 		'sort_order': 'DESC',
diff --git a/event_updates/search_criteria/indent_purchase_order_to_be_made/__init__.py b/home/search_criteria/indent_purchase_order_to_be_made/__init__.py
similarity index 100%
rename from event_updates/search_criteria/indent_purchase_order_to_be_made/__init__.py
rename to home/search_criteria/indent_purchase_order_to_be_made/__init__.py
diff --git a/event_updates/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt b/home/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt
similarity index 97%
rename from event_updates/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt
rename to home/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt
index 00b17a1..31949d6 100644
--- a/event_updates/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt
+++ b/home/search_criteria/indent_purchase_order_to_be_made/indent_purchase_order_to_be_made.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-05-13 17:37:18',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'indent-purchase_order_to_be_made',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/indent_to_be_submitted/__init__.py b/home/search_criteria/indent_to_be_submitted/__init__.py
similarity index 100%
rename from event_updates/search_criteria/indent_to_be_submitted/__init__.py
rename to home/search_criteria/indent_to_be_submitted/__init__.py
diff --git a/event_updates/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt b/home/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt
similarity index 96%
rename from event_updates/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt
rename to home/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt
index 475aadd..09768c0 100644
--- a/event_updates/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt
+++ b/home/search_criteria/indent_to_be_submitted/indent_to_be_submitted.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-05-13 17:38:49',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'indent-to_be_submitted',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/invoices_overdue/__init__.py b/home/search_criteria/invoices_overdue/__init__.py
similarity index 100%
rename from event_updates/search_criteria/invoices_overdue/__init__.py
rename to home/search_criteria/invoices_overdue/__init__.py
diff --git a/event_updates/search_criteria/invoices_overdue/invoices_overdue.txt b/home/search_criteria/invoices_overdue/invoices_overdue.txt
similarity index 97%
rename from event_updates/search_criteria/invoices_overdue/invoices_overdue.txt
rename to home/search_criteria/invoices_overdue/invoices_overdue.txt
index 6830537..077d3c1 100644
--- a/event_updates/search_criteria/invoices_overdue/invoices_overdue.txt
+++ b/home/search_criteria/invoices_overdue/invoices_overdue.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-04-30 17:08:52',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'invoices-overdue',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/invoices_to_be_submitted/__init__.py b/home/search_criteria/invoices_to_be_submitted/__init__.py
similarity index 100%
rename from event_updates/search_criteria/invoices_to_be_submitted/__init__.py
rename to home/search_criteria/invoices_to_be_submitted/__init__.py
diff --git a/event_updates/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt b/home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt
similarity index 97%
rename from event_updates/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt
rename to home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt
index 652cf5e..3a887c8 100644
--- a/event_updates/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt
+++ b/home/search_criteria/invoices_to_be_submitted/invoices_to_be_submitted.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-05-03 10:18:56',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'invoices-to_be_submitted',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/invoices_to_receive_payment/__init__.py b/home/search_criteria/invoices_to_receive_payment/__init__.py
similarity index 100%
rename from event_updates/search_criteria/invoices_to_receive_payment/__init__.py
rename to home/search_criteria/invoices_to_receive_payment/__init__.py
diff --git a/event_updates/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt b/home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt
similarity index 97%
rename from event_updates/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt
rename to home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt
index 322f04e..1ccb571 100644
--- a/event_updates/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt
+++ b/home/search_criteria/invoices_to_receive_payment/invoices_to_receive_payment.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-04-30 16:54:26',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'invoices-to_receive_payment',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/lead_to_follow_up/__init__.py b/home/search_criteria/lead_to_follow_up/__init__.py
similarity index 100%
rename from event_updates/search_criteria/lead_to_follow_up/__init__.py
rename to home/search_criteria/lead_to_follow_up/__init__.py
diff --git a/event_updates/search_criteria/lead_to_follow_up/lead_to_follow_up.js b/home/search_criteria/lead_to_follow_up/lead_to_follow_up.js
similarity index 100%
rename from event_updates/search_criteria/lead_to_follow_up/lead_to_follow_up.js
rename to home/search_criteria/lead_to_follow_up/lead_to_follow_up.js
diff --git a/event_updates/search_criteria/lead_to_follow_up/lead_to_follow_up.txt b/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt
similarity index 95%
rename from event_updates/search_criteria/lead_to_follow_up/lead_to_follow_up.txt
rename to home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt
index e1536eb..2d4bd28 100644
--- a/event_updates/search_criteria/lead_to_follow_up/lead_to_follow_up.txt
+++ b/home/search_criteria/lead_to_follow_up/lead_to_follow_up.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-08-30 12:01:19',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'lead-to_follow_up',
 		'owner': 'Administrator',
 		'page_len': 50,
@@ -28,7 +28,7 @@
 		'parent_doc_type': None,
 		'parentfield': None,
 		'parenttype': None,
-		'report_script': None,
+		'report_script': '',
 		'server_script': None,
 		'sort_by': '`tabLead`.`name`',
 		'sort_order': 'DESC',
diff --git a/event_updates/search_criteria/sales_order_overdue/sales_order_overdue.js b/home/search_criteria/lead_to_follow_up/sales_order_overdue.js
similarity index 100%
rename from event_updates/search_criteria/sales_order_overdue/sales_order_overdue.js
rename to home/search_criteria/lead_to_follow_up/sales_order_overdue.js
diff --git a/event_updates/search_criteria/purchase_order_to_be_billed/__init__.py b/home/search_criteria/purchase_order_to_be_billed/__init__.py
similarity index 100%
rename from event_updates/search_criteria/purchase_order_to_be_billed/__init__.py
rename to home/search_criteria/purchase_order_to_be_billed/__init__.py
diff --git a/event_updates/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt b/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt
similarity index 97%
rename from event_updates/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt
rename to home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt
index c84afa7..b9d28e3 100644
--- a/event_updates/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt
+++ b/home/search_criteria/purchase_order_to_be_billed/purchase_order_to_be_billed.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-05-13 17:31:42',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'purchase_order-to_be_billed',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/purchase_order_to_be_submitted/__init__.py b/home/search_criteria/purchase_order_to_be_submitted/__init__.py
similarity index 100%
rename from event_updates/search_criteria/purchase_order_to_be_submitted/__init__.py
rename to home/search_criteria/purchase_order_to_be_submitted/__init__.py
diff --git a/event_updates/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt b/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt
similarity index 97%
rename from event_updates/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt
rename to home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt
index 41f1d7f..728d576 100644
--- a/event_updates/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt
+++ b/home/search_criteria/purchase_order_to_be_submitted/purchase_order_to_be_submitted.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-05-03 11:19:23',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'purchase_order-to_be_submitted',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/purchase_order_to_receive_items/__init__.py b/home/search_criteria/purchase_order_to_receive_items/__init__.py
similarity index 100%
rename from event_updates/search_criteria/purchase_order_to_receive_items/__init__.py
rename to home/search_criteria/purchase_order_to_receive_items/__init__.py
diff --git a/event_updates/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt b/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt
similarity index 97%
rename from event_updates/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt
rename to home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt
index 51f5144..a40e17e 100644
--- a/event_updates/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt
+++ b/home/search_criteria/purchase_order_to_receive_items/purchase_order_to_receive_items.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-05-13 17:34:22',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'purchase_order-to_receive_items',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/sales_order_overdue/__init__.py b/home/search_criteria/sales_order_overdue/__init__.py
similarity index 100%
rename from event_updates/search_criteria/sales_order_overdue/__init__.py
rename to home/search_criteria/sales_order_overdue/__init__.py
diff --git a/event_updates/search_criteria/sales_order_overdue/sales_order_overdue.txt b/home/search_criteria/sales_order_overdue/sales_order_overdue.txt
similarity index 95%
rename from event_updates/search_criteria/sales_order_overdue/sales_order_overdue.txt
rename to home/search_criteria/sales_order_overdue/sales_order_overdue.txt
index 5e216cc..4c5101f 100644
--- a/event_updates/search_criteria/sales_order_overdue/sales_order_overdue.txt
+++ b/home/search_criteria/sales_order_overdue/sales_order_overdue.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-08-26 11:52:09',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'sales_order-overdue',
 		'owner': 'Administrator',
 		'page_len': 50,
@@ -28,7 +28,7 @@
 		'parent_doc_type': None,
 		'parentfield': None,
 		'parenttype': None,
-		'report_script': None,
+		'report_script': '',
 		'server_script': None,
 		'sort_by': '`tabSales Order`.`name`',
 		'sort_order': 'DESC',
diff --git a/event_updates/search_criteria/sales_order_to_be_billed/__init__.py b/home/search_criteria/sales_order_to_be_billed/__init__.py
similarity index 100%
rename from event_updates/search_criteria/sales_order_to_be_billed/__init__.py
rename to home/search_criteria/sales_order_to_be_billed/__init__.py
diff --git a/event_updates/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt b/home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt
similarity index 97%
rename from event_updates/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt
rename to home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt
index b9d942b..f321549 100644
--- a/event_updates/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt
+++ b/home/search_criteria/sales_order_to_be_billed/sales_order_to_be_billed.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-05-13 17:45:37',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'sales_order-to_be_billed',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/sales_order_to_be_delivered/__init__.py b/home/search_criteria/sales_order_to_be_delivered/__init__.py
similarity index 100%
rename from event_updates/search_criteria/sales_order_to_be_delivered/__init__.py
rename to home/search_criteria/sales_order_to_be_delivered/__init__.py
diff --git a/event_updates/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt b/home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt
similarity index 97%
rename from event_updates/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt
rename to home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt
index 0e9f737..2c615b6 100644
--- a/event_updates/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt
+++ b/home/search_criteria/sales_order_to_be_delivered/sales_order_to_be_delivered.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-05-13 17:53:29',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'sales_order-to_be_delivered',
 		'owner': 'Administrator',
 		'page_len': 100,
diff --git a/event_updates/search_criteria/sales_order_to_be_submitted/__init__.py b/home/search_criteria/sales_order_to_be_submitted/__init__.py
similarity index 100%
rename from event_updates/search_criteria/sales_order_to_be_submitted/__init__.py
rename to home/search_criteria/sales_order_to_be_submitted/__init__.py
diff --git a/event_updates/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt b/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt
similarity index 96%
rename from event_updates/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt
rename to home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt
index 0e1a4ee..c789c2c 100644
--- a/event_updates/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt
+++ b/home/search_criteria/sales_order_to_be_submitted/sales_order_to_be_submitted.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-05-13 17:47:45',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'sales_order-to_be_submitted',
 		'owner': 'Administrator',
 		'page_len': 100,
diff --git a/event_updates/search_criteria/serial_no_amc_expiring_this_month/__init__.py b/home/search_criteria/serial_no_amc_expiring_this_month/__init__.py
similarity index 100%
rename from event_updates/search_criteria/serial_no_amc_expiring_this_month/__init__.py
rename to home/search_criteria/serial_no_amc_expiring_this_month/__init__.py
diff --git a/event_updates/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt b/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt
similarity index 97%
rename from event_updates/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt
rename to home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt
index c43ce7d..336eaa7 100644
--- a/event_updates/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt
+++ b/home/search_criteria/serial_no_amc_expiring_this_month/serial_no_amc_expiring_this_month.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-07-29 15:01:33',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'serial_no-amc_expiring_this_month',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/serial_no_warranty_expiring_this_month/__init__.py b/home/search_criteria/serial_no_warranty_expiring_this_month/__init__.py
similarity index 100%
rename from event_updates/search_criteria/serial_no_warranty_expiring_this_month/__init__.py
rename to home/search_criteria/serial_no_warranty_expiring_this_month/__init__.py
diff --git a/event_updates/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt b/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt
similarity index 97%
rename from event_updates/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt
rename to home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt
index 1b74d94..f9713e0 100644
--- a/event_updates/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt
+++ b/home/search_criteria/serial_no_warranty_expiring_this_month/serial_no_warranty_expiring_this_month.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-07-23 09:57:51',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'serial_no-warranty_expiring_this_month',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/event_updates/search_criteria/task_open/__init__.py b/home/search_criteria/task_open/__init__.py
similarity index 100%
rename from event_updates/search_criteria/task_open/__init__.py
rename to home/search_criteria/task_open/__init__.py
diff --git a/event_updates/search_criteria/task_open/task_open.txt b/home/search_criteria/task_open/task_open.txt
similarity index 96%
rename from event_updates/search_criteria/task_open/task_open.txt
rename to home/search_criteria/task_open/task_open.txt
index 47e8dfc..f82a3fc 100644
--- a/event_updates/search_criteria/task_open/task_open.txt
+++ b/home/search_criteria/task_open/task_open.txt
@@ -20,7 +20,7 @@
 		'idx': None,
 		'modified': '2010-07-16 13:03:49',
 		'modified_by': 'Administrator',
-		'module': 'Event Updates',
+		'module': 'Home',
 		'name': 'task-open',
 		'owner': 'Administrator',
 		'page_len': 50,
diff --git a/my_company/Module Def/My Company/My Company.txt b/my_company/Module Def/My Company/My Company.txt
deleted file mode 100644
index 52b80fb..0000000
--- a/my_company/Module Def/My Company/My Company.txt
+++ /dev/null
@@ -1,127 +0,0 @@
-[
-	{
-		'_last_update': None,
-		'creation': '2010-11-30 22:41:39',
-		'disabled': 'No',
-		'docstatus': 0,
-		'doctype': 'Module Def',
-		'doctype_list': None,
-		'file_list': None,
-		'idx': None,
-		'is_hidden': 'No',
-		'last_updated_date': '2010-12-01 17:37:00',
-		'modified': '2010-12-13 11:50:27',
-		'modified_by': 'Administrator',
-		'module_desc': None,
-		'module_icon': 'chart_organisation.png',
-		'module_label': 'Members',
-		'module_name': 'My Company',
-		'module_page': 'My Company',
-		'module_seq': 2,
-		'name': 'My Company',
-		'owner': 'Administrator',
-		'parent': None,
-		'parentfield': None,
-		'parenttype': None,
-		'trash_reason': None,
-		'widget_code': None
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:46',
-		'description': None,
-		'display_name': None,
-		'doc_name': 'Forms',
-		'doc_type': 'Separator',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 1,
-		'modified': '2011-03-24 15:04:46',
-		'modified_by': 'Administrator',
-		'name': '000003090',
-		'owner': 'Administrator',
-		'parent': 'My Company',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-12-01 17:37:40',
-		'description': None,
-		'display_name': 'Social Badge',
-		'doc_name': 'Social Badge',
-		'doc_type': 'Forms',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 2,
-		'modified': '2011-03-24 15:04:46',
-		'modified_by': 'Administrator',
-		'name': 'MDI00279',
-		'owner': 'Administrator',
-		'parent': 'My Company',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2011-03-24 15:04:46',
-		'description': None,
-		'display_name': None,
-		'doc_name': 'Pages',
-		'doc_type': 'Separator',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 3,
-		'modified': '2011-03-24 15:04:46',
-		'modified_by': 'Administrator',
-		'name': '000003091',
-		'owner': 'Administrator',
-		'parent': 'My Company',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'click_function': None,
-		'creation': '2010-12-01 17:37:40',
-		'description': None,
-		'display_name': 'My Company',
-		'doc_name': 'My Company',
-		'doc_type': 'Pages',
-		'docstatus': 0,
-		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 4,
-		'modified': '2011-03-24 15:04:46',
-		'modified_by': 'Administrator',
-		'name': 'MDI00281',
-		'owner': 'Administrator',
-		'parent': 'My Company',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
-	},
-	{
-		'creation': '2010-12-13 11:49:53',
-		'docstatus': 0,
-		'doctype': 'Module Def Role',
-		'idx': 1,
-		'modified': '2010-12-13 11:50:27',
-		'modified_by': 'Administrator',
-		'name': 'MDR00075',
-		'owner': 'Administrator',
-		'parent': 'My Company',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
-		'role': 'All'
-	}
-]
\ No newline at end of file
diff --git a/my_company/__init__.py b/my_company/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/my_company/__init__.py
+++ /dev/null
diff --git a/my_company/doctype/company_control/company_control.txt b/my_company/doctype/company_control/company_control.txt
deleted file mode 100644
index 43a62cc..0000000
--- a/my_company/doctype/company_control/company_control.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'section_style': 'Simple', 'is_transaction_doc': None, 'creation': '2010-11-30 22:41:39', 'search_fields': None, 'module': 'My Company', 'doctype': 'DocType', 'change_log': None, 'print_outline': '', 'owner': 'Administrator', 'in_dialog': None, 'in_create': None, 'read_only': None, 'allow_email': None, 'dt_template': None, 'hide_heading': None, 'issingle': 1, 'allow_rename': None, 'smallicon': '', 'allow_attach': None, 'show_in_menu': None, 'max_attachments': None, 'version': 43, 'menu_index': None, 'docstatus': 0, 'allow_copy': None, 'istable': None, 'description': None, 'parent': None, 'server_code': None, 'allow_trash': None, 'allow_print': None, 'autoname': None, 'client_script_core': '', 'client_string': None, 'use_template': None, 'modified_by': 'Administrator', 'document_type': '', 'name': 'Company Control', 'idx': None, 'hide_toolbar': None, 'colour': 'White:FFF', 'client_script': None, 'modified': '2010-11-17 16:25:34', 'server_code_error': ' ', 'name_case': '', 'parenttype': None, 'read_only_onload': None, 'server_code_core': None, 'server_code_compiled': None, 'parent_node': None, 'parentfield': None}]
\ No newline at end of file
diff --git a/my_company/page/my_company/my_company.comp.js b/my_company/page/my_company/my_company.comp.js
deleted file mode 100644
index ca87c07..0000000
--- a/my_company/page/my_company/my_company.comp.js
+++ /dev/null
@@ -1,118 +0,0 @@
-
-pscript['onload_My Company']=function(){var wrapper=page_body.pages['My Company'];wrapper.head=new PageHeader(wrapper,'People');wrapper.body=$a(wrapper,'div','',{marginRight:'11px',marginTop:'11px'});wrapper.message=$a(wrapper.body,'div');wrapper.tab=make_table(wrapper.body,1,2,'100%',['25%','75%']);$y(wrapper.tab,{tableLayout:'fixed'})
-pscript.myc_make_toolbar(wrapper);pscript.myc_make_list(wrapper);if(pscript.is_erpnext_saas){pscript.myc_show_erpnext_message();}}
-pscript.myc_make_toolbar=function(wrapper){if(has_common(user_roles,['System Manager','Administrator'])){wrapper.head.add_button('Add User',pscript.myc_add_user)}}
-pscript.myc_show_erpnext_message=function(){var callback=function(r,rt){if(r.exc){msgprint(r.exc);return;}
-$a(wrapper.message,'div','help_box','','You have '+r.message.enabled
-+' users enabled out of '+r.message.max_user
-+'. Go to <a href="javascript:pscript.go_to_account_settings()">Account Settings</a> to increase the number of users');}
-$c_page('my_company','my_company','get_max_users','',callback)}
-pscript.myc_add_user=function(){var d=new wn.widgets.Dialog({title:'Add User',width:400,fields:[{fieldtype:'Data',fieldname:'user',reqd:1,label:'Email Id of the user to add'},{fieldtype:'Button',label:'Add',fieldname:'add'}]});d.make();d.fields_dict.add.input.onclick=function(){v=d.get_values();if(v){d.fields_dict.add.input.set_working();$c_page('my_company','my_company','add_user',v,function(r,rt){if(r.exc){msgprint(r.exc);return;}
-else{d.hide();pscript.myc_refresh();}})}}
-d.show();}
-pscript.myc_refresh=function(){page_body.pages['My Company'].member_list.lst.run();}
-pscript.myc_make_list=function(wrapper){wrapper.member_list=new MemberList(wrapper)}
-pscript.get_fullname=function(uid){if(uid=='Administrator')return uid;return page_body.pages['My Company'].member_list.member_items[uid].fullname;}
-MemberList=function(parent){var me=this;this.profiles={};this.member_items={};this.role_objects={};this.cur_profile=null;this.list_wrapper=$a($td(parent.tab,0,0),'div','',{marginLeft:'11px'});this.profile_wrapper=$a($td(parent.tab,0,1),'div','layout_wrapper',{marginLeft:'0px',height:'100%'});this.no_user_selected=$a(this.profile_wrapper,'div','help_box',null,'Please select a user to view profile');this.make_search();if(pscript.online_users){this.make_list();}else{$c_page('event_updates','event_updates','get_online_users','',function(r,rt){pscript.online_users=r.message;me.make_list();})}}
-MemberList.prototype.make_search=function(){var me=this;this.search_area=$a(this.list_wrapper,'div','',{textAlign:'center',padding:'8px'});this.search_inp=$a(this.search_area,'input','',{fontSize:'14px',width:'80%'});this.search_inp.set_empty=function(){this.value='Search';$fg(this,'#888');}
-this.search_inp.onfocus=function(){$fg(this,'#000');if(this.value=='Search')this.value='';}
-this.search_inp.onchange=function(){if(!this.value)this.set_empty();}
-this.search_inp.set_empty();}
-MemberList.prototype.make_list=function(){var me=this;this.lst_area=$a(this.list_wrapper,'div');this.lst=new Listing('Profiles',1);this.lst.colwidths=['100%'];this.lst.opts.cell_style={padding:'0px'}
-this.lst.get_query=function(){var c1='';if(me.search_inp.value&&me.search_inp.value!='Search'){var c1=repl(' AND (first_name LIKE "%(txt)s" OR last_name LIKE "%(txt)s" OR name LIKE "%(txt)s")',{txt:'%'+me.search_inp.value+'%'});}
-this.query=repl("SELECT distinct ifnull(name,''), ifnull(concat_ws(' ', first_name, last_name),''), ifnull(messanger_status,''), ifnull(gender,''), ifnull(file_list,''), 0, enabled from tabProfile where docstatus != 2 AND name not in ('Guest','Administrator') %(cond)s ORDER BY name asc",{cond:c1});}
-this.lst.make(this.lst_area);this.lst.show_cell=function(cell,ri,ci,d){me.member_items[d[ri][0]]=new MemberItem(cell,d[ri],me);}
-this.lst.run();}
-MemberList.prototype.show_profile=function(uid,member_item){$dh(this.no_user_selected);if(!this.profiles[uid]){if(!member_item)member_item=this.member_items[uid];this.profiles[uid]=new MemberProfile(this.profile_wrapper,uid,member_item);}
-if(this.cur_profile)
-this.cur_profile.hide();this.profiles[uid].show();this.cur_profile=this.profiles[uid];}
-MemberItem=function(parent,det,mlist){var me=this;this.det=det;this.wrapper=$a(parent,'div');this.enabled=det[6];this.tab=make_table(this.wrapper,1,2,'100%',['20%','70%'],{padding:'4px',overflow:'hidden'});$y(this.tab,{tableLayout:'fixed',borderCollapse:'collapse'})
-this.is_online=function(){for(var i=0;i<pscript.online_users.length;i++){if(det[0]==pscript.online_users[i][0])return true;}}
-this.refresh_name_link=function(){$fg(this.name_link,'#00B');if(!this.is_online())
-$fg(this.name_link,'#444');if(!this.enabled)
-$fg(this.name_link,'#777');}
-this.set_image=function(){this.img=$a($td(this.tab,0,0),'img','',{width:'41px'});set_user_img(this.img,det[0],null,(det[4]?det[4].split(NEWLINE)[0].split(',')[1]:('no_img_'+(det[3]=='Female'?'f':'m'))));}
-this.set_details=function(){this.fullname=det[1]?det[1]:det[0];var div=$a($td(this.tab,0,1),'div','',{fontWeight:'bold',padding:'2px 0px'});this.name_link=$a(div,'span','link_type');this.name_link.innerHTML=this.fullname;this.name_link.onclick=function(){mlist.show_profile(me.det[0],me);}
-if(user==det[0]){var span=$a(div,'span','',{padding:'2px',marginLeft:'3px'});span.innerHTML='(You)'}
-var div=$a($td(this.tab,0,1),'div','',{color:'#777',fontSize:'11px'});div.innerHTML=det[0];var div=$a($td(this.tab,0,1),'div');this.working_img=$a(div,'img','',{display:'none'});this.working_img.src='images/ui/button-load.gif';this.refresh_name_link();}
-this.select=function(){$(this.wrapper).addClass('my-company-member-item-selected');}
-this.deselect=function(){$(this.wrapper).removeClass('my-company-member-item-selected');}
-this.set_image();this.set_details();if(user==det[0])me.name_link.onclick();}
-MemberProfile=function(parent,uid,member_item){this.parent=parent;this.uid=uid;this.member_item=member_item;var me=this;this.make=function(){this.wrapper=$a(this.parent,'div','',{display:'none'});this.tab=make_table(this.wrapper,3,2,'100%',['120px',null],{padding:'3px'});$y(this.tab,{tableLayout:'fixed'});this.make_image_and_bio();this.make_toolbar();this.make_message_list();}
-this.make_image_and_bio=function(){var rh=$td(this.tab,0,1);this.img=$a($td(this.tab,0,0),'img','',{width:'80px',marginLeft:'10px'});set_user_img(this.img,this.uid);this.name_area=$a(rh,'div','my-company-name-head');var div=$a(rh,'div','my-company-email');this.email_area=$a(div,'span');this.online_status_area=$a(div,'span','my-company-online-status');this.bio_area=$a(rh,'div','my-company-bio');this.toolbar_area=$a(rh,'div','my-company-toolbar');this.status_span=$a(this.toolbar_area,'span','',{marginRight:'7px'});}
-this.make_toolbar=function(){if(has_common(['Administrator','System Manager'],user_roles)){var roles_btn=$btn(this.toolbar_area,'Set Roles',function(){me.show_roles()},{marginRight:'3px'});var delete_btn=$btn(this.toolbar_area,'Delete User',function(){me.delete_user();},{marginRight:'3px'});}}
-this.show_roles=function(){if(!this.role_object)
-this.role_object=new RoleObj(this.uid);this.role_object.dialog.show();}
-this.delete_user=function(){var cp=locals['Control Panel']['Control Panel'];var d=new Dialog(400,200,'Delete User');d.make_body([['HTML','','Do you really want to remove '+this.uid+' from system?'],['Button','Delete']]);d.onshow=function(){this.clear_inputs();}
-d.widgets['Delete'].onclick=function(){this.set_working();var callback=function(r,rt){d.hide();if(r.exc){msgprint(r.exc);return;}
-pscript.myc_refresh()
-msgprint("User Deleted Successfully");}
-$c_page('my_company','my_company','delete_user',{'user':me.uid},callback);}
-d.show();}
-this.set_enable_button=function(){var me=this;var act=this.profile.enabled?'Disable':'Enable';if(this.status_button){this.status_button.innerHTML=act;}else{this.status_button=$btn(this.toolbar_area,act,function(){var callback=function(r,rt){locals['Profile'][me.profile.name].enabled=cint(r.message);me.status_button.done_working();me.refresh_enable_disable();}
-this.set_working();$c_page('my_company','my_company',this.innerHTML.toLowerCase()+'_profile',me.profile.name,callback);},null,null,1);}
-if(this.uid==user)$dh(this.status_button);else $di(this.status_button);}
-this.render=function(){this.profile=locals['Profile'][uid];scroll(0,0);if(cstr(this.profile.first_name)||cstr(this.profile.last_name)){this.fullname=cstr(this.profile.first_name)+' '+cstr(this.profile.last_name);}else{this.fullname=this.profile.name;}
-this.name_area.innerHTML=this.fullname;this.email_area.innerHTML=this.profile.name;this.online_status_area.innerHTML=(this.member_item.is_online()?'(Online)':'(Offline)')
-if(this.member_item.is_online()){$y(this.online_status_area,{color:'green'});}
-this.refresh_enable_disable();this.bio_area.innerHTML=this.profile.designation?('Designation: '+cstr(this.profile.designation)+'<br>'):'';this.bio_area.innerHTML+=this.profile.bio?this.profile.bio:'No bio';new MemberConversation(this.wrapper,this.profile.name,this.fullname);}
-this.refresh_enable_disable=function(){this.profile=locals['Profile'][this.uid]
-if(!this.profile.enabled){$fg(this.name_area,'#999');}else{$fg(this.name_area,'#000');}
-this.member_item.enabled=this.profile.enabled;this.member_item.refresh_name_link();this.status_span.innerHTML=this.profile.enabled?'Enabled':'Disabled';if(has_common(['Administrator','System Manager'],user_roles)){this.set_enable_button();}}
-this.load=function(){if(locals['Profile']&&locals['Profile'][uid]){this.render();return;}
-var callback=function(r,rt){$dh(me.member_item.working_img);$ds(me.wrapper);me.loading=0;me.render();}
-$ds(this.member_item.working_img);$dh(this.wrapper);this.loading=1;$c('webnotes.widgets.form.getdoc',{'name':this.uid,'doctype':'Profile','user':user},callback);}
-this.show=function(){if(!this.loading)$ds(this.wrapper);this.member_item.select();}
-this.hide=function(){$dh(this.wrapper);this.member_item.deselect();}
-this.make_message_list=function(){}
-this.make();this.load();}
-MemberConversation=function(parent,uid,fullname){var me=this;this.wrapper=$a(parent,'div','my-company-conversation');this.fullname=fullname;this.make=function(){if(user!=uid){this.make_input();}
-this.make_list();if(user==uid){$c_page('my_company','my_company','set_read_all_messages','',function(r,rt){});}}
-this.make_input=function(){this.input_wrapper=$a(this.wrapper,'div','my-company-input-wrapper');var tab=make_table(this.input_wrapper,1,2,'100%',['64%','36%'],{padding:'3px'})
-this.input=$a($td(tab,0,0),'textarea');$(this.input).add_default_text('Send a message to '+fullname);var div=$a(this.input_wrapper,'div');this.post=$btn(div,'Post'.bold(),function(){me.post_message();},{margin:'0px 13px 0px 3px'})
-this.post.set_disabled();this.input.onkeyup=this.input.onchange=function(){if(this.value){me.post.set_enabled();}else{me.post.set_disabled();}}
-this.notify_check=$a_input(div,'checkbox',null);$a(div,'span','',{marginLeft:'3px'},'Notify '+fullname+' by email')}
-this.post_message=function(){if(me.input.value==$(me.input).attr('default_text')){msgprint('Please write a message first!');return;}
-this.post.set_working();$c_page('my_company','my_company','post_comment',{uid:uid,comment:$(me.input).val(),notify:me.notify_check.checked?1:0},function(r,rt){$(me.input).val("").blur();me.post.done_working();if(r.exc){msgprint(r.exc);return;}
-me.notify_check.checked=false;me.refresh();})}
-this.make_list=function(){this.lst_area=$a(this.wrapper,'div','my-company-conversation',{padding:'7px 13px'});if(user==uid){this.my_messages_box=$a(this.lst_area,'div','my-company-conversation-head',{marginBottom:'7px'},'Messages by everyone to me<br>To send a message, click on the user on the left')}
-this.lst=new wn.widgets.Listing({parent:this.lst_area,no_result_message:(user==uid?'No messages by anyone yet':'No messages yet. To start a conversation post a new message'),get_query:function(){if(uid==user){return repl("SELECT comment, owner, comment_docname, creation, docstatus "+"FROM `tabComment Widget Record` "+"WHERE comment_doctype='My Company' "+"AND comment_docname='%(user)s' "+"ORDER BY creation DESC ",{user:user});}else{return repl("SELECT comment, owner, comment_docname, creation, docstatus "+"FROM `tabComment Widget Record` "+"WHERE comment_doctype='My Company' "+"AND ((owner='%(user)s' AND comment_docname='%(uid)s') "+"OR (owner='%(uid)s' AND comment_docname='%(user)s')) "+"ORDER BY creation DESC ",{uid:uid,user:user});}},render_row:function(parent,data){new MemberCoversationComment(parent,data,me);},})
-this.refresh();}
-this.refresh=function(){me.lst.run()}
-this.make();}
-MemberCoversationComment=function(cell,det,conv){var me=this;this.det=det;this.wrapper=$a(cell,'div','my-company-comment-wrapper');this.comment=$a(this.wrapper,'div','my-company-comment');this.user=$a(this.comment,'span','link_type',{fontWeight:'bold'},pscript.get_fullname(det[1]));this.user.onclick=function(){page_body.pages['My Company'].member_list.show_profile(me.det[1]);}
-var st=(!det[4]?{fontWeight:'bold'}:null);this.msg=$a(this.comment,'span','social',st,': '+det[0]);if(det[1]==user){$y(this.wrapper,{backgroundColor:'#D9D9F3'});}
-this.timestamp=$a(this.wrapper,'div','my-company-timestamp','',comment_when(det[3]));}
-pscript.all_roles=null;RoleObj=function(profile_id){this.roles_dict={};this.profile_id=profile_id;this.setup_done=0;var d=new Dialog(500,500,'Assign Roles');d.make_body([['HTML','roles']]);this.dialog=d;this.make_role_body(profile_id);this.make_help_body();this.body.innerHTML='<span style="color:#888">Loading...</span> <img src="images/ui/button-load.gif">'
-var me=this;d.onshow=function(){if(!me.setup_done)
-me.get_all_roles(me.profile_id);}}
-RoleObj.prototype.make_role_body=function(id){var me=this;var d=this.dialog;this.role_div=$a(d.widgets['roles'],'div');this.head=$a(this.role_div,'div','',{marginLeft:'4px',marginBottom:'4px',fontWeight:'bold'});this.body=$a(this.role_div,'div');this.footer=$a(this.role_div,'div');this.update_btn=$btn(this.footer,'Update',function(){me.update_roles(me.profile_id);},{marginRight:'4px'},'',1);}
-RoleObj.prototype.make_help_body=function(){var me=this;var d=this.dialog;this.help_div=$a(d.widgets['roles'],'div');var head=$a(this.help_div,'div');this.help_div.head=head;var body=$a(this.help_div,'div');this.help_div.body=body;var tail=$a(this.help_div,'div');this.help_div.tail=tail;var back_btn=$btn(tail,'Back',function(){$(me.role_div).slideToggle('medium');$(me.help_div).slideToggle('medium');});this.help_div.back_btn=back_btn;$dh(this.help_div);}
-RoleObj.prototype.get_all_roles=function(id){if(pscript.all_roles){this.make_roles(id);return;}
-var me=this;var callback=function(r,rt){pscript.all_roles=r.message;me.make_roles(id);}
-$c_obj('Company Control','get_all_roles','',callback);}
-RoleObj.prototype.make_roles=function(id){var me=this;var list=pscript.all_roles;me.setup_done=1;me.body.innerHTML='';var tbl=make_table(me.body,cint(list.length/2)+1,4,'100%',['5%','45%','5%','45%'],{padding:'4px'});var in_right=0;var ridx=0;for(i=0;i<list.length;i++){var cidx=in_right*2;me.make_checkbox(tbl,ridx,cidx,list[i]);me.make_label(tbl,ridx,cidx+1,list[i]);if(in_right){in_right=0;ridx++}else in_right=1;}
-me.get_user_roles(id);}
-RoleObj.prototype.make_checkbox=function(tbl,ridx,cidx,role){var me=this;var a=$a_input($a($td(tbl,ridx,cidx),'div'),'checkbox');a.role=role;me.roles_dict[role]=a;$y(a,{width:'20px'});$y($td(tbl,ridx,cidx),{textAlign:'right'});}
-RoleObj.prototype.make_label=function(tbl,ridx,cidx,role){var me=this;var t=make_table($td(tbl,ridx,cidx),1,2,null,['16px',null],{marginRight:'5px'});var ic=$a($td(t,0,0),'img','',{cursor:'pointer',marginRight:'5px'});ic.src='images/icons/help.gif';ic.role=role;ic.onclick=function(){me.get_permissions(this.role);}
-$td(t,0,1).innerHTML=role;}
-RoleObj.prototype.get_user_roles=function(id){var me=this;me.head.innerHTML='Roles for '+id;$ds(me.role_div);$dh(me.help_div);var callback=function(r,rt){me.set_user_roles(r.message);}
-$c_obj('Company Control','get_user_roles',id,callback);}
-RoleObj.prototype.set_user_roles=function(list){var me=this;for(d in me.roles_dict){me.roles_dict[d].checked=0;}
-for(l=0;l<list.length;l++){me.roles_dict[list[l]].checked=1;}}
-RoleObj.prototype.update_roles=function(id){var me=this;if(id==user&&has_common(['System Manager'],user_roles)&&!me.roles_dict['System Manager'].checked){var callback=function(r,rt){if(r.message){if(r.message>1){var c=confirm("You have unchecked the System Manager role.\nYou will lose administrative rights and will not be able to set roles.\n\nDo you want to continue anyway?");if(!c)return;}
-else{var c="There should be atleast one user with System Manager role.";me.roles_dict['System Manager'].checked=1;}}
-me.set_roles(id);}
-$c_obj('Company Control','get_sm_count','',callback);}
-else{me.set_roles(id);}}
-RoleObj.prototype.set_roles=function(id){var me=this;var role_list=[];for(d in me.roles_dict){if(me.roles_dict[d].checked){role_list.push(d);}}
-var callback=function(r,rt){me.update_btn.done_working();me.dialog.hide();}
-var arg={'usr':id,'role_list':role_list};me.update_btn.set_working();$c_obj('Company Control','update_roles',docstring(arg),callback);}
-RoleObj.prototype.get_permissions=function(role){var me=this;var callback=function(r,rt){$(me.help_div).slideToggle('medium');$(me.role_div).slideToggle('medium');me.set_permissions(r.message,role);}
-$c_obj('Company Control','get_permission',role,callback);}
-RoleObj.prototype.set_permissions=function(perm,role){var me=this;me.help_div.body.innerHTML='';if(perm){me.help_div.head.innerHTML='Permissions for '+role+':<br><br>';perm_tbl=make_table(me.help_div.body,cint(perm.length)+2,7,'100%',['30%','10%','10%','10%','10%','10%','10%'],{padding:'4px'});var head_lst=['Document','Read','Write','Create','Submit','Cancel','Amend'];for(var i=0;i<(head_lst.length-1);i++){$td(perm_tbl,0,i).innerHTML="<b>"+head_lst[i]+"</b>";}
-var accept_img1='images/icons/accept.gif';var cancel_img1='images/icons/cancel.gif';for(i=1;i<perm.length+1;i++){$td(perm_tbl,i,0).innerHTML=get_doctype_label(perm[i-1][0]);for(var j=1;j<(head_lst.length-1);j++){if(perm[i-1][j]){var accept_img=$a($td(perm_tbl,i,j),'img');accept_img.src=accept_img1;}
-else{var cancel_img=$a($td(perm_tbl,i,j),'img');cancel_img.src=cancel_img1;}
-$y($td(perm_tbl,i,j),{textAlign:'center'});}}}
-else
-me.help_div.head.innerHTML='No Permission set for '+role+'.<br><br>';}
\ No newline at end of file
diff --git a/my_company/page/my_company/my_company.txt b/my_company/page/my_company/my_company.txt
deleted file mode 100644
index 4977ac9..0000000
--- a/my_company/page/my_company/my_company.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'creation': '2010-06-29 12:40:20', 'module': 'My Company', 'doctype': 'Page', 'owner': 'Administrator', 'style': '', 'modified_by': 'Administrator', 'script': None, 'show_in_menu': 1, 'content': None, 'page_name': 'My Company', 'menu_index': None, 'docstatus': 0, 'parent': None, 'standard': 'Yes', 'icon': None, 'name': 'My Company', 'idx': None, 'static_content': None, 'modified': '2010-12-01 17:09:46', 'parenttype': None, 'parent_node': None, 'parentfield': None}, {'modified_by': 'Administrator', 'name': 'PR000143', 'parent': 'My Company', 'creation': '2010-06-29 16:40:26', 'modified': '2010-12-01 17:09:46', 'doctype': 'Page Role', 'idx': 1, 'parenttype': 'Page', 'role': 'Administrator', 'owner': 'Administrator', 'docstatus': 0, 'parentfield': 'roles'}, {'modified_by': 'Administrator', 'name': 'PR000153', 'parent': 'My Company', 'creation': '2010-08-06 20:18:55', 'modified': '2010-12-01 17:09:46', 'doctype': 'Page Role', 'idx': 2, 'parenttype': 'Page', 'role': 'All', 'owner': 'nabin@webnotestech.com', 'docstatus': 0, 'parentfield': 'roles'}]
\ No newline at end of file
diff --git a/patches/patch.py b/patches/patch.py
index 0ab6912..9b9255b 100644
--- a/patches/patch.py
+++ b/patches/patch.py
@@ -1,6 +1,6 @@
 # REMEMBER to update this
 # ========================
-last_patch = 276
+last_patch = 277
 
 #-------------------------------------------
 
@@ -1097,3 +1097,15 @@
 		for d in sn:
 			delete_doc('Search Criteria', d[0])
 		reload_doc('crm', 'search_criteria', 'sales_personwise_transaction_summary')
+	elif patch_no == 277:
+		webnotes.model.delete_doc('DocType','HomePage Settings')
+		webnotes.model.delete_doc('DocType','Badge Settings')
+		sql("update tabDocType set module='Home' where module in ('Event Updates', 'My Company')")
+		sql("update tabPage set module='Home' where module in ('Event Updates', 'My Company')")
+		sql("update `tabSearch Criteria` set module='Home' where module in ('Event Updates', 'My Company')")
+
+
+		delete_pages = ('Chat User Gallery', 'Badge Info', 'Home', 'Website Setup', 'Test Page', 'Setup Masters', 'Service', 'Selling', 'Sales Reports', 'Organize','My Cart', 'My Activity', 'Manage Users', 'Maintenance', 'Getting Started', 'Gantt Test', 'Custom Reports - Stock', 'Custom Reports - Selling', 'Custom Reports - Production', 'Custom Reports - Payroll', 'Custom Reports - Maintenance', 'Custom Reports - Buying', 'Custom Reports - Accounts', 'CRM Setup', 'CRM Reports')
+		for p in delete_pages:
+		  webnotes.model.delete_doc('Page',p)
+		
\ No newline at end of file
diff --git a/srm/doctype/supplier/supplier.py b/srm/doctype/supplier/supplier.py
index af5b85a..e6db6c3 100644
--- a/srm/doctype/supplier/supplier.py
+++ b/srm/doctype/supplier/supplier.py
@@ -29,7 +29,8 @@
     if supp_master_name == 'Supplier Name':
     
       # filter out bad characters in name
-      supp = self.doc.supplier_name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','').replace('`','')
+      #supp = self.doc.supplier_name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','').replace('`','')
+      supp = self.doc.supplier_name
       
       cust = sql("select name from `tabCustomer` where name = '%s'" % (supp))
       cust = cust and cust[0][0] or ''
diff --git a/tools/doctype/address/address.py b/tools/doctype/address/address.py
index dc17743..eabf624 100644
--- a/tools/doctype/address/address.py
+++ b/tools/doctype/address/address.py
@@ -22,7 +22,7 @@
       self.doc.name = self.doc.sales_partner + '-' + self.doc.address_type
       
     # filter out bad characters in name
-    self.doc.name = self.doc.name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','').replace('`','')
+    #self.doc.name = self.doc.name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','').replace('`','')
 
 #----------------------
 # Call to Validate
diff --git a/tools/doctype/contact/contact.py b/tools/doctype/contact/contact.py
index 7498619..6d7c4c4 100644
--- a/tools/doctype/contact/contact.py
+++ b/tools/doctype/contact/contact.py
@@ -22,7 +22,7 @@
       self.doc.name = self.doc.first_name + (self.doc.last_name and ' ' + self.doc.last_name or '') + '-' + self.doc.sales_partner  
     
     # filter out bad characters in name
-    self.doc.name = self.doc.name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','')      
+    #self.doc.name = self.doc.name.replace('&','and').replace('.','').replace("'",'').replace('"','').replace(',','')      
 
 #----------------------
 # Call to Validate
