proofing
diff --git a/dubbo-dev-book-en/README.md b/dubbo-dev-book-en/README.md
index 7827e7e..f9f3122 100644
--- a/dubbo-dev-book-en/README.md
+++ b/dubbo-dev-book-en/README.md
@@ -1,3 +1,3 @@
 # dubbo-dev-book
-This book is mainly about the design principles of dubbo, also covers the following topics: extension, coding styles, versio, build, etc.. 
+This book dives into the design principles of dubbo, mainly covers the following topics: extension, coding styles, versio, build, etc.
 
diff --git a/dubbo-dev-book-en/build.md b/dubbo-dev-book-en/build.md
index 20a39fc..5e1dbe4 100644
--- a/dubbo-dev-book-en/build.md
+++ b/dubbo-dev-book-en/build.md
@@ -1,27 +1,27 @@
-# source code build
+# Source Code Build
 
-## checkout
+## Checkout
 
-checkout the lastest project source code via below comand:
+checkout the lastest project source code with commands blow:
 
 ```sh
 git clone https://github.com/alibaba/dubbo dubbo
 ```
 
-## branch
+## Branches
 
-We apply master as the major branch for dev, and branch as the maintenance release. Tags for all versions can be checked via https://github.com/alibaba/dubbo/tags.
+We use `master` as the major branch for new feature development, and use other branches for maintenance. Tags for all versions can be checked via https://github.com/alibaba/dubbo/tags.
 
-## building
+## Building
 
