diff --git a/dubbo_client/common.py b/dubbo_client/common.py
index d2945ce..3633ac8 100644
--- a/dubbo_client/common.py
+++ b/dubbo_client/common.py
@@ -10,6 +10,8 @@
     path = ''  # like /com.qianmi.dubbo.UserProvider
     ip = '127.0.0.1'
     port = '9090'
+    version = ''
+    group = ''
 
     def __init__(self, url):
         result = urlparse(url)
diff --git a/dubbo_client/config.py b/dubbo_client/config.py
index 681fccd..880ec2b 100644
--- a/dubbo_client/config.py
+++ b/dubbo_client/config.py
@@ -1 +1,8 @@
+# coding=utf-8
 __author__ = 'caozupeng'
+
+
+class ReferenceConfig(object):
+    registry = None
+    interface = ''
+    version = ''
\ No newline at end of file
diff --git a/dubbo_client/registry.py b/dubbo_client/registry.py
index 5ea57a0..6aa1b9e 100644
--- a/dubbo_client/registry.py
+++ b/dubbo_client/registry.py
@@ -2,8 +2,10 @@
 
 __author__ = 'caozupeng'
 import urllib
+
 from kazoo.protocol.states import KazooState
 from kazoo.client import KazooClient
+
 from dubbo_client.common import ServiceURL
 
 
@@ -16,7 +18,7 @@
         """
         pass
 
-    def get_provides(self, provide_name, default=None):
+    def get_provides(self, provide_name, default=None, **kwargs):
         """
         获取已经注册的服务URL对象
         :param provide_name: com.ofpay.demo.api.UserProvider
@@ -29,8 +31,11 @@
 class ZookeeperRegistry(Registry):
     """
     所有注册过的服务端将在这里
-    格式为{providername:{ip+port:service}}
-    providername = group_version_servicename
+    interface=com.ofpay.demo.DemoService
+    location = ip:port/url 比如 172.19.20.111:38080/com.ofpay.demo.DemoService2
+    providername = servicename|version|group
+    dict 格式为{interface:{providername:{ip+port:service_url}}}
+
     """
     __service_provides = {}
     __connect_state = 'UNCONNECT'
@@ -61,57 +66,71 @@
         """
         self.__do_event(event)
 
-    def __handler_nodes(self, nodes):
+    def __to_key(self, interface, versioin, group):
+        return '{0}|{1}|{2}'.format(interface, versioin, group)
+
+    def __handler_nodes(self, interface, nodes):
         """
         将zookeeper中查询到的服务节点列表加入到一个dict中
         :param nodes: 节点列表
         :return: 不需要返回
         """
+        # 如果已经存在，首先删除原有的服务的集合
+        if interface in self.__service_provides:
+            del self.__service_provides[interface]
         for child_node in nodes:
             node = urllib.unquote(child_node).decode('utf8')
             if node.startswith('jsonrpc'):
                 service_url = ServiceURL(node)
-                service_key = self.__service_provides.get(service_url.interface)
-                if service_key:
-                    service_key[service_url.location] = service_url
+                key = self.__to_key(service_url.interface, service_url.version, service_url.group)
+                second_dict = self.__service_provides.get(interface)
+                if second_dict:
+                    # 获取最内层的nest的dict
+                    inner_dict = second_dict.get(key)
+                    if inner_dict:
+                        inner_dict[service_url.location] = service_url
+                    else:
+                        second_dict[key] = {service_url.location: service_url}
                 else:
-                    self.__service_provides[service_url.interface] = {service_url.location: service_url}
+                    # create the second dict
+                    self.__service_provides[interface] = {key: {service_url.location: service_url}}
 
     def __do_event(self, event):
         # event.path 是类似/dubbo/com.ofpay.demo.api.UserProvider/providers 这样的
         # 如果要删除，必须先把/dubbo/和最后的/providers去掉
         provide_name = event.path[7:event.path.rfind('/')]
-        if provide_name in self.__service_provides:
-            del self.__service_provides[provide_name]
         if event.state == 'CONNECTED':
             children = self.__zk.get_children(event.path, watch=self.__event_listener)
-            self.__handler_nodes(children)
+            self.__handler_nodes(provide_name, children)
         if event.state == 'DELETED':
             children = self.__zk.get_children(event.path, watch=self.__event_listener)
-            self.__handler_nodes(children)
+            self.__handler_nodes(provide_name, children)
 
-    def add_provider_listener(self, provide_name):
+    def add_provider_listener(self, interface, **kwargs):
         """
         监听注册中心的服务上下线
