diff --git a/docs/docs.user.help.md b/docs/docs.user.help.md
index 41ba919..55d12d2 100644
--- a/docs/docs.user.help.md
+++ b/docs/docs.user.help.md
@@ -25,7 +25,7 @@
 
 ### 4. Buy Commercial Support / Hosting
 
-You can buy affordable hosting from Web Notes or buy commercial support where you get:
+You can buy affordable hosting from Web Notes or buy commercial support which offers:
 
 1. One-on-one sessions via screen sharing.
 1. Priority bug fixing
diff --git a/docs/docs.user.implement.concepts.md b/docs/docs.user.implement.concepts.md
index 447af31..ac481d4 100644
--- a/docs/docs.user.implement.concepts.md
+++ b/docs/docs.user.implement.concepts.md
@@ -11,7 +11,7 @@
 
 #### Company
 
-This represents the Company records for which ERPNext is setup. With the same setup, you can create multiple Company records, each representing a different legal entity. The accounting for each Company will be different, but they will share Customer, Supplier and Item records.
+This represents the Company records for which ERPNext is setup. With this same setup, you can create multiple Company records, each representing a different legal entity. The accounting for each Company will be different, but they will share the Customer, Supplier and Item records.
 
 > Setup > Company > Companies
 
@@ -35,7 +35,7 @@
 
 #### Account
 
-An Account is heading under which financial and business transactions are carried on. For example, “Travel Expense” is an account, “Customer Zoe”, “Supplier Mae” are accounts. ERPNext creates accounts for Customers and Suppliers automatically.
+An Account is a heading under which financial and business transactions are carried on. For example, “Travel Expense” is an account, “Customer Zoe”, “Supplier Mae” are accounts. ERPNext creates accounts for Customers and Suppliers automatically.
 
 > Accounts > Chart of Accounts
 
@@ -47,7 +47,7 @@
 
 #### Contact
 
-An individual Contact that belongs to a Customer or Supplier or is just independent. A Contact has name and contact details like email and phone number.
+An individual Contact belongs to a Customer or Supplier or is just an independent. A Contact has a name and contact details like email and phone number.
 
 > Selling > Contact
 
@@ -71,13 +71,13 @@
 
 #### Fiscal Year
 
-Represents a Financial Year or Accounting Year. You can operate multiple Fiscal Years at the same time. Each Fiscal Year has a start and end date and transactions can only be recorded in this period. When you “close” a fiscal year, its balances are transferred as “opening” balances for the next fiscal year.
+Represents a Financial Year or Accounting Year. You can operate multiple Fiscal Years at the same time. Each Fiscal Year has a start date and an end date and transactions can only be recorded in this period. When you “close” a fiscal year, it's balances are transferred as “opening” balances for the next fiscal year.
 
 > Setup > Company > Fiscal Years
 
 #### Cost Center
 
-A Cost Center is like an Account, but the only different is that its structure represents your business more closely than Accounts. For example in your Chart of Accounts, you separate your expenses by type (say travel, marketing etc). In your Chart of Cost Centers, you can separate them by product line or business group (for example online sales, retail sales)
+A Cost Center is like an Account, but the only difference is that it's structure represents your business more closely than Accounts. For example in your Chart of Accounts, you separate your expenses by type (say travel, marketing etc). In your Chart of Cost Centers, you can separate them by product line or business group (for example online sales, retail sales)
 
 > Accounts > Chart of Cost Centers
 
@@ -147,7 +147,7 @@
 
 #### Sales Person
 
-Someone who pitches the Customer and closes deals. You can set targets for Sales Persons and tag them in transactions.
+Someone who pitches to the Customer and closes deals. You can set targets for Sales Persons and tag them in transactions.
 
 > Selling > Setup > Sales Person
 
@@ -219,7 +219,7 @@
 
 #### Quality Inspection
 
-A note prepared to record certain parameters of an Item at time of Receipt from Supplier or Delivery to Customer.
+A note prepared to record certain parameters of an Item at the time of Receipt from Supplier, or Delivery to Customer.
 
 > Stock > Tools > Quality Inspection
 
