diff --git a/config/generic_reference_config.go b/config/generic_reference_config.go
index 87ec0002ca0ab58eb45e34546d7d0a04ed783d87..aa73ed2babbc929c0ff4ad2a1852d3c1c7a7684e 100644
--- a/config/generic_reference_config.go
+++ b/config/generic_reference_config.go
@@ -1,64 +1,24 @@
 package config
 
-import (
-	"context"
-	"errors"
-)
-
-const GenericReferKey = "GenericReferKey"
-
 type GenericService struct {
 	Invoke       func(req []interface{}) (interface{}, error) `dubbo:"$invoke"`
 	referenceStr string
 }
 
 func NewGenericService(referenceStr string) *GenericService {
-	return &GenericService{referenceStr: GenericReferKey}
+	return &GenericService{referenceStr: referenceStr}
 }
 
 func (u *GenericService) Reference() string {
 	return u.referenceStr
 }
 
-type GenericConsumerConfig struct {
-	ID             string
-	Protocol       string
-	Registry       string
-	Version        string
-	Group          string
-	InterfaceName  string
-	Cluster        string
-	Retries        int64
-	ref            *ReferenceConfig
-	genericService *GenericService
-}
-
-func (gConfig *GenericConsumerConfig) Load() (err error) {
-
-	gr := NewReferenceConfig(context.TODO())
+func (refconfig *ReferenceConfig) Load(id string) {
 	//gr.Filter = "genericConsumer" //todo: add genericConsumer filter
-	gr.Registry = gConfig.Registry
-	gr.Protocol = gConfig.Protocol
-	gr.Version = gConfig.Version
-	gr.Group = gConfig.Group
-	gr.InterfaceName = gConfig.InterfaceName
-	gr.Cluster = gConfig.Cluster
-	gr.Methods = append(gr.Methods, &MethodConfig{Name: "$invoke", Retries: gConfig.Retries})
-	gConfig.ref = gr
-	gConfig.genericService = NewGenericService(gConfig.ID)
-	SetConsumerService(gConfig.genericService)
-	rpcService := GetConsumerService(GenericReferKey)
-	if rpcService == nil {
-		err = errors.New("get rpcService err,GenericReferKey not Set ")
-		return
-	}
-
-	gConfig.ref.id = gConfig.ID
-	gConfig.ref.Refer()
-	gConfig.ref.Implement(rpcService)
+	genericService := NewGenericService(refconfig.id)
+	SetConsumerService(genericService)
+	refconfig.id = id
+	refconfig.Refer()
+	refconfig.Implement(genericService)
 	return
-
-}
-func (gConfig *GenericConsumerConfig) GetGenericService() *GenericService {
-	return gConfig.genericService
 }
diff --git a/examples/dubbo/go-client/app/client.go b/examples/dubbo/go-client/app/client.go
index d0694615a37c1c6c11f2ff2c22ae273288052fab..186ef2612ae56a7491f1773d44452623d3911553 100644
--- a/examples/dubbo/go-client/app/client.go
+++ b/examples/dubbo/go-client/app/client.go
@@ -290,18 +290,18 @@ func test2() {
 	println("error: %v", err)
 }
 func test3() {
-	var genericConfig = config.GenericConsumerConfig{
-		ID:            "UserProviderGer", //GetService的唯一标识不可缺少
+	var appName = "UserProviderGer"
+	var referenceConfig = config.ReferenceConfig{
 		InterfaceName: "com.ikurento.user.UserProvider",
 		Cluster:       "failover",
 		Registry:      "hangzhouzk",
 		Protocol:      dubbo.DUBBO,
 	}
-	genericConfig.Load()
+	referenceConfig.Load(appName) //appName是GetService的唯一标识不可缺少
 
 	time.Sleep(3 * time.Second)
 	println("\n\n\nstart to generic invoke")
-	resp, err := genericConfig.GetGenericService().Invoke([]interface{}{"GetUser", []string{"java.lang.String"}, []hessian.Object{"A003"}})
+	resp, err := referenceConfig.GetRPCService().(*config.GenericService).Invoke([]interface{}{"GetUser", []string{"java.lang.String"}, []hessian.Object{"A003"}})
 	if err != nil {
 		panic(err)
 	}