diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..f9e9360
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,2 @@
+include README.md
+include version.txt
\ No newline at end of file
diff --git a/README.md b/README.md
index 3538a65..27c8692 100644
--- a/README.md
+++ b/README.md
@@ -11,10 +11,12 @@
 ### 安装
 下载代码   
 python setup.py install
+pip安装
+pip install dubbo-client==1.0.0b5
 Git安装   
-pip install git+http://git.dev.qianmi.com/tda/dubbo-client-py.git@1.0.0b2   
+pip install git+http://git.dev.qianmi.com/tda/dubbo-client-py.git@1.0.0b5   
 或者   
-pip install git+https://github.com/ofpay/dubbo-client-py.git@1.0.0b2
+pip install git+https://github.com/ofpay/dubbo-client-py.git@1.0.0b5
 
 ### 在客户端实现负载均衡，服务发现  
 通过注册中心的zookeeper，获取服务的注册信息
diff --git a/dist/dubbo-client-1.0.0b2.tar.gz b/dist/dubbo-client-1.0.0b2.tar.gz
index 1e2ec90..a889cff 100644
--- a/dist/dubbo-client-1.0.0b2.tar.gz
+++ b/dist/dubbo-client-1.0.0b2.tar.gz
Binary files differ
diff --git a/dist/dubbo-client-1.0.0b3.tar.gz b/dist/dubbo-client-1.0.0b3.tar.gz
new file mode 100644
index 0000000..3f611d6
--- /dev/null
+++ b/dist/dubbo-client-1.0.0b3.tar.gz
Binary files differ
diff --git a/dist/dubbo-client-1.0.0b4.tar.gz b/dist/dubbo-client-1.0.0b4.tar.gz
new file mode 100644
index 0000000..acfa439
--- /dev/null
+++ b/dist/dubbo-client-1.0.0b4.tar.gz
Binary files differ
diff --git a/dist/dubbo-client-1.0.0b5.tar.gz b/dist/dubbo-client-1.0.0b5.tar.gz
new file mode 100644
index 0000000..5c0a555
--- /dev/null
+++ b/dist/dubbo-client-1.0.0b5.tar.gz
Binary files differ
diff --git a/dist/dubbo_client-1.0.0b2-py2.7.egg b/dist/dubbo_client-1.0.0b2-py2.7.egg
index 7744c72..f6f452f 100644
--- a/dist/dubbo_client-1.0.0b2-py2.7.egg
+++ b/dist/dubbo_client-1.0.0b2-py2.7.egg
Binary files differ
diff --git a/dist/dubbo_client-1.0.0b3-py2.7.egg b/dist/dubbo_client-1.0.0b3-py2.7.egg
new file mode 100644
index 0000000..1a1a312
--- /dev/null
+++ b/dist/dubbo_client-1.0.0b3-py2.7.egg
Binary files differ
diff --git a/dist/dubbo_client-1.0.0b4-py2.7.egg b/dist/dubbo_client-1.0.0b4-py2.7.egg
new file mode 100644
index 0000000..a6d546a
--- /dev/null
+++ b/dist/dubbo_client-1.0.0b4-py2.7.egg
Binary files differ
diff --git a/dist/dubbo_client-1.0.0b5-py2.7.egg b/dist/dubbo_client-1.0.0b5-py2.7.egg
new file mode 100644
index 0000000..de72a93
--- /dev/null
+++ b/dist/dubbo_client-1.0.0b5-py2.7.egg
Binary files differ
diff --git a/setup.py b/setup.py
index 4584a11..f3d2321 100644
--- a/setup.py
+++ b/setup.py
@@ -25,7 +25,7 @@
     description = (
         "Python Dubbo Client"
     ),
-    long_description = open("README.MD").read(),
+    long_description = open("README.md").read(),
     keywords = (
         "Dubbo, JSON-RPC, JSON, RPC, Client,"
         "HTTP-Client, Remote Procedure Call, JavaScript Object Notation, "
diff --git a/tests/test_registry.py b/tests/test_registry.py
index 6702682..d83e5a3 100644
--- a/tests/test_registry.py
+++ b/tests/test_registry.py
@@ -1,16 +1,36 @@
-from dubbo_client import ZookeeperRegistry, MulticastRegistry
+from dubbo_client import ZookeeperRegistry, MulticastRegistry, Registry
 
 __author__ = 'caozupeng'
 
+
 def multicat():
     registry = MulticastRegistry('224.5.6.7:1234')
     registry.subscribe('com.ofpay.demo.api.UserProvider')
     print registry.get_provides('com.ofpay.demo.api.UserProvider')
 
+
 def zookeeper():
     registry = ZookeeperRegistry('172.19.65.33:2181')
     registry.subscribe('com.ofpay.demo.api.UserProvider')
     print registry.get_provides('com.ofpay.demo.api.UserProvider')
 
+
+def test_registry():
+    registry = Registry()
+    registry._add_node("com.ofpay.demo.api.UserProvider",
+                       "jsonrpc://192.168.2.1:38081/com.ofpay.demo.api.UserProvider2?"
+                       "anyhost=true&application=jsonrpcdemo&default.timeout=10000&"
+                       "dubbo=2.4.10&environment=product&interface=com.ofpay.demo.api.UserProvider&"
+                       "methods=getUser,queryAll,isLimit,queryUser&owner=wenwu&pid=60402&revision=2.0&"
+                       "side=provider&timestamp=1429105028153&version=2.0")
+    registry._add_node("com.ofpay.demo.api.UserProvider",
+                       "jsonrpc://192.168.2.1:38081/com.ofpay.demo.api.UserProvider?"
+                       "anyhost=true&application=jsonrpcdemo&default.timeout=10000&"
+                       "dubbo=2.4.10&environment=product&interface=com.ofpay.demo.api.UserProvider&"
+                       "methods=getUser,queryAll,isLimit,queryUser&owner=wenwu&pid=60402&revision=2.0&"
+                       "side=provider&timestamp=1429105028153&version=1.0")
+    assert registry._service_provides
+
+
 if __name__ == '__main__':
     multicat()
\ No newline at end of file
diff --git a/tests/test_rpclib.py b/tests/test_rpclib.py
index b94d482..2d5e146 100644
--- a/tests/test_rpclib.py
+++ b/tests/test_rpclib.py
@@ -11,12 +11,13 @@
     config = ApplicationConfig('test_rpclib')
     service_interface = 'com.ofpay.demo.api.UserProvider'
     # 该对象较重，有zookeeper的连接，需要保存使用
-    # registry = ZookeeperRegistry('192.168.59.103:2181', config)
-    registry = MulticastRegistry('224.5.6.7:1234', config)
+    registry = ZookeeperRegistry('192.168.59.103:2181', config)
+    # registry = MulticastRegistry('224.5.6.7:1234', config)
     user_provider = DubboClient(service_interface, registry, version='2.0')
     for i in range(1000):
         try:
             print user_provider.getUser('A003')
+            print user_provider.getUser(123)
             print user_provider.queryUser(
                 {u'age': 18, u'time': 1428463514153, u'sex': u'MAN', u'id': u'A003', u'name': u'zhangsan'})
             datas = user_provider.queryAll()
diff --git a/version.txt b/version.txt
index 0550047..69127db 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-1.0.0b2
\ No newline at end of file
+1.0.0b5
\ No newline at end of file