-        :param provide_name: 类似com.ofpay.demo.api.UserProvider这样的服务名
+        :param interface: 类似com.ofpay.demo.api.UserProvider这样的服务名
         :return: 无返回
         """
-        # 如果已经存在，首先删除原有的服务的集合
-        if provide_name in self.__service_provides:
-            del self.__service_provides[provide_name]
-        children = self.__zk.get_children('{0}/{1}/{2}'.format('dubbo', provide_name, 'providers'),
+        version = kwargs.get('version', '')
+        group = kwargs.get('group', '')
+        children = self.__zk.get_children('{0}/{1}/{2}'.format('dubbo', interface, 'providers'),
                                           watch=self.__event_listener)
         # 全部重新添加
-        self.__handler_nodes(children)
+        self.__handler_nodes(interface, children)
 
-    def get_provides(self, provide_name, default=None):
+    def get_provides(self, interface, default=None, **kwargs):
         """
         获取已经注册的服务URL对象
-        :param provide_name: com.ofpay.demo.api.UserProvider
+        :param interface: com.ofpay.demo.api.UserProvider
         :param default:
         :return: 返回一个dict的服务集合
         """
-        return self.__service_provides.get(provide_name, default)
+        group = kwargs.get('group', '')
+        version = kwargs.get('version', '')
+        key = self.__to_key(interface, version, group)
+        second = self.__service_provides.get(interface, {})
+        return second.get(key, default)
 
 
 if __name__ == '__main__':
diff --git a/dubbo_client/rpclib.py b/dubbo_client/rpclib.py
index 001bfb4..30f2b54 100644
--- a/dubbo_client/rpclib.py
+++ b/dubbo_client/rpclib.py
@@ -1,13 +1,19 @@
 # coding=utf-8
 import random
 from urllib2 import HTTPError
+
 from pyjsonrpc import HttpClient, JsonRpcError
+
 from dubbo_client.rpcerror import NoProvider, ConnectionFail, dubbo_client_errors, InternalError
+
+
 __author__ = 'caozupeng'
 
 
 class DubboClient(object):
     interface = ''
+    group = ''
+    version = ''
 
     class _Method(object):
 
@@ -18,17 +24,20 @@
         def __call__(self, *args, **kwargs):
             return self.client_instance.call(self.method, *args, **kwargs)
 
-    def __init__(self, interface, registry):
+    def __init__(self, interface, registry, **kwargs):
         self.interface = interface
         self.registry = registry
+        self.group = kwargs.get('group', '')
+        self.version = kwargs.get('version', '')
         self.registry.add_provider_listener(interface)
 
     def call(self, method, *args, **kwargs):
-        provides = self.registry.get_provides(self.interface, {})
+        provides = self.registry.get_provides(self.interface, {}, version=self.version, group=self.group)
         if len(provides) == 0:
             raise NoProvider('can not find provide', self.interface)
-        location, provide = random.choice(provides.items())
-        client = HttpClient(url="http://{0}{1}".format(location, provide.path))
+        ip_port, service_url = random.choice(provides.items())
+        print service_url.location
+        client = HttpClient(url="http://{0}{1}".format(ip_port, service_url.path))
         try:
             return client.call(method, *args, **kwargs)
         except HTTPError, e:
@@ -48,7 +57,6 @@
         """
         Allows the usage of attributes as *method* names.
         """
-
         return self._Method(client_instance=self, method=method)
 
 
diff --git a/test_dubbo_client/test_rawclient.py b/test_dubbo_client/test_rawclient.py
new file mode 100644
index 0000000..179644b
--- /dev/null
+++ b/test_dubbo_client/test_rawclient.py
@@ -0,0 +1,16 @@
+from pyjsonrpc import HttpClient
+
+__author__ = 'caozupeng'
+
+def test_client_every_new():
+    user_provider = HttpClient(url="http://{0}{1}".format('172.19.3.111:38081/', 'com.ofpay.demo.api.UserProvider2'))
+    print user_provider.getUser('A003')
+    print user_provider.queryUser(
+        {u'age': 18, u'time': 1428463514153, u'sex': u'MAN', u'id': u'A003', u'name': u'zhangsan'})
+    print user_provider.queryAll()
+    print user_provider.isLimit('MAN', 'Joe')
+    print user_provider('getUser', 'A005')
+
+
+if __name__ == '__main__':
+    test_client_every_new()
\ No newline at end of file
diff --git a/test_dubbo_client/test_rpclib.py b/test_dubbo_client/test_rpclib.py
index 0db9b5d..d8b673e 100644
--- a/test_dubbo_client/test_rpclib.py
+++ b/test_dubbo_client/test_rpclib.py
@@ -1,16 +1,16 @@
 # coding=utf-8
 import time
 
-from user_provider import DubboClient, DubboClientError
-from user_provider import ZookeeperRegistry
+from dubbo_client import ZookeeperRegistry, DubboClient, DubboClientError
 
 
 __author__ = 'caozupeng'
 
 if __name__ == '__main__':
     service_interface = 'com.ofpay.demo.api.UserProvider'
+    # 该对象较重，有zookeeper的连接，需要保存使用
     registry = ZookeeperRegistry('172.19.65.33:2181')
-    user_provider = DubboClient(service_interface, registry)
+    user_provider = DubboClient(service_interface, registry, version='3.0')
     for i in range(1000):
         try:
             print user_provider.getUser('A003')
