diff --git a/erpnext/accounts/custom/address.py b/erpnext/accounts/custom/address.py
new file mode 100644
index 0000000..433f9b2
--- /dev/null
+++ b/erpnext/accounts/custom/address.py
@@ -0,0 +1,31 @@
+import frappe
+from frappe.contacts.doctype.address.address import Address
+from frappe.contacts.address_and_contact import set_link_title
+from frappe.core.doctype.dynamic_link.dynamic_link import deduplicate_dynamic_links
+
+class CustomAddress(Address):
+	def validate(self):
+		self.link_address()
+		self.validate_reference()
+		super(CustomAddress, self).validate_preferred_address()
+		set_link_title(self)
+		deduplicate_dynamic_links(self)
+
+	def validate_reference(self):
+		if self.is_your_company_address:
+			if not [row for row in self.links if row.link_doctype == "Company"]:
+				frappe.throw(_("Address needs to be linked to a Company. Please add a row for Company in the Links table below."),
+					title =_("Company not Linked"))
+	
+	def link_address(self):
+		"""Link address based on owner"""
+		if not self.links and not self.is_your_company_address:
+			contact_name = frappe.db.get_value("Contact", {"email_id": self.owner})
+			if contact_name:
+				contact = frappe.get_cached_doc('Contact', contact_name)
+				print('here', str(contact))
+				for link in contact.links:
+					self.append('links', dict(link_doctype=link.link_doctype, link_name=link.link_name))
+				return True
+
+		return False
\ No newline at end of file
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index e47e460..fb93df8 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -27,6 +27,10 @@
 	"Newsletter": "public/js/newsletter.js"
 }
 
+override_doctype_class = {
+    'Address': 'erpnext.accounts.custom.address.CustomAddress'
+}
+
 welcome_email = "erpnext.setup.utils.welcome_email"
 
 # setup wizard