@@ -277,7 +277,7 @@
 
 #### Appraisal Template
 
-A template recording the different parameters of Employee performance and their weights for a particular role.
+A template recording the different parameters of Employee performance and their weightage for a particular role.
 
 > Human Resources > Employee Setup > Appraisal Template
 
@@ -293,13 +293,13 @@
 
 #### Bill of Materials (BOM)
 
-A list of Operations and Items with their quantities that are required to produce another Item. A Bill of Materials (BOM) is used to plan purchases and do product costing.
+A list of Operations and Items with their quantities, that are required to produce another Item. A Bill of Materials (BOM) is used to plan purchases and do product costing.
 
 > Manufacturing > BOM
 
 #### Workstation
 
-A place where an BOM operation takes place. Is useful to calculate the direct cost of the product.
+A place where a BOM operation takes place. It is useful to calculate the direct cost of the product.
 
 > Manufacturing > Workstation
 
diff --git a/docs/docs.user.implement.md b/docs/docs.user.implement.md
index 2ba2dbd..f42d661 100644
--- a/docs/docs.user.implement.md
+++ b/docs/docs.user.implement.md
@@ -13,9 +13,9 @@
 
 Like exercise. 
 
-Human body does not require to be exercised today or maybe tomorrow, but in the long run, if you wish to maintain your body and its health, you should get on the treadmill.
+Human body may seem like it does not require exercise today or even tomorrow, but in the long run, if you wish to maintain your body and its health, you should get on the treadmill.
 
-In the same way, ERPs improve the health of your organization over a long run by keep it fit and efficient. The more you delay putting things in order, the more time you lose and the closer you get to a major disaster.
+In the same way, ERPs improve the health of your organization over a long run by keeping it fit and efficient. The more you delay putting things in order, the more time you lose, and the closer you get to a major disaster.
 
 So when you start implementing an ERP, keep your sight on the long term benefits. Like exercise, its painful in the short run, but will do wonders if you stay on course.
 
@@ -23,7 +23,7 @@
 
 ## The Champion
 
-ERP means organization wide change and it does not happen without effort. Every change requires a champion and its the duty of the champion to organize and energize the entire team towards implementation. The champion is all the fall guy (or fall gal) incase something goes wrong and hence needs to be resilient. Who becomes a champion without putting effort anyways?
+ERP means organization wide change and it does not happen without effort. Every change requires a champion and it is the duty of the champion to organize and energize the entire team towards implementation. The champion is all the fall guy (or fall gal) incase something goes wrong and hence needs to be resilient. Who becomes a champion without putting effort anyways?
 
 In many organizations we have seen, the champion is most often the owner or a senior manager. Occasionally, the champion is an outsider who is hired for the purpose.
 
diff --git a/docs/docs.user.implement.strategy.md b/docs/docs.user.implement.strategy.md
index 6675536..3abb91a 100644
--- a/docs/docs.user.implement.strategy.md
+++ b/docs/docs.user.implement.strategy.md
@@ -11,12 +11,12 @@
 
 - Read the Manual
 - Create your first Customer, Supplier and Item. Add a few more so you get familiar.
-- Create Customer Groups, Item Groups, Warehouses, Supplier Groups so that you can classify your Items.
+- Create Customer Groups, Item Groups, Warehouses, Supplier Groups, so that you can classify your Items.
 - Complete a standard sales cycle - Lead > Opportunity > Quotation > Sales Order > Delivery Note > Sales Invoice > Payment (Journal Voucher)
 - Complete a standard purchase cycle - Purchase Request > Purchase Order > Purchase Receipt > Payment (Journal Voucher).
 - Complete a manufacturing cycle (if applicable) - BOM > Production Planning Tool > Production Order > Stock Entry (issue) > Stock Entry (back-flush)
 
-> Tip: Use the 30-day free trial at [erpnext.com](https://erpnext.com) to do your test drive.
+> Tip: Use the 30-day free trial at [erpnext.com](https://erpnext.com) to take your test drive.
 
 ### Live Phase
 
