Optimize docs (#88)

diff --git a/docs/configurations/admin.md b/docs/configurations/admin.md
index 0dffc61..c541338 100644
--- a/docs/configurations/admin.md
+++ b/docs/configurations/admin.md
@@ -2,17 +2,17 @@
 
 ### Configurations
 
-admin api server leverage protocol server, it listens on isolated port, by default admin is enabled, and default value of goRuntimeMetrics is false.
+Admin API server leverages protocol server, it listens on isolated port. By default admin is enabled, and default value of goRuntimeMetrics is false.
 
-To start api server, set protocol server config in chassis.yaml
+To start API server, set protocol server config in chassis.yaml:
 ```yaml
 cse:
    protocols:
      rest-admin:
-       listenAddress: 0.0.0.0:30102  # listen addr for adminAPI
+       listenAddress: 0.0.0.0:30102  # listen addr for admin API
 ```
 
-tune admin api in mesher.yaml
+Tune admin api in mesher.yaml:
 ```yaml
 admin: 
   enable: true
@@ -20,6 +20,6 @@
 
 
 **admin.enable**
->*(optional, bool)* default is false
+>*(optional, bool)* Default is false
 
 
diff --git a/docs/configurations/cli.md b/docs/configurations/cli.md
index 38c646e..8ff4c30 100644
--- a/docs/configurations/cli.md
+++ b/docs/configurations/cli.md
@@ -1,5 +1,5 @@
 # Mesher command Line 
-when you start mesher process, you can use mesher command line to specify configurations like below
+When you start a mesher process, you can use mesher command line to specify configurations as follows:
 ```shell
 mesher --config=mesher.yaml --service-ports=rest:8080
 ```
@@ -7,19 +7,19 @@
 
 ### Options
 
-
 **--config**
->*(optional, string)* the path to mesher configuration file, default value is {current_bin_work_dir}/conf/mesher.yaml
 
+>*(optional, string)* The path to mesher configuration file, default value is {current_bin_work_dir}/conf/mesher.yaml
 
 **--mode**
->*(optional, string)* mesher has 2 work mode, sidecar and edge, default is sidecar
 
+>*(optional, string)* Mesher has 2 work modes, sidecar and edge, default is sidecar
 
 **--service-ports**
->*(optional, string)* running as sidecar, mesher need to know local service ports, 
+
+>*(optional, string)* Running as sidecar, mesher needs to know local service ports, 
 this is to tell mesher service port list, 
-The value format is {protocol}-{suffix} or {protocol}
-if service has multiple protocol, you can separate with comma "rest-admin:8080,grpc:9000". 
-default is empty, in that case mesher will use header X-Forwarded-Port as local service port, 
-if it is empty also mesher can not communicate to your local service
+The value format is {protocol}-{suffix} or {protocol}. 
+If service has multiple protocols, you can separate with comma "rest-admin:8080, grpc:9000", 
+default is empty. In that case mesher will use header X-Forwarded-Port as local service port, 
+if header X-Forwarded-Port is also empty, mesher can not communicate to your local service.
diff --git a/docs/configurations/destination_resolver.md b/docs/configurations/destination_resolver.md
index 4b2712d..dff8f3e 100644
--- a/docs/configurations/destination_resolver.md
+++ b/docs/configurations/destination_resolver.md
@@ -1,11 +1,11 @@
 # Destination Resolver
 
 Destination Resolver is a module to parse each protocol request to get a target service name. 
-you can write your own resolver implementation for different protocol.
+You can write your own resolver implementation for different protocols.
 
 ## Configurations
 
-example
+Example:
 ```yaml
 plugin:
   destinationResolver:
@@ -16,5 +16,6 @@
 
 
 **plugin.destinationResolver**
->*(optional, map)* here you can define what kind of resolver, a protocol should use
+
+>*(optional, map)* Define what kind of resolver, a protocol should use
 
diff --git a/docs/configurations/edge.md b/docs/configurations/edge.md
index 9076689..bd175b9 100644
--- a/docs/configurations/edge.md
+++ b/docs/configurations/edge.md
@@ -1,39 +1,41 @@
 # API gateway
-mesher is able to work as a API gateway to mange traffic,to run mesher as an API gateway
+Mesher is able to work as a API gateway to mange traffic, to run mesher as an API gateway:
 ```shell
 mesher --config=mesher.yaml --mode edge
 ```
-the ingress rule is in mesher.yaml
+The ingress rule is in mesher.yaml.
 
 ### Options
 
 **mesher.ingress.type**
->*(optional, string)* default is servicecomb, it reads servicecomb ingress rule. 
->it is a plugin, you can custom your own implementation
-
+>*(optional, string)* Default is servicecomb, it reads servicecomb ingress rule. 
+>It is a plugin, you can custom your own implementation.
 
 **mesher.ingress.rule.http**
->*(optional, string)* rule about how to forward http traffic. it holds a yaml content as rule.
 
-below explain the content, the rule list is like a filter, all the request will go through this rule list until match one rule.
+>*(optional, string)* Rule about how to forward http traffic. It holds a yaml content as rule.
+
+
+
+Below explaining the content, the rule list is like a filter, all the request will go through this rule list until matching one rule.
 
 **apiPath**
->*(required, string)* if request's url match this, it will use this rule
+
+>*(required, string)* If request's url matches this, it will use this rule.
 
 **host**
->*(optional, string)* if request HOST match this, mesher will use this rule, it can be empty, 
->if you set both host and apiPath, the request's host and api path must match them at the same time
+>*(optional, string)* If request HOST matches this, mesher will use this rule. It can be empty. 
+>If you set both host and apiPath, the request's host and api path must match them both.
 >
 **service.name**
->*(required, string)* target backend service name in registry service(like ServiceComb service center)
+>*(required, string)* Target back-end service name in registry service (like ServiceComb service center).
 >
 **service.redirectPath**
->*(optional, string)* by default, mesher use original request's url
+>*(optional, string)* By default, mesher uses original request's url.
 >
 **service.port.value**
->*(optional, string)* if you use java chassis or go chassis to develop backend service, no need to set it. 
->but if your backend service use mesher-sidecar, you must give your service port here.
->
+>*(optional, string)* If using java chassis or go chassis to develop back-end service, no need to set it. 
+>But if back-end service uses mesher-sidecar, service port must be given here.
 ### example
 ```yaml
 mesher:
@@ -59,15 +61,15 @@
 
 
 ### Enable TLS
-generate private key
+Generate private key
 ```sh
 openssl genrsa -out server.key 2048
 ```
-sign cert with private key
+Sign cert with private key
 ```shell script
 openssl req -new -x509 -key server.key -out server.crt -days 3650
 ```
-set file path in chassis.yaml
+Set file path in chassis.yaml
 ```yaml
 ssl:
   mesher-edge.rest.Provider.certFile: server.crt
diff --git a/docs/configurations/health.md b/docs/configurations/health.md
index 99792ce..12aeca8 100644
--- a/docs/configurations/health.md
+++ b/docs/configurations/health.md
@@ -1,45 +1,49 @@
 # Local Health check
-you can use health checker to check local service health,
-when service instance is not healthy, mesher will update the instance status in registry service to "DOWN" 
-so that other service
-can not discover this instance. If the service is healthy again, mesher will update status to "UP", 
+You can use health checker to check local service health. 
+When service instance is unhealthy, mesher will update the instance status in registry service to "DOWN" 
+so that other services
+can not discover this instance. After the service becoming healthy again, mesher will update the status to "UP", 
 then other instance can discover it again. 
-currently this function works only when you use service center as registry
+Currently this function works only when using service center as registry.
 
-examples:
+Examples:
 
-Check local http service
-```yaml
-localHealthCheck:
-  - port: 8080
-    protocol: rest
-    uri: /health
-    interval: 30s
-    match:
-      status: 200
-      body: ok
-```
+- Check local http service
+
+  ```yaml
+  localHealthCheck:
+    - port: 8080
+      protocol: rest
+      uri: /health
+      interval: 30s
+      match:
+        status: 200
+        body: ok
+  ```
 
 ### Options
 
-
 **port**
->*(require, string)* must be a port number, mesher is only responsible to check local service, 
-it use 127.0.0.1:{port} to check service
+
+>*(require, string)* Must be a port number, mesher is only responsible to check local services, 
+it use 127.0.0.1:{port} to check services.
 
 **protocol**
->*(optional, string)* mesher has a built-in checker "rest",for other protocol, 
-will use default TCP checker unless you implement your own checker
+
+>*(optional, string)* Mesher has a built-in checker "rest",for other protocols, 
+will use default TCP checker unless implementing your own checker.
 
 **uri**
->*(optional, string)* uri start with /.
+
+>*(optional, string)* Uri start with /.
 
 
 **interval**
->*(optional, string)* check interval, you can use number with unit: 1m, 10s. 
+>*(optional, string)* Check interval, you can use number with unit: 1m, 10s. 
 
 **match.status**
->*(optional, string)* the http response status must match status code
+>*(optional, string)* The http response status must match status code.
 
 **match.body**
->*(optional, string)* the http response body must match body
\ No newline at end of file
+
+>*(optional, string)* The http response body must match body.
\ No newline at end of file
diff --git a/docs/configurations/profiling.md b/docs/configurations/profiling.md
index 1f3a6fe..41caca9 100644
--- a/docs/configurations/profiling.md
+++ b/docs/configurations/profiling.md
@@ -1,6 +1,6 @@
 # Profile Mesher
 
-Mesher has a convenience way to enable go pprof, so that you can easily analyze the performance of mesher
+Mesher has a convenience way to enable go [pprof]( https://golang.org/pkg/net/http/pprof/ ), so that you can easily analyze the performance of mesher.
 
 ## Configurations
 
@@ -10,11 +10,11 @@
   listen: 127.0.0.0.1:6060
 ```
 
-
-
 **enable**
->*(optional, bool)* default is false
+>*(optional, bool)* Default is false
 
 
 **listen**
->*(optional, string)* Listen IP and port
\ No newline at end of file
+
+>*(optional, string)* Listen IP and port
+
diff --git a/docs/development/build.md b/docs/development/build.md
index 0454d44..ecf9d54 100644
--- a/docs/development/build.md
+++ b/docs/development/build.md
@@ -1,7 +1,7 @@
 # Build mesher
-you need to build and release your mesher after the customization
+You need to build and release your mesher after customization.
 
 ### Build binary
-you can refer to build/build_proxy to see how we build mesher binary and docker image.
+You can refer to build/build_proxy to see how we build mesher binary and docker image.
 
-build/docker/proxy/Dockerfile is a example about how to make a docker image
\ No newline at end of file
+build/docker/proxy/Dockerfile is a example about making a docker image
\ No newline at end of file
diff --git a/docs/development/cloud-provider.md b/docs/development/cloud-provider.md
index f464ac8..6432a92 100644
--- a/docs/development/cloud-provider.md
+++ b/docs/development/cloud-provider.md
@@ -1,28 +1,29 @@
 # Cloud Provider
 By default Mesher do not support any cloud provider.
-But there is plugin that helps mesher to do it.
+But there is plugin that helps mesher do it.
 
 ### Huawei Cloud 
 Mesher is able to use huawei cloud ServiceComb engine. 
 #### Access ServiceComb Engine API
-import auth in cmd/mesher/mesher.go
+Import auth in cmd/mesher/mesher.go
 ```go
 import _ "github.com/huaweicse/auth/adaptor/gochassis"
 ```
 
-it will sign all requests between mesher to ServiceComb Engine.
+It will sign all requests from mesher to ServiceComb Engine.
 
 #### Use Config Center to manage configuration
-Mesher use servicecomb-kie as config server, 
+Mesher uses servicecomb-kie as config server, 
 ```go
-_ "github.com/go-chassis/go-chassis-config/servicecombkie"
+_ "github.com/apache/servicecomb-kie"
 ```
-when you need to use ServiceComb Engine, you must replace this line. 
-import config center in cmd/mesher/mesher.go.
+When you need to use ServiceComb Engine, you must replace this line. 
+Import config center in cmd/mesher/mesher.go.
+
 ```go
 _ "github.com/go-chassis/go-chassis-config/configcenter"
 ```
-set the config center in chassis.yaml
+Set the config center in chassis.yaml
 ```yaml
   config:
     client:
diff --git a/docs/development/handler-chain.md b/docs/development/handler-chain.md
index 4960583..d97eb4f 100644
--- a/docs/development/handler-chain.md
+++ b/docs/development/handler-chain.md
@@ -1,23 +1,24 @@
 # Handler chain
-all the traffic will go through the handler chain.
+All the traffic will go through the handler chain.
 A chain is composite of handlers, each handler has a particular logic.
-Mesher also has a lots of feature working in chain, like route management, circuit breaking, rate-limiting.
-In Summary, handler is the middle ware between client and servers, 
-it is useful, when you want to add authorization to intercept illegal requests.
+Mesher also has lots of feature working in chain, like route management, circuit breaking  and rate-limiting.
+In Summary, handler is the middle ware between clients and servers, 
+it is useful when adding authorization to intercept illegal requests.
 
 ### How to write a handler
 https://docs.go-chassis.com/dev-guides/how-to-implement-handler.html
 
 ### How to use it in handler chain
-in chassis.yaml add your handler name in chain configuration.
-as side car and API gateway, mesher's chain has different meaning.
+In chassis.yaml add your handler name in chain configuration.
+As sidecar and API gateway, mesher's chain has different meanings.
 
 For example, running as mesher-sidecar, service A call another service B, 
-outgoing chain process all the service A requests before remote call, 
-incoming chain process all the requests from service A, before access to service B API. 
+outgoing chain of service A processes all the service A requests before remote call, 
+incoming chain of service B processes all the requests from service A, before access to service B API. 
 
-In summary outgoing chain works when a service attempt to call other services, 
-incoming chain works when other services call this service
+In summary, outgoing chain works when a service attempt to call other services, 
+incoming chain works when other services call this service.
+
 ```yaml
   handler:
     chain:
@@ -28,9 +29,10 @@
         incoming: ratelimiter-provider
 ```
 
-running as API gateway, 
-incoming chain process all the requests from the external network, 
-outgoing chain process all the the request between API gateway and backend services
+Running as API gateway, 
+incoming chain processes all the requests from the external network, 
+outgoing chain processes all the the requests between API gateway and back-end services.
+
 ```yaml
   handler:
     chain:
diff --git a/docs/getstarted/install.md b/docs/getstarted/install.md
index 4ad1897..8a70426 100644
--- a/docs/getstarted/install.md
+++ b/docs/getstarted/install.md
@@ -2,47 +2,48 @@
 
 ### Local
 In this case, you will launch one mesher sidecar proxy and 
-one service developed based on go-chassis as provider
+one service developed with go-chassis as provider
 and use curl as a dummy consumer to access this service
 
-the network traffic: curl->mesher->service
+The network traffic: curl->mesher->service
 
+1. Install ServiceComb [service-center](https://github.com/apache/incubator-servicecomb-service-center/releases)
 
-1.Install ServiceComb [service-center](https://github.com/apache/incubator-servicecomb-service-center/releases)
+2. Install [go-chassis](https://go-chassis.readthedocs.io/en/latest/getstarted/install.html) and 
+   run [rest server](https://github.com/go-chassis/go-chassis/tree/master/examples/rest/server)
 
-2.Install [go-chassis](https://go-chassis.readthedocs.io/en/latest/getstarted/install.html) and 
-run [rest server](https://github.com/go-chassis/go-chassis/tree/master/examples/rest/server)
+3. Build and run, use go mod(go 1.11+, experimental but a recommended way)
 
-2. Build and run, use go mod(go 1.11+, experimental but a recommended way)
-```shell
-cd mesher
-GO111MODULE=on go mod download
-#optional
-GO111MODULE=on go mod vendor
-go build mesher.go
-./mesher
-```
+   ```shell
+   cd mesher
+   GO111MODULE=on go mod download
+   #optional
+   GO111MODULE=on go mod vendor
+   go build mesher.go
+   ./mesher
+   ```
 
- 
-4.verify, in this case curl command is the consumer, mesher is consumer's sidecar, 
-and rest server is provider
-```shell
-export http_proxy=http://127.0.0.1:30101
-curl http://RESTServer:8083/sayhello/peter
-```
+4. Verify, in this case curl command is the consumer, mesher is consumer's sidecar, 
+   and rest server is provider
+
+   ```shell
+   export http_proxy=http://127.0.0.1:30101
+   curl http://RESTServer:8083/sayhello/peter
+   ```
 
 **Notice**:
+
 >>You don't need to set service registry in chassis.yaml, 
 because by default registry address is 127.0.0.1:30100, 
 just same service center default listen address.
 
 >>curl command read lower case http_proxy environment variable.
 
-### Run on different infrastructure
+### Run on different infrastructures
 
-Mesher does not bind to any platform or infrastructures, plz refer to 
+Mesher does not bind to any platform or infrastructure, please refer to 
 https://github.com/go-mesh/mesher-examples/tree/master/Infrastructure
-to know how to run mesher on different infra
+to know how to run mesher on different infrastructures
 
 ### Sidecar injector
 Mesher supply a way to automatically inject mesher configurations in kubernetes
diff --git a/docs/getstarted/minimum.md b/docs/getstarted/minimum.md
index 6791a50..8bcc0e6 100644
--- a/docs/getstarted/minimum.md
+++ b/docs/getstarted/minimum.md
@@ -11,17 +11,18 @@
 
 1. Give mesher your service name in microservice.yaml file 
 2. Set service discovery service(service center, Istio etc) configurations in chassis.yaml
-3. export HTTP_PROXY=http://127.0.0.1:30101 as your service runtime environment
-4. (optional)Give mesher your service port list by ENV SERVICE_PORTS or CLI --service-ports
+3. Export HTTP_PROXY=http://127.0.0.1:30101 as your service runtime environment
+4. (optional) Give mesher your service port list by ENV SERVICE_PORTS or CLI --service-ports
 
 
-After the configurations, assume you serviceB is listening at 127.0.0.1:8080
+After the configurations, assume you serviceB is listening at 127.0.0.1:8080.
 
-the serviceA must use http://ServiceB:8080/{api_path} to access ServiceB
+The serviceA must use http://ServiceB:8080/{api_path} to access ServiceB.
 
-Now you can launch as many as serviceA and serviceB to make this system become a distributed system
+Now you can launch as many as serviceA and serviceB to make this system become a distributed system.
 
 **Notice**:
- >> consumer need to use http://provider_name:provider_port/ to access provider,
+
+ >> Consumer need to use http://provider_name:provider_port/ to access provider,
  instead of http://provider_ip:provider_port/. 
- if you choose to set step4, then you can simply use http://provider_name/ to access provider
\ No newline at end of file
+ if you choose to set step4, then you can simply use http://provider_name/ to access provider.
\ No newline at end of file
diff --git a/docs/intro/concepts.md b/docs/intro/concepts.md
index 114227f..1a0801b 100644
--- a/docs/intro/concepts.md
+++ b/docs/intro/concepts.md
@@ -1,7 +1,7 @@
 # Concepts
 
 ### Sidecar
-Mesher leverage 
+Mesher leverages 
 [distributed design pattern, sidecar](https://kubernetes.io/blog/2015/06/the-distributed-system-toolkit-patterns/) 
 to work along with service. 
 
@@ -10,15 +10,15 @@
 so it has the same [concepts](http://go-chassis.readthedocs.io/en/latest/intro/concepts.html) with it 
 and it has all features of go chassis
 
-### DestinationResolver
+### Destination Resolver
 
-Destination Resolver parse request into a service name
+Destination Resolver parses request into a service name
 
 ### Source Resolver
 
-source resolver get remote IP and based on remote IP, it 
+Source resolver gets remote IP and based on remote IP, it provides a standard way for the applications to create media sources.
 
 ### Admin API
 
-Listen on isolated port, it gives a way to interact with mesher
+Admin API listens on isolated port, it gives a way to interact with mesher
 
diff --git a/docs/intro/what-is.md b/docs/intro/what-is.md
index d0987dc..87ba37a 100644
--- a/docs/intro/what-is.md
+++ b/docs/intro/what-is.md
@@ -6,5 +6,5 @@
 So it has all the [features](http://go-chassis.readthedocs.io/en/latest/intro/features.html) 
 of go chassis like service discovery, 
 load balancing, fault tolerance, route management,distributed tracing etc.
-it makes your service become resilience and observable 
+it makes your service become resilient and observable.
 
diff --git a/docs/istio/egress.md b/docs/istio/egress.md
index 5a4ce8a..272fb55 100644
--- a/docs/istio/egress.md
+++ b/docs/istio/egress.md
@@ -1,32 +1,36 @@
 # Egress
 ## Introduction
 
-Mesher support Egress for your service, so that you can access any publicly accessible service from your microservice.
- 
+Mesher support Egress for your service, so that you can access any publicly accessible services from your microservices.
+
 ## Configuration
 
-The egress related configurations is all in egress.yaml.
+The egress related configurations are all in egress.yaml.
 
 **infra**
-> *(optional, string)* specifies from where the egress configuration need to be taken supports two values cse or pilot ,
-      cse means the egress configuration from egress.yaml file,
-      pilot means egress configuaration are taken from pilot of istio,
-      default is *cse*
-      
+
+> *(optional, string)* Specifies from where the egress configuration need to be taken supports two values CSE or pilot ,
+      CSE means the egress configurations from egress.yaml file,
+      pilot means egress configurations are taken from pilot of Istio,
+      default is *CSE*.
+
 **address**
+
 > *(optional, string)* The end point of pilot from which configuration need to be fetched.
 
 **hosts**
-> *(optional, []string)* host associated with external service, could be a DNS name with wildcard prefix
+> *(optional, []string)* Host associated with external service, could be a DNS name with wildcard prefix.
 
 **ports.port**
-> *(optional, int)* The port associated with the external service, default is *80*
+
+> *(optional, int)* The port associated with the external service, default is *80*.
 
 **ports.protocol**
-> *(optional, int)* The protocol associated with the external service,supports only http default is *HTTP*
 
-## example
-edit egress.yaml
+> *(optional, int)* The protocol associated with the external service, supports only HTTP, default is *HTTP*.
+
+## Example
+Edit egress.yaml
 
 ```yaml
 egress:
diff --git a/docs/istio/getstarted.md b/docs/istio/getstarted.md
index 84feb8e..66e1c76 100644
--- a/docs/istio/getstarted.md
+++ b/docs/istio/getstarted.md
@@ -19,7 +19,7 @@
         address: grpc://istio-pilot.istio-system:15010
 ```
 
-Since mesher doesn't have to register the service to Pilot, the registrator config item should be disabled. Make serviceDiscovery.type to be pilotv2, to get service information by xDS v2 API(the v1 API is deprecated).
+Since mesher doesn't have to register the service to Pilot, the registrator config item should be disabled. Make serviceDiscovery.type to be pilotv2, to get service information by xDS v2 API (the v1 API is deprecated).
 
 ### The routing tags in Istio
 
diff --git a/docs/istio/router.md b/docs/istio/router.md
index dc631dd..8416c25 100755
--- a/docs/istio/router.md
+++ b/docs/istio/router.md
@@ -1,10 +1,10 @@
 # Route Rule
 
-Instead of using CSE and route config to manage route, mesher supports Istio as a control plane to set route rule and follows the envoy API reference to manage route. This page gives the examples to show how requests are routed between micro services.
+Instead of using CSE and route config to manage routes, mesher supports Istio as a control plane to set route rules and follows the envoy API reference to manage routes. This page gives the examples to show how requests are routed between micro services.
 
 ## Mesher Configurations
 
-In **Consumer** router.yaml, you can set router.infra to define which router plugin mesher fetches from.  The default router.infra  is cse, which means the routerule comes from route config in CSE config-center. If router.infra is set to be pilotv2, the router.address is necessary, such as the in-cluster istio-pilot grpc address.
+In **Consumer** router.yaml, you can set router.infra to define which router plugin mesher fetches from.  The default router.infra is cse, which means the route rule comes from route config in CSE config-center. If router.infra is set to be pilotv2, the router.address is necessary, such as the in-cluster istio-pilot grpc address.
 
 > Notice that `infra: pilot` is deprecated since Istio removes the xDS v1 API from 0.7.1
 
@@ -29,7 +29,7 @@
 
 ## Kubernetes Configurations
 
-The provider applications of v1, v2 and v3 version could be deployed in kubernetes cluster as **Deployment** with differenent labels. The labels of version is necessary now,  and you need to set env to generate nodeID in Istio system, such as **POD_NAMESPACE, POD_NAME** and **INSTANCE_IP**.
+The provider applications of v1, v2 and v3 version could be deployed in kubernetes cluster as **Deployment** with differenent labels. The labels of version are necessary now,  and you need to set env to generate nodeID in Istio system, such as **POD_NAMESPACE, POD_NAME** and **INSTANCE_IP**.
 
 ```yaml
 apiVersion: extensions/v1beta1
@@ -108,9 +108,9 @@
           secretName: istio.default
 ```
 
-## Istio v1alpha3 router configurations
+## Istio v1alpha3 Router Configurations
 
- [Traffic-management](https://istio.io/docs/tasks/traffic-management/request-routing/) gives references and examples of Istio new router rule schema. First, subsets is defined according to labels. Then you can set route rule of differenent weight for virtual services.
+ [Traffic-management](https://istio.io/docs/tasks/traffic-management/request-routing/) gives references and examples of Istio new route rule schema. First, subsets is defined according to labels. Then you can set route rules of different weights for virtual services.
 
 ```yaml
 apiVersion: networking.istio.io/v1alpha3
@@ -131,7 +131,7 @@
       version: v3
 ```
 
-> **NOTICE: The subsets only support labels of version to distinguish differenent virtual services, this constrains will canceled later.**
+> **NOTICE: The subsets only support labels of version to distinguish different virtual services, this constrains will be canceled later.**
 
 ```yaml
 apiVersion: networking.istio.io/v1alpha3
diff --git a/docs/protocols/grpc.md b/docs/protocols/grpc.md
index f9b7530..03aa7f7 100644
--- a/docs/protocols/grpc.md
+++ b/docs/protocols/grpc.md
@@ -18,11 +18,11 @@
 		grpc.WithInsecure(),
 		)
 ```
-set http_proxy
+Set http_proxy:
 ```bash
 export http_proxy=http://127.0.0.1:40100
 ```
 
 
-## example
+## Example
 A gRPC example is [here](https://github.com/go-mesh/mesher-examples/tree/master/protocol/grpc-go)