-Dubbo applies [maven](http://maven.apache.org) as the building tool.
+Dubbo relies on [maven](http://maven.apache.org) as the building tool.
 
-Demands:
+Requirements:
 
 * Java above 1.5 version
 * Maven version 2.2.1 or above    
 
-below  `MAVEN_OPTS`should be configured before building:
+The following `MAVEN_OPTS`should be configured before building:
 
 ```sh    
 export MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=512m
@@ -39,7 +39,7 @@
 mvn install -Dmaven.test.skip
 ```
 
-## building jar package of source code 
+## Building jar package of source code 
 
 build Dubbo source code jar package with below command, which can debug Dubbo source code. 
 
@@ -57,23 +57,23 @@
 mvn idea:idea
 ```
 
-### eclipse
+### Eclipse
 
 ```sh
 mvn eclipse:eclipse
 ```
 
-importing into eclipse
+Importing into eclipse
 
-first, a maven repository needs to be configured in eclipse. Click Preferences -> Java -> Build Path -> Classpath  `M2_REPO` is the environment variable poiting to local maven repository。 [^2]
+Firstly, a maven repository needs to be configured in eclipse. Define `M2_REPO` and point it to the local maven repository by clicking `Preferences -> Java -> Build Path -> Classpath`.
 
 
-Using below maven command as well: 
+Use the following maven command as well: 
 
 ```sh
 mvn eclipse:configure-workspace -Declipse.workspace=/path/to/the/workspace/
 ```
 
-[^1]: view the source code through https://github.com/alibaba/dubbo 
-[^2]: path under UNIX is ${HOME}/.m2/repository, path under Windows is C:\Documents and Settings\<user>\.m2\repository
+1: view the source code through https://github.com/alibaba/dubbo 
+2: path under UNIX is ${HOME}/.m2/repository, path under Windows is C:\Documents and Settings\<user>\.m2\repository
 
diff --git a/dubbo-dev-book-en/contribution.md b/dubbo-dev-book-en/contribution.md
index f709755..9bd05ef 100644
--- a/dubbo-dev-book-en/contribution.md
+++ b/dubbo-dev-book-en/contribution.md
@@ -1,3 +1,47 @@
+<style>
+table {
+  width: 100%;
+  max-width: 65em;
+  border: 1px solid #dedede;
+  margin: 15px auto;
+  border-collapse: collapse;
+  empty-cells: show;
+}
+table th,
+table td {
+  height: 35px;
+  border: 1px solid #dedede;
+  padding: 0 10px;
+}
+table th {
+  font-weight: bold;
+  text-align: center !important;
+  background: rgba(158,188,226,0.2);
+  white-space: nowrap;
+}
+table tbody tr:nth-child(2n) {
+  background: rgba(158,188,226,0.12);
+}
+table td:nth-child(1) {
+  white-space: nowrap;
+}
+table tr:hover {
+  background: #efefef;
+}
+.table-area {
+  overflow: auto;
+}
+</style>
+
+<script type="text/javascript">
+[].slice.call(document.querySelectorAll('table')).forEach(function(el){
+    var wrapper = document.createElement('div');
+    wrapper.className = 'table-area';
+    el.parentNode.insertBefore(wrapper, el);
+    el.parentNode.removeChild(el);
+    wrapper.appendChild(el);
+})
+</script>
 # Contribution
 
 ## Flow
diff --git a/dubbo-dev-book-en/design.md b/dubbo-dev-book-en/design.md
index e1e907d..defd2ff 100644
--- a/dubbo-dev-book-en/design.md
+++ b/dubbo-dev-book-en/design.md
@@ -9,7 +9,7 @@
 * Left area with light blue background shows service consumer interfaces, Right area with light green background shows service provider interfaces, center area shows both side interfaces.
 * The image is divided into 10 layers from the bottom to the top, and the layers are one-way dependence. The black arrow on the right represents the dependency between layers, and each layer can be stripped from the upper layer to be reused, the Service and Config layers are API, and the other layers are SPI.
 * Green boxes are extension interfaces, blue boxes are implementation classes, image only shows implementation class of associated layers.
-* The blue dashed line is the initialization process, which is wassembly chain when starting, red line for the method call process, which is calling chain when running, purple triangle arrow is inherited, can treat subclass as the same node of parent class, text of lines are the method invocation.
+* The blue dashed line is the initialization process, which is assembly chain when starting, red line for the method call process, which is calling chain when running, purple triangle arrow is inherited, can treat subclass as the same node of parent class, text of lines are the method invocation.
 
 ## Layer description
 
diff --git a/dubbo-user-book-en/SUMMARY.md b/dubbo-user-book-en/SUMMARY.md
index 87f2d40..93c8b04 100644
--- a/dubbo-user-book-en/SUMMARY.md
+++ b/dubbo-user-book-en/SUMMARY.md
@@ -1,5 +1,5 @@
 # Summary
-* [1 Index](./preface/index.md)
+* [1 Preface](./preface/index.md)
     * [1.1 Background](./preface/background.md)
     * [1.2 Requirements](./preface/requirements.md)
     * [1.3 Architecture](./preface/architecture.md)
diff --git a/dubbo-user-book-en/configuration/properties.md b/dubbo-user-book-en/configuration/properties.md
index 7fea48c..613ef7a 100644
--- a/dubbo-user-book-en/configuration/properties.md
+++ b/dubbo-user-book-en/configuration/properties.md
@@ -32,7 +32,7 @@
 
 Priorities from high to low:
 
-* JVM -D parameters, you can easily override configuration when deploying or starting applications, e.g., change the port of dubbo protocol。
+* JVM -D parameters, you can easily override configuration when deploying or starting applications, e.g., change the port of dubbo protocol.
 
 * XML, the properties present in XML will override that in dubbo.properties.
 
diff --git a/dubbo-user-book-en/configuration/xml.md b/dubbo-user-book-en/configuration/xml.md
index 9b12b75..99e5973 100644
--- a/dubbo-user-book-en/configuration/xml.md
+++ b/dubbo-user-book-en/configuration/xml.md
@@ -73,5 +73,5 @@
 
 Theoretically, almost all configuration items supported in ReferenceConfig can be configured with a default value using ConsumerConfig, ServiceConfig, ProviderConfig.
 
-1: Requires spring `2.1.0+`, see announcement for details:`xmlns:p="http://www.springframework.org/schema/p"`  
+1: Requires spring `3.2.16+`, see announcement for details:`xmlns:p="http://www.springframework.org/schema/p"`  
 2: The reference bean obeys lazy init by default, only if it is refered by other beans or other instance try to get its instance using `getBean()` method  will the reference be initialized. If you need eager init, config this way: `<dubbo:reference ... init="true" />`
diff --git a/dubbo-user-book-en/demos/explicit-target.md b/dubbo-user-book-en/demos/explicit-target.md
index 180979b..df9d754 100644
--- a/dubbo-user-book-en/demos/explicit-target.md
+++ b/dubbo-user-book-en/demos/explicit-target.md
@@ -20,9 +20,7 @@
 java -Dcom.alibaba.xxx.XxxService=dubbo://localhost:20890
 ```
 
-## 通过文件映射
-
-## Configure with the resolve file.
+## Configure with the `.properties` file
 
 If you have more services, you can also use file mapping to specify the mapping file path with `-Ddubbo.resolve.file`. This configuration takes precedence over the configuration in` <dubbo: reference> `, for example:
 
diff --git a/dubbo-user-book-en/demos/fault-tolerent-strategy.md b/dubbo-user-book-en/demos/fault-tolerent-strategy.md
index 92f282b..4e6e95c 100644
--- a/dubbo-user-book-en/demos/fault-tolerent-strategy.md
+++ b/dubbo-user-book-en/demos/fault-tolerent-strategy.md
@@ -14,11 +14,11 @@
 
 ## Cluster fault-tolerant mode
 
-You can expand the cluster fault tolerance strategy, see:[Cluster expansion](https://dubbo.gitbooks.io/dubbo-dev-book/impls/cluster.html)
+You can expand the cluster fault tolerance strategy, see:[Cluster expansion](http://dubbo.io/books/dubbo-dev-book-en/impls/cluster.html)
 
 ## Failover Cluster
 
-Failure automatically switch, when there is failure, retry the other server (default). Usually used for read operations, but retries can result in longer delays. The times of retries can be set via `retries =" 2 "` (excluding the first time).
+Failure automatically switch, when there is failure, retry the other server (default). Usually used for read operations, but retries can result in longer delays. The times of retries can be set via `retries =2` (excluding the first time).
 
 The times of retries is configured as follows:
 
@@ -54,7 +54,7 @@
 
 ### Forking Cluster
 
-Multiple servers are invoked in parallel, returning as soon as one succeeds. Usually used for real-time demanding read operations, but need to waste more service resources. The maximum number of parallelism can be set with `forks =" 2 "`.
+Multiple servers are invoked in parallel, returning as soon as one succeeds. Usually used for real-time demanding read operations, but need to waste more service resources. The maximum number of parallelism can be set with `forks=2`.
 
 ### Broadcast Cluster
 
diff --git a/dubbo-user-book-en/demos/group-merger.md b/dubbo-user-book-en/demos/group-merger.md
index 74f2894..d1b67cd 100644
--- a/dubbo-user-book-en/demos/group-merger.md
+++ b/dubbo-user-book-en/demos/group-merger.md
@@ -51,4 +51,4 @@
 ```
 
 [^1]: since `2.1.0` began to support
-[^2]: See also:[merger extensions](https://dubbo.gitbooks.io/dubbo-dev-book/content/impls/merger.html)
+[^2]: See also:[merger extensions](http://dubbo.io/books/dubbo-user-book-en/demos/group-merger.html)
diff --git a/dubbo-user-book-en/demos/loadbalance.md b/dubbo-user-book-en/demos/loadbalance.md
index 25f55b8..3450df0 100644
--- a/dubbo-user-book-en/demos/loadbalance.md
+++ b/dubbo-user-book-en/demos/loadbalance.md
@@ -2,7 +2,7 @@
 
 Dubbo offers a number of balancing strategies for cluster load balancing, which defaults to `random`.
 
-You can extend the load balancing strategy by yourself, see:[LoadBalance extension](https://dubbo.gitbooks.io/dubbo-dev-book/content/impls/load-balance.html)
+You can extend the load balancing strategy by yourself, see:[LoadBalance extension](http://dubbo.io/books/dubbo-dev-book-en/impls/load-balance.html)
 
 ## LoadBalance strategy
 
diff --git a/dubbo-user-book-en/demos/multi-protocols.md b/dubbo-user-book-en/demos/multi-protocols.md
index 1f0fce1..b5d7354 100644
--- a/dubbo-user-book-en/demos/multi-protocols.md
+++ b/dubbo-user-book-en/demos/multi-protocols.md
@@ -2,7 +2,7 @@
 
 Dubbo allows you to configure multiple protocols, support different protocols on different services, or support multiple protocols on the same service.
 
-## Different services configure different protocols
+## Every service export to one specific protocol separately
 
 Different protocol performance is not the same. Such as big data should use short connection protocol, small data and concurrent should use long connection protocol.
 
@@ -24,7 +24,7 @@
 </beans>
 ```
 
-## Service exposes multiple protocols
+## One service export to several protocols
 
 ```xml
 <?xml version="1.0" encoding="UTF-8"?>
@@ -42,4 +42,4 @@
 </beans>
 ```
 
-[^1]: custom protocol, see:[protocol extension](https://dubbo.gitbooks.io/dubbo-dev-book/content/impls/protocol.html)
+[^1]: custom protocol, see:[protocol extension](http://dubbo.io/books/dubbo-dev-book-en/impls/protocol.html)
diff --git a/dubbo-user-book-en/demos/multi-registry.md b/dubbo-user-book-en/demos/multi-registry.md
index 89fd281..f952ddd 100644
--- a/dubbo-user-book-en/demos/multi-registry.md
+++ b/dubbo-user-book-en/demos/multi-registry.md
@@ -2,7 +2,7 @@
 
 Dubbo supports the same service to register multiple registries, or different services were registered to different registries, or even reference the same name service from different registries. In addition, the registry supports custom extensions [^1]。
 
-## Service register to multiple registries
+## One service register to multiple registries
 
 For example: Alibaba some services are not deployed in Qingdao, only deployed in Hangzhou. While other applications in Qingdao need to reference this service, you can register your services to both registries at the same time.
 
@@ -80,4 +80,4 @@
 </beans>
 ```
 
-[^1]: custom registry, see:[registry extension](https://dubbo.gitbooks.io/dubbo-dev-book/content/impls/registry.html)
+[^1]: custom registry, see:[registry extension](http://dubbo.io/books/dubbo-dev-book-en/impls/registry.html)
diff --git a/dubbo-user-book-en/demos/parameter-validation.md b/dubbo-user-book-en/demos/parameter-validation.md
index 71d3dad..4f256ba 100644
--- a/dubbo-user-book-en/demos/parameter-validation.md
+++ b/dubbo-user-book-en/demos/parameter-validation.md
@@ -179,6 +179,5 @@
 }
 ```
 
-[^ 1]: Support since `2.1.0` version. If you want to know how to use it, refer to  [Sample code in dubbo project] (https://github.com/alibaba/dubbo/tree/master/dubbo-test/dubbo- test-examples / src / main / java / com / alibaba / dubbo / examples / validation)
-
-[^ 2]: The validation method is extensible, refer to [Developer Extension](https://github.com/alibaba/dubbo/tree/master/dubbo-test/dubbo-test-examples/src/main/java/com/alibaba/dubbo/examples/validation) in the developer's manual.
+[^1]: Support since `2.1.0` version. If you want to know how to use it, refer to  [Sample code in dubbo project] (https://github.com/alibaba/dubbo/tree/master/dubbo-test/dubbo-test-examples/src/main/java/com/alibaba/dubbo/examples/validation)
+[^2]: The validation method is extensible, refer to [Developer Extension](https://github.com/alibaba/dubbo/tree/master/dubbo-test/dubbo-test-examples/src/main/java/com/alibaba/dubbo/examples/validation) in the developer's manual.
diff --git a/dubbo-user-book-en/demos/preflight-check.md b/dubbo-user-book-en/demos/preflight-check.md
index 8e9fd42..f8cbec6 100644
--- a/dubbo-user-book-en/demos/preflight-check.md
+++ b/dubbo-user-book-en/demos/preflight-check.md
@@ -1,11 +1,11 @@
 # Check on start up
 
-By default dubbo will check if the dependent service is available at startup . It will throw an exception to prevent Spring complete initialization when it is not available, so that you can find the problems early before publishing you application, the default setting: `check =" true "`.
+By default dubbo will check if the dependent service is available at startup . It will throw an exception to prevent Spring complete initialization when it is not available, so that you can find the problems early before publishing you application, the default setting: `check=true`.
 
-You can turn off checking by `check = 'false'`. For example, some services do not care it when you run testing, or you must have one started firstly because of circular dependency.
+You can turn off checking by `check=false`. For example, some services do not care it when you run testing, or you must have one started firstly because of circular dependency.
 
 In addition, if your Spring bean is lazy-loaded or you delay reference service with API programming, turn off the check, 
-otherwise the service will throw an exception when the service is temporarily unavailable ,then get a null reference.  If you configure `check = 'false' ,you can get a reference . When the service is restored, the service can automatically reconnect.
+otherwise the service will throw an exception when the service is temporarily unavailable ,then get a null reference.  If you configure `check=false` ,you can get a reference . When the service is restored, the service can automatically reconnect.
 
 ## Example
 
@@ -13,44 +13,44 @@
 
 Disable the startup check of a service (throw some exception/error when no provider is provided):
 
-`` `xml
-<dubbo: reference interface = "com.foo.BarService" check = "false" />
-`` `
+```xml
+<dubbo:reference interface = "com.foo.BarService" check = "false" />
+```
 
 Disable startup checking for all services (throw some exception/error when not provided):
 
-`` `xml
-<dubbo: consumer check = "false" />
-`` `
+```xml
+<dubbo:consumer check = "false" />
+```
 
 Disable the registration center startup check (registration subscription failed error):
 
-`` `xml
-<dubbo: registry check = "false" />
-`` `
+```xml
+<dubbo:registry check="false" />
+```
 
 ### Use dubbo.properties
 
-`` `properties
+```properties
 dubbo.reference.com.foo.BarService.check = false
 dubbo.reference.check = false
 dubbo.consumer.check = false
 dubbo.registry.check = false
-`` `
+```
 
 ### Use the -D parameter
 
-`` `sh
+```sh
 java -Ddubbo.reference.com.foo.BarService.check = false
 java -Ddubbo.reference.check = false
 java -Ddubbo.consumer.check = false
 java -Ddubbo.registry.check = false
-`` `
+```
 
 ## Configuration Meaning
 
-`dubbo.reference.check = false`,  Change the check value of all references forcibly, even if the configuration has a declaration, it also will be overwritten.
+`dubbo.reference.check=false`,  Change the check value of all references forcibly, even if the configuration has a declaration, it also will be overwritten.
 
-`dubbo.consumer.check = false`  The default value of `check`.  It will not be affected if there is an explicit declaration in the configuration such as` `<dubbo: reference check =" true "/>`.
+`dubbo.consumer.check=false`  The default value of `check`.  It will not be affected if there is an explicit declaration in the configuration such as` `<dubbo: reference check =" true "/>`.
 
-`dubbo.registry.check = false`, The two configuration above is to express success of the subscription. If the subscription is also allowed to start when the registration fails for the provider list is empty, you need to use this configuration. The system will try again in the background regularly.
\ No newline at end of file
+`dubbo.registry.check=false`, The two configuration above is to express success of the subscription. If the subscription is also allowed to start when the registration fails for the provider list is empty, you need to use this configuration. The system will try again in the background regularly.
\ No newline at end of file
diff --git a/dubbo-user-book-en/demos/registry-only.md b/dubbo-user-book-en/demos/registry-only.md
index b7a93a7..9489b5d 100644
--- a/dubbo-user-book-en/demos/registry-only.md
+++ b/dubbo-user-book-en/demos/registry-only.md
@@ -1,4 +1,4 @@
-# Only registered
+# Register only
 
 You have two mirroring environments, two registries. 
 You have deployed one service at only one of the registries, another registries have not had time to deploy, and other applications at both registries need to rely on the service. 
diff --git a/dubbo-user-book-en/demos/result-cache.md b/dubbo-user-book-en/demos/result-cache.md
index c22614b..5a91201 100644
--- a/dubbo-user-book-en/demos/result-cache.md
+++ b/dubbo-user-book-en/demos/result-cache.md
@@ -8,7 +8,7 @@
 * `threadlocal` The current thread cache. For example, a page have a lot of portal and each portal need to check user information,  you can reduce this redundant visit with this cache.
 * `jcache` integrate with [JSR107](http://jcp.org/en/jsr/detail?id=107%27) , you can bridge a variety of cache implementation。
 
-Caching type can be extended,refer to:[Cache extension](http://dubbo.io/developer-guide/impls/cache.html)
+Caching type can be extended,refer to:[Cache extension](http://dubbo.io/books/dubbo-dev-book-en/impls/cache.html)
 
 ## Configuration
 
diff --git a/dubbo-user-book-en/demos/routing-rule.md b/dubbo-user-book-en/demos/routing-rule.md
index f725457..68f37e6 100644
--- a/dubbo-user-book-en/demos/routing-rule.md
+++ b/dubbo-user-book-en/demos/routing-rule.md
@@ -132,6 +132,6 @@
 ```
 
 [^1]: Support since `2.2.0`   
-[^2]: Routing Rules Extension Point: [Route Extension](http://dubbo.io/developer-guide/impls/router.html)   
+[^2]: Routing Rules Extension Point: [Route Extension](http://dubbo.io/books/developer-guide-en/impls/router.html)   
 [^3]: Note: A service can only have one whitelist rule, otherwise the two rules will be filtered out.  
 [^4]: Note: Scripts have no sandbox constraints, can execute arbitrary code, and poses a backdoor risk.  
\ No newline at end of file
diff --git a/dubbo-user-book-en/demos/static-service.md b/dubbo-user-book-en/demos/static-service.md
index 5744cb5..c9485b6 100644
--- a/dubbo-user-book-en/demos/static-service.md
+++ b/dubbo-user-book-en/demos/static-service.md
@@ -1,4 +1,4 @@
-Static Service
+# Static Service
 
 * Sometimes we want to manually manage the registration and deregistration for service provider, we need to set registry to non-dynamoic mode. 
 
diff --git a/dubbo-user-book-en/demos/subscribe-only.md b/dubbo-user-book-en/demos/subscribe-only.md
index 666441a..4198069 100644
--- a/dubbo-user-book-en/demos/subscribe-only.md
+++ b/dubbo-user-book-en/demos/subscribe-only.md
@@ -1,4 +1,4 @@
-# subscribe-only
+# Subscribe only
 
 To facilitate the development of tests, it is common to have a registry of all services available in develop environment.And the registration of a service provider under development may affect consumers' inability to run.
 
diff --git a/dubbo-user-book-en/demos/thread-model.md b/dubbo-user-book-en/demos/thread-model.md
index 5706935..cee3c63 100644
--- a/dubbo-user-book-en/demos/thread-model.md
+++ b/dubbo-user-book-en/demos/thread-model.md
@@ -2,7 +2,7 @@
 
 # Thread Model
 
-Thread Model
+## Thread Model
 
 * If events handing can be executed quickly without sending new request like marking in memory. Events should be handled by I/O thread since it reduces thread dispatching.
 * If event handling will be executed slowly or needs to send new I/O request like querying from database, events should be handled in thread pool. Otherwise, I/O thread will be blocked and then will be not able to receive requests.
@@ -19,7 +19,7 @@
 <dubbo:protocol name="dubbo" dispatcher="all" threadpool="fixed" threads="100" />
 ```
 
-Dispatcher:
+## Dispatcher
 
 * all: All messages will be dispatched to thread pool, including request, response, connect event, disconnect event and heartbeat. 
 * direct: All messages will not be dispatched to thread pool and will be executed directly by I/O thread.
@@ -27,7 +27,7 @@
 * execution: Only request message will be dispatched to thread pool. Other messages like response, connect, disconnect, heartbeat will be directly executed by I/O thread.
 * connection: I/O thread will put disconnect and connect events in the queue and execute them sequentially, other messages will be dispatched to the thread pool.
 
-Thread pool:
+## Thread pool
 
 * fixed: A fixed size of thread pool. It creates threads when starts, never shut down.(default).
 * cached: A cached thread pool. Automatically delete the thread when it’s in idle for one minute. Recreate when needed. 
diff --git a/dubbo-user-book-en/dependencies.md b/dubbo-user-book-en/dependencies.md
index 11189e7..2d9b494 100644
--- a/dubbo-user-book-en/dependencies.md
+++ b/dubbo-user-book-en/dependencies.md
@@ -1,55 +1,58 @@
 # Dependencies
 
 ## Necessary dependencies
-JDK 1.5+ [^1]
+JDK 1.6+ [^1]
 
 ## Default dependencies
 use `mvn dependency:tree > dep.log`  command to analysis,Dubbo default depends on the following 3rd party libraries:
 
 ```
-[INFO] +- com.alibaba:dubbo:jar:2.1.2:compile
-[INFO] |  +- log4j:log4j:jar:1.2.16:compile 
-[INFO] |  +- org.javassist:javassist:jar:3.15.0-GA:compile
-[INFO] |  +- org.springframework:spring:jar:2.5.6.SEC03:compile
-[INFO] |  +- commons-logging:commons-logging:jar:1.1.1:compile
+[INFO] +- com.alibaba:dubbo:jar:2.5.9-SNAPSHOT:compile
+[INFO] |  +- org.springframework:spring-context:jar:4.3.10.RELEASE:compile
+[INFO] |  +- org.javassist:javassist:jar:3.21.0-GA:compile
 [INFO] |  \- org.jboss.netty:netty:jar:3.2.5.Final:compile
 ```
 
 All dependencies here are selected for the default configuration of the Dubbo, which are based on stability and performance considerations.
-
-* log4j.jar and commons-logging.jar [^2]: It can be removed directly, and the log of the Dubbo itself automatically switches to the java.util.logging output of JDK. But if other 3rd party libraries, such as spring.jar, are indirectly dependent on commons-logging, they can't be removed.   
+ 
 * javassist.jar [^3]: if `<dubbo:provider proxy="jdk" />` or `<dubbo:consumer proxy="jdk" />`,or `<dubbo:application compiler="jdk" />`, is not required.
-* spring.jar [^4]: If you are using `ServiceConfig` and `ReferenceConfig` API calls, is not required.
-* netty.jar [^5]: if `<dubbo:protocol server="mina"/>` or `<dubbo:protocol server="grizzly"/>`,Then change to mina.jar or grizzly.jar. If `<protocol name="rmi"/>`, is not required.
+* spring-context.jar [^4]: If you are using `ServiceConfig` and `ReferenceConfig` API calls, is not required.
+* netty.jar [^5]: if `<dubbo:protocol server="mina"/>` or `<dubbo:protocol server="grizzly"/>`,Then change to mina.jar or grizzly.jar. If `<protocol name="rmi"/>`, is not required.    
 
 ## Optinal dependencies
 These dependencies  needs to be added to project manually,when you need them.
 
+* netty-all 4.0.35.Final 
 * mina: 1.1.7
 * grizzly: 2.1.4
-* httpclient: 4.1.2
+* httpclient: 4.5.3
 * hessian_lite: 3.2.1-fixed
-* xstream: 1.4.1
-* fastjson: 1.1.8
-* zookeeper: 3.3.3
-* jedis: 2.0.0
+* fastjson: 1.2.31
+* zookeeper: 3.4.9
+* jedis: 2.9.0
 * xmemcached: 1.3.6
-* jfreechart: 1.0.13
-* hessian: 4.0.7
+* hessian: 4.0.38
 * jetty: 6.1.26
-* hibernate-validator: 4.2.0.Final
-* zkclient: 0.1
-* curator: 1.1.10
-* cxf: 2.6.1
+* hibernate-validator: 5.4.1.Final
+* zkclient: 0.2
+* curator: 2.12.0
+* cxf: 3.0.14
 * thrift: 0.8.0
-* servlet: 2.5 [^6]
-* bsf: 3.1 [^6]
-* validation-api: 1.0.0.GA [^6]
-* jcache: 0.4 [^6]
+* servlet: 3.0 [^6]
+* validation-api: 1.1.0.GA [^6]
+* jcache: 1.0.0 [^6]
+* javax.el: 3.0.1-b08 [^6]
+* kryo: 4.0.1
+* kryo-serializers: 0.42
+* fst: 2.48-jdk-6
+* resteasy: 3.0.19.Final
+* tomcat-embed-core: 8.0.11
+* slf4j: 1.7.25
+* log4j: 1.2.16
 
 [^1]: In theory, Dubbo only depend on JDK, not depend on any 3rd party libs, you can finish logic by useing  JDK.
 [^2]: Log output jar
 [^3]: Bytecode generation
 [^4]: Configuration parsing
 [^5]: Network transmission
-[^6]: JEE
\ No newline at end of file
+[^6]: JAVAEE
\ No newline at end of file
diff --git a/dubbo-user-book-en/preface/background.md b/dubbo-user-book-en/preface/background.md
index 289f584..faa4da6 100644
--- a/dubbo-user-book-en/preface/background.md
+++ b/dubbo-user-book-en/preface/background.md
@@ -1,21 +1,21 @@
 # Background
 
-As the fast development of Internet, the scale of web applications expands unceasingly, while normal vertical architecture can not handle this any more, distributed service architecture and the flow computing architecture are imperative, and a governance system is urgently needed to ensure an orderly evolution of the architecture.
+With the fast development of Internet, the scale of web applications expands unceasingly, and finally we find that the traditional vertical architecture(monolithic) can not handle this any more. Distributed service architecture and the flow computing architecture are imperative, and a governance system is urgently needed to ensure an orderly evolution of the architecture.
 
 ![image](../sources/images/dubbo-architecture-roadmap.jpg)  
 
-#### monolithic architecture
+#### Monolithic architecture
 
 When the traffic is very low, there is only one application, all the features are deployed together to reduce the deployment node and cost. At this point, the data access framework (ORM) is the key to simplifying the workload of the CRUD.
 
-#### vertical architecture 
+#### Vertical architecture 
 
 When the traffic gets heavier, add monolithic application instances can not accelerate the access very well, one way to improve efficiency is to split the monolithic into discrete applications. At this point, the Web framework (MVC) used to accelerate front-end page development is the key. 
     
-#### distributed service architecture
+#### Distributed service architecture
 
 When there are more and more vertical applications, the interaction between applications is inevitable, some core businesses are extracted and served as independent services, which gradually forms a stable service center,this way the front-end application can respond to the changeable market demand more quickly. At this point, the distributed service framework (RPC) for business reuse and integration is the key.
 
-#### flow computing architecture
+#### Flow computing architecture
 
-Where there are more and more services, the evaluation of capacity and waste of small service resources are gradually emerging, a scheduling center should be added to manage the cluster capacity based on the access pressure and improve the utilization of the cluster. At this time, the resource scheduling and governance centers (SOA), which are used to improve machine utilization, are the keys.
+When there are more and more services, capacity evaluation becomes difficult, and also services with small scales often causes waste of resources. To solve these problems, a scheduling center should be added to manage the cluster capacity based on traffics and to improve the utilization of the cluster. At this time, the resource scheduling and governance centers (SOA), which are used to improve machine utilization, are the keys.
diff --git a/dubbo-user-book-en/quick-start.md b/dubbo-user-book-en/quick-start.md
index ff61935..94bf898 100644
--- a/dubbo-user-book-en/quick-start.md
+++ b/dubbo-user-book-en/quick-start.md
@@ -3,11 +3,11 @@
 
 Dubbo uses a full Spring configuration, transparent access application,No API intrusion to your application,Just load the Dubbo configuration with Spring,Dubbo is loaded on the spring based schema extension.
 
-If you don't want to use the Spring configuration, you can call it by [the way of API] (../configuration/api.md) .
+If you don't want to use the Spring configuration, you can call it by [the way of API](../configuration/api.md).
 
 ## Service provider
 
-Complete installation steps, see:[Provider demo installation](https://dubbo.gitbooks.io/dubbo-admin-book/install/provider-demo.html)
+Complete installation steps, see:[Provider demo installation](http://dubbo.io/books/dubbo-admin-book-en/install/provider-demo.html)
 
 ### Defining service interfaces
 
@@ -84,7 +84,7 @@
 
 ## Service consumer
 
-Complete installation steps, see : [Consumer demo installation](https://dubbo.gitbooks.io/dubbo-admin-book/install/consumer-demo.html)
+Complete installation steps, see : [Consumer demo installation](http://dubbo.io/books/dubbo-admin-book-en/install/consumer-demo.html)
 
 ### Using the Spring configuration to reference a remote service