doc: Perfect documentation
diff --git a/.gitignore b/.gitignore
index 66956dd..d1fabf5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,5 @@
 *.iml
 *.crashdump
 codecov.json
+.DS_Store
+doc
diff --git a/README.md b/README.md
index ba842e7..5b73272 100644
--- a/README.md
+++ b/README.md
@@ -64,13 +64,18 @@
 	dubboerl:init().
 
 #### Step5
-Do your interface method invoker.
+Call the interface method.
 
 ```erlang
 RequestPara = #testReq{name = <<"nameinfo">>,nick = <<"nickinfo">>,age = 10},
 iProcessData:queryinfo(Info,[]).
 ```
-	
+
 Sample
 ------
 Reference the demo project [dubboerl_demo](https://github.com/dubboerl/dubboerl_demo)
+
+More Documents
+------
+Reference [Docs](docs/index.md)
+
diff --git a/docs/consumer.md b/docs/consumer.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/docs/consumer.md
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000..6aaf0c6
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,10 @@
+
+
+[Quick Start](./start.md)
+
+[Protocol configuration reference](./protocol.md)
+
+[Consumer configuration](./consumer.md)
+
+[Provider configuration](./provider.md)
+
diff --git a/docs/protocol.md b/docs/protocol.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/docs/protocol.md
diff --git a/docs/provider.md b/docs/provider.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/docs/provider.md
diff --git a/docs/start.md b/docs/start.md
new file mode 100644
index 0000000..981cad4
--- /dev/null
+++ b/docs/start.md
@@ -0,0 +1,59 @@
+# Quick Start
+
+We recommend using java to define the Dubbo interface. And use [erlanalysis](https://github.com/dubboerl/erlanalysis) 
+tool parse java interface transfer to erlang lib.
+
+## Import Dependency Lib
+
+
+### Using Rebar Build Tool
+Add dubblerl to rebar.config with your project
+```erlang
+{deps, [
+    {dubboerl, {git, "http://github.com/dubboerl/dubboerl.git", {branch, "master"}}}
+]}.
+```
+
+### User erlang.mk Build Tool
+`Waiting for improvement`
+
+## Import interface lib
+Suppose the interface lib you exported is called dubbo_service.   
+* If you didn't upload your lib to your git repository, It is recommended that you copy the `dubbo_service` lib 
+into the project's `apps` directory.  
+* If it is upload to your git repository, you can import like this:
+```erlang
+{deps, [
+    {dubboerl, {git, "http://github.com/dubboerl/dubboerl.git", {branch, "master"}}},
+    {dubbo_service,{git,"${INTERFACE_LIB_URL}",{branch,"master"}}} %% replace ${INTERFACE_LIB_URL} with your lib git repos url
+]}.
+```
+
+## Consumer Configuration
+Please reference [Consumer Config](./consumer.md)
+
+## Init dubbolib in your project
+It is need you 
+```erlang
+dubboerl:init().
+```
+
+## How to invoke?
+
+### Sync Call
+```erlang
+Request = #userInfoRequest{requestId = 123, username = "testname"},
+{ok,RequestRef,Response,RpcContent} = user:queryUserInfo(Request,#{sync=ture}).
+```
+If it occur error, is reponse `{error,Reason}`. 
+
+### Async Call
+
+Default is Async call.
+```erlang
+Request = #userInfoRequest{requestId = 123, username = "testname"},
+{ok,RequestRef} = user:queryUserInfo(Request).
+
+%% you can receive the message after.
+{msg_back,RequestRef,Response,RpcContent}.
+```
\ No newline at end of file
diff --git a/rebar.lock b/rebar.lock
new file mode 100644
index 0000000..f57b258
--- /dev/null
+++ b/rebar.lock
@@ -0,0 +1,18 @@
+{"1.1.0",
+[{<<"erlzk">>,
+  {git,"https://github.com/huaban/erlzk.git",
+       {ref,"aa7190ee2343ac1341cea3edc9b9eea36c591708"}},
+  0},
+ {<<"jiffy">>,{pkg,<<"jiffy">>,<<"0.15.1">>},0},
+ {<<"poolboy">>,
+  {git,"https://github.com/devinus/poolboy.git",
+       {ref,"3bb48a893ff5598f7c73731ac17545206d259fac"}},
+  0},
+ {<<"ranch">>,
+  {git,"https://github.com/ninenines/ranch.git",
+       {ref,"55c2a9d623454f372a15e99721a37093d8773b48"}},
+  0}]}.
+[
+{pkg_hash,[
+ {<<"jiffy">>, <<"BE83B09388DA1A6C7E798207C9D6A1C4D71BB95FCC387D37D35861788F49AB97">>}]}
+].