feature: add protocol config
diff --git a/README.md b/README.md
index 9fb6de8..7be982f 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@
 * Zookeeper registry center (√)
 * Tcp Transport
 * Serialize
-	* Hession serialize (√)
+	* Hessian serialize (√)
 	* Json serialize (√)
 * Erlang project as a consumer (√)
 * Erlang project as a provider (√)
diff --git a/config_example/sys.config b/config_example/sys.config
index 0d40be0..8e087a0 100644
--- a/config_example/sys.config
+++ b/config_example/sys.config
@@ -2,6 +2,7 @@
     {dubboerl,[
         {zookeeper_list,[{"127.0.0.1",2181}]},
         {application,<<"testdubboerl">>},
+        {protocol,hessian},
         {consumer,[
             {<<"com.ifcoder.demo.facade.User">>,[]}
         ]},
diff --git a/docs/protocol.md b/docs/protocol.md
index e69de29..0603dcf 100644
--- a/docs/protocol.md
+++ b/docs/protocol.md
@@ -0,0 +1,17 @@
+# Protocol Configurations
+
+The library now only supports hessian and json serialization.
+
+## Configuration example
+Protocol config is under the dubboerl application with sys.config
+```erlang
+{dubboerl,[
+	%% other config ...
+	{protocol,hessian}
+]}
+```
+ 
+| ConfigName | Type | DefaultValue | Remarks |
+| --- | --- | --- | --- |
+| protocol | atom() | hessian | hessian,json |
+ 
\ No newline at end of file
diff --git a/src/dubbo_codec.erl b/src/dubbo_codec.erl
index 388581b..2574b29 100644
--- a/src/dubbo_codec.erl
+++ b/src/dubbo_codec.erl
@@ -203,7 +203,7 @@
         ?SERIALIZATION_FASTJSON ->
             dubbo_serializa_fastjson:decode_response(Res,Data);
         ?SERIALIZATION_HESSIAN ->
-            dubbo_serializa_hession:decode_response(Res,Data)
+            dubbo_serializa_hessian:decode_response(Res,Data)
     end.
 
 %%decode_response(?SERIALIZATION_FASTJSON,dubbo_rpc_invocation,Res,Data)->
@@ -233,7 +233,7 @@
         ?SERIALIZATION_FASTJSON ->
             dubbo_serializa_fastjson:decode_request(Req,Data);
         ?SERIALIZATION_HESSIAN ->
-            dubbo_serializa_hession:decode_request(Req,Data)
+            dubbo_serializa_hessian:decode_request(Req,Data)
     end.
 
 %%decode_request(dubbo_rpc_invocation,Req,Data)->
diff --git a/src/dubbo_serializa_hession.erl b/src/dubbo_serializa_hessian.erl
similarity index 99%
rename from src/dubbo_serializa_hession.erl
rename to src/dubbo_serializa_hessian.erl
index 2481b9f..d3b5514 100644
--- a/src/dubbo_serializa_hession.erl
+++ b/src/dubbo_serializa_hessian.erl
@@ -6,7 +6,7 @@
 %%% @end
 %%% Created : 11. May 2018 4:12 PM
 %%%-------------------------------------------------------------------
--module(dubbo_serializa_hession).
+-module(dubbo_serializa_hessian).
 -author("dlive").
 
 -include("dubbo.hrl").
diff --git a/test/hession_encode_tests.erl b/test/hessian_encode_tests.erl
similarity index 97%
rename from test/hession_encode_tests.erl
rename to test/hessian_encode_tests.erl
index 9bd1ac1..fb14186 100644
--- a/test/hession_encode_tests.erl
+++ b/test/hessian_encode_tests.erl
@@ -6,7 +6,7 @@
 %%% @end
 %%% Created : 18. 十月 2016 上午10:46
 %%%-------------------------------------------------------------------
--module(hession_encode_tests).
+-module(hessian_encode_tests).
 -author("dlive").
 
 -include("hessian.hrl").
diff --git a/test/user.erl b/test/user.erl
index 5ff512b..0819fb6 100644
--- a/test/user.erl
+++ b/test/user.erl
@@ -66,14 +66,7 @@
             {<<"interface">> , ?CURRENT_CLASS_NAME}
         ]
     },
-    Request = #dubbo_request{
-        is_event = false,
-        is_twoway = true,
-        mid = dubbo_id_generator:gen_id(),
-        data = Data,
-        mversion= <<"0.0.0">>,
-        serialize_type = ?SERIALIZATION_HESSIAN
-    },
+    Request = dubbo_adapter:reference(Data),
     dubbo_invoker:invoke_request(?CURRENT_CLASS_NAME,Request,RequestOption).
 
 
@@ -102,14 +95,7 @@
             {<<"interface">> , ?CURRENT_CLASS_NAME}
         ]
     },
-    Request = #dubbo_request{
-        is_event = false,
-        is_twoway = true,
-        mid = dubbo_id_generator:gen_id(),
-        data = Data,
-        mversion= <<"0.0.0">>,
-        serialize_type = ?SERIALIZATION_HESSIAN
-    },
+    Request = dubbo_adapter:reference(Data),
     dubbo_invoker:invoke_request(?CURRENT_CLASS_NAME,Request,RequestOption).
 
 
@@ -140,14 +126,7 @@
             {<<"interface">> , ?CURRENT_CLASS_NAME}
         ]
     },
-    Request = #dubbo_request{
-        is_event = false,
-        is_twoway = true,
-        mid = dubbo_id_generator:gen_id(),
-        data = Data,
-        mversion= <<"0.0.0">>,
-        serialize_type = ?SERIALIZATION_HESSIAN
-    },
+    Request = dubbo_adapter:reference(Data),
     dubbo_invoker:invoke_request(?CURRENT_CLASS_NAME,Request,RequestOption).
 
 
@@ -178,13 +157,6 @@
             {<<"interface">> , ?CURRENT_CLASS_NAME}
         ]
     },
-    Request = #dubbo_request{
-        is_event = false,
-        is_twoway = true,
-        mid = dubbo_id_generator:gen_id(),
-        data = Data,
-        mversion= <<"0.0.0">>,
-        serialize_type = ?SERIALIZATION_HESSIAN
-    },
+    Request = dubbo_adapter:reference(Data),
     dubbo_invoker:invoke_request(?CURRENT_CLASS_NAME,Request,RequestOption).