diff --git a/common/constant/default.go b/common/constant/default.go
index 5871e3cec8ec8dd1c17cb79f002fd9c386d15ecb..66150525357c0e64d5b281604cc720b73caa7e95 100644
--- a/common/constant/default.go
+++ b/common/constant/default.go
@@ -15,5 +15,5 @@ const (
 )
 
 const (
-	ECHO = "Echo"
+	ECHO = "$echo"
 )
diff --git a/common/proxy/proxy.go b/common/proxy/proxy.go
index 5447c5656ea43a11ff80cfb1f5bbb0b043d4d154..d511bc93cf0982cbaa2dfea6d63f26136943ad7b 100644
--- a/common/proxy/proxy.go
+++ b/common/proxy/proxy.go
@@ -10,7 +10,7 @@ import (
 import (
 	"github.com/dubbo/go-for-apache-dubbo/common"
 	"github.com/dubbo/go-for-apache-dubbo/protocol"
-	"github.com/dubbo/go-for-apache-dubbo/protocol/invocation"
+	invocation_impl "github.com/dubbo/go-for-apache-dubbo/protocol/invocation"
 )
 
 // Proxy struct
@@ -53,8 +53,12 @@ func (p *Proxy) Implement(v common.RPCService) {
 
 	makeDubboCallProxy := func(methodName string, outs []reflect.Type) func(in []reflect.Value) []reflect.Value {
 		return func(in []reflect.Value) []reflect.Value {
-			log.Info("call method!")
-			inv := invocation.NewRPCInvocationForConsumer(methodName, nil, in[1].Interface().([]interface{}), in[2].Interface(), p.callBack, common.URL{}, nil)
+
+			if methodName == "Echo" {
+				methodName = "$echo"
+			}
+			inv := invocation_impl.NewRPCInvocationForConsumer(methodName, nil, in[1].Interface().([]interface{}), in[2].Interface(), p.callBack, common.URL{}, nil)
+
 			for k, v := range p.attachments {
 				inv.SetAttachments(k, v)
 			}
diff --git a/examples/dubbo/go-client/app/client.go b/examples/dubbo/go-client/app/client.go
index 42c3557f12c35857d0ddc146fa8756831adef131..ddec042d7b4619db65ce2a6de83a244df24b3e37 100644
--- a/examples/dubbo/go-client/app/client.go
+++ b/examples/dubbo/go-client/app/client.go
@@ -24,7 +24,7 @@ import (
 	_ "github.com/dubbo/go-for-apache-dubbo/protocol/dubbo"
 	_ "github.com/dubbo/go-for-apache-dubbo/registry/protocol"
 
-	_ "github.com/dubbo/go-for-apache-dubbo/filter/imp"
+	_ "github.com/dubbo/go-for-apache-dubbo/filter/impl"
 
 	_ "github.com/dubbo/go-for-apache-dubbo/cluster/cluster_impl"
 	_ "github.com/dubbo/go-for-apache-dubbo/cluster/loadbalance"
diff --git a/examples/dubbo/go-server/app/server.go b/examples/dubbo/go-server/app/server.go
index e517ac9a92f5119074e3ffb481b227d77d493b56..4b12e51bd8693eb6ea9ebc23ae1c8df1406e7d4f 100644
--- a/examples/dubbo/go-server/app/server.go
+++ b/examples/dubbo/go-server/app/server.go
@@ -22,7 +22,7 @@ import (
 	_ "github.com/dubbo/go-for-apache-dubbo/protocol/dubbo"
 	_ "github.com/dubbo/go-for-apache-dubbo/registry/protocol"
 
-	_ "github.com/dubbo/go-for-apache-dubbo/filter/imp"
+	_ "github.com/dubbo/go-for-apache-dubbo/filter/impl"
 
 	_ "github.com/dubbo/go-for-apache-dubbo/cluster/cluster_impl"
 	_ "github.com/dubbo/go-for-apache-dubbo/cluster/loadbalance"
diff --git a/examples/jsonrpc/go-client/app/client.go b/examples/jsonrpc/go-client/app/client.go
index a315eef5c0d68a71af4e64f7f580939bae64b79d..cb8ca19239c8cb8166f536802a693563f34c2c47 100644
--- a/examples/jsonrpc/go-client/app/client.go
+++ b/examples/jsonrpc/go-client/app/client.go
@@ -3,7 +3,6 @@ package main
 import (
 	"context"
 	"fmt"
-	"github.com/dubbo/go-for-apache-dubbo/config"
 	"net/http"
 	_ "net/http/pprof"
 	"os"
@@ -20,13 +19,14 @@ import (
 )
 
 import (
+	"github.com/dubbo/go-for-apache-dubbo/config"
 	_ "github.com/dubbo/go-for-apache-dubbo/protocol/jsonrpc"
 	_ "github.com/dubbo/go-for-apache-dubbo/registry/protocol"
 
-	_ "github.com/dubbo/go-for-apache-dubbo/filter/imp"
+	_ "github.com/dubbo/go-for-apache-dubbo/filter/impl"
 
-	_ "github.com/dubbo/go-for-apache-dubbo/cluster/loadbalance"
 	_ "github.com/dubbo/go-for-apache-dubbo/cluster/cluster_impl"
+	_ "github.com/dubbo/go-for-apache-dubbo/cluster/loadbalance"
 	_ "github.com/dubbo/go-for-apache-dubbo/registry/zookeeper"
 )
 
diff --git a/examples/jsonrpc/go-client/app/user.go b/examples/jsonrpc/go-client/app/user.go
index a6010939e34a15fd2a8585f0c5da1805c4e66410..5030f81031bfb86b2fa59d7930afd4b18e794a6f 100644
--- a/examples/jsonrpc/go-client/app/user.go
+++ b/examples/jsonrpc/go-client/app/user.go
@@ -3,11 +3,11 @@ package main
 import (
 	"context"
 	"fmt"
-	"github.com/dubbo/go-for-apache-dubbo/config"
 )
 
 import (
 	"github.com/AlexStocks/goext/time"
+	"github.com/dubbo/go-for-apache-dubbo/config"
 )
 
 func init() {
diff --git a/examples/jsonrpc/go-client/benchmark/benchmark.go b/examples/jsonrpc/go-client/benchmark/benchmark.go
index ecf631f32818933231a128d88a9823d8383ec123..22281af491914ac9861a1580630115ee11893fad 100644
--- a/examples/jsonrpc/go-client/benchmark/benchmark.go
+++ b/examples/jsonrpc/go-client/benchmark/benchmark.go
@@ -20,7 +20,7 @@ import (
 	_ "github.com/dubbo/go-for-apache-dubbo/protocol/jsonrpc"
 	_ "github.com/dubbo/go-for-apache-dubbo/registry/protocol"
 
-	_ "github.com/dubbo/go-for-apache-dubbo/filter/imp"
+	_ "github.com/dubbo/go-for-apache-dubbo/filter/impl"
 
 	_ "github.com/dubbo/go-for-apache-dubbo/cluster/loadbalance"
 	_ "github.com/dubbo/go-for-apache-dubbo/cluster/cluster_impl"
diff --git a/examples/jsonrpc/go-server/app/server.go b/examples/jsonrpc/go-server/app/server.go
index ebaed7426da5e2bc8bb42cd62dc12fb77c0152bf..3d2c45ed98ba8c9de7e8e511c2dfe47fb7188c35 100644
--- a/examples/jsonrpc/go-server/app/server.go
+++ b/examples/jsonrpc/go-server/app/server.go
@@ -2,7 +2,6 @@ package main
 
 import (
 	"fmt"
-	"github.com/dubbo/go-for-apache-dubbo/config"
 	"net/http"
 	_ "net/http/pprof"
 	"os"
@@ -18,13 +17,14 @@ import (
 )
 
 import (
+	"github.com/dubbo/go-for-apache-dubbo/config"
 	_ "github.com/dubbo/go-for-apache-dubbo/protocol/jsonrpc"
 	_ "github.com/dubbo/go-for-apache-dubbo/registry/protocol"
 
-	_ "github.com/dubbo/go-for-apache-dubbo/filter/imp"
+	_ "github.com/dubbo/go-for-apache-dubbo/filter/impl"
 
-	_ "github.com/dubbo/go-for-apache-dubbo/cluster/loadbalance"
 	_ "github.com/dubbo/go-for-apache-dubbo/cluster/cluster_impl"
+	_ "github.com/dubbo/go-for-apache-dubbo/cluster/loadbalance"
 	_ "github.com/dubbo/go-for-apache-dubbo/registry/zookeeper"
 )
 
diff --git a/examples/jsonrpc/go-server/app/user.go b/examples/jsonrpc/go-server/app/user.go
index 5a0b5be99f629b00ae2d064be6a13125d3434913..ee3a2018b9317f3a873faf8bbebb9999721963c5 100644
--- a/examples/jsonrpc/go-server/app/user.go
+++ b/examples/jsonrpc/go-server/app/user.go
@@ -1,16 +1,15 @@
 package main
 
 import (
-	// "encoding/json"
 	"context"
 	"fmt"
-	"github.com/dubbo/go-for-apache-dubbo/config"
 	"time"
 )
 
 import (
 	"github.com/AlexStocks/goext/log"
 	"github.com/AlexStocks/goext/time"
+	"github.com/dubbo/go-for-apache-dubbo/config"
 )
 
 type Gender int
diff --git a/filter/imp/echo_filter.go b/filter/impl/echo_filter.go
similarity index 98%
rename from filter/imp/echo_filter.go
rename to filter/impl/echo_filter.go
index a8f8546bbb614df1759563db68dd5a2649b48b5d..3608cefd23a9c4412292ee8aadaedbbaa3a0026f 100644
--- a/filter/imp/echo_filter.go
+++ b/filter/impl/echo_filter.go
@@ -1,4 +1,4 @@
-package imp
+package impl
 
 import (
 	log "github.com/AlexStocks/log4go"
diff --git a/filter/imp/echo_filter_test.go b/filter/impl/echo_filter_test.go
similarity index 98%
rename from filter/imp/echo_filter_test.go
rename to filter/impl/echo_filter_test.go
index 4db247625bdabf2d486dfaeef9b93d6b80a0495b..89259478dfc0de4b772ae60a38860f546a82648a 100644
--- a/filter/imp/echo_filter_test.go
+++ b/filter/impl/echo_filter_test.go
@@ -1,4 +1,4 @@
-package imp
+package impl
 
 import (
 	"testing"
diff --git a/go.mod b/go.mod
index b7ab0cafd6a1a83c0a6a1c8bbcd5aa97071ae005..0ac34185945bf480df504888c9b65a76529b0ecc 100644
--- a/go.mod
+++ b/go.mod
@@ -1,18 +1,15 @@
 module github.com/dubbo/go-for-apache-dubbo
 
 require (
-	github.com/AlexStocks/getty v0.0.0-20190513191741-cb811d1c31dd
+	github.com/AlexStocks/getty v0.0.0-20190513203438-4a52b6874223
 	github.com/AlexStocks/goext v0.3.2
 	github.com/AlexStocks/log4go v1.0.2
-	github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc // indirect
-	github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf // indirect
-	github.com/dubbogo/hessian2 v0.0.0-20190410112310-f093e4436e31
+	github.com/dubbogo/hessian2 v0.0.0-20190513195500-efce02944002
 	github.com/juju/errors v0.0.0-20190207033735-e65537c515d7
 	github.com/montanaflynn/stats v0.5.0
 	github.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec
 	github.com/stretchr/testify v1.3.0
 	github.com/tevino/abool v0.0.0-20170917061928-9b9efcf221b5
 	go.uber.org/atomic v1.3.2
-	gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect
 	gopkg.in/yaml.v2 v2.2.2
 )
diff --git a/go.sum b/go.sum
index 3456290d657d9da8312e118150d0bc406559e7a5..46219102e3c2f445853950af42d65eeca5d3dfed 100644
--- a/go.sum
+++ b/go.sum
@@ -1,6 +1,6 @@
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-github.com/AlexStocks/getty v0.0.0-20190513191741-cb811d1c31dd h1:kLcmlBGDmo9S+VSmRnDTUFCq3wvlIh9CMd4zLWqY1+4=
-github.com/AlexStocks/getty v0.0.0-20190513191741-cb811d1c31dd/go.mod h1:n25mdqPgFi06sWL6mZTjm1hBIZuKwgXUVXAX+KGB97U=
+github.com/AlexStocks/getty v0.0.0-20190513203438-4a52b6874223 h1:3Sk5FwL8QpEHeJewYv4piyhOGOj2MS2Ev4S5tHTVSTo=
+github.com/AlexStocks/getty v0.0.0-20190513203438-4a52b6874223/go.mod h1:n25mdqPgFi06sWL6mZTjm1hBIZuKwgXUVXAX+KGB97U=
 github.com/AlexStocks/goext v0.3.2 h1:Bn4C+R6/E5Yjk2Uc/voawtbGv91x9aCid92xwYL2AS0=
 github.com/AlexStocks/goext v0.3.2 h1:Bn4C+R6/E5Yjk2Uc/voawtbGv91x9aCid92xwYL2AS0=
 github.com/AlexStocks/goext v0.3.2/go.mod h1:3M5j9Pjge4CdkNg2WIjRLUeoPedJHHKwkkglDGSl3Hc=
@@ -8,10 +8,6 @@ github.com/AlexStocks/goext v0.3.2/go.mod h1:3M5j9Pjge4CdkNg2WIjRLUeoPedJHHKwkkg
 github.com/AlexStocks/log4go v1.0.2 h1:1K5WM8KjSUECaoXUl8FSF05KGeCJDfBrhKUBsxwUvhk=
 github.com/AlexStocks/log4go v1.0.2/go.mod h1:6kCCRo/orDo8mh5CEDOeuSSM674wBQ8M6E0K8dVOIz4=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU=
-github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZqLG4oE62mJzwPIB8+Tee4RNCL9ulrY=
-github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0=
 github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
 github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U=
@@ -28,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
-github.com/dubbogo/hessian2 v0.0.0-20190410112310-f093e4436e31 h1:qgwFcVu63dt6cKbMICPQN3NKo6m9fC/6FdJbffnmXOU=
-github.com/dubbogo/hessian2 v0.0.0-20190410112310-f093e4436e31/go.mod h1:v+gfInE8fm/k3Fjkb2oUCKSO9LKbWvf+PtweEI89BmI=
+github.com/dubbogo/hessian2 v0.0.0-20190513195500-efce02944002 h1:qtXH4fHzFh1ezGWIdVrfIYxbaCUqbDpUwu2xIjnkw6I=
+github.com/dubbogo/hessian2 v0.0.0-20190513195500-efce02944002/go.mod h1:v+gfInE8fm/k3Fjkb2oUCKSO9LKbWvf+PtweEI89BmI=
 github.com/fatih/set v0.2.1/go.mod h1:+RKtMCH+favT2+3YecHGxcc0b4KyVWA1QWWJUs4E0CI=
 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
@@ -160,8 +156,6 @@ golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGm
 google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
-gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff --git a/protocol/dubbo/client.go b/protocol/dubbo/client.go
index 5ffa5aedc4e6ab962f93ee0d7d1db340328133b0..c094ea6a105bf89713bb016347dbbf8f0d54543c 100644
--- a/protocol/dubbo/client.go
+++ b/protocol/dubbo/client.go
@@ -278,10 +278,10 @@ func (c *Client) transfer(session getty.Session, pkg *DubboPackage,
 	if pkg == nil {
 		pkg = &DubboPackage{}
 		pkg.Body = []interface{}{}
-		pkg.Header.Type = hessian.Heartbeat
+		pkg.Header.Type = hessian.PackageHeartbeat
 		pkg.Header.SerialID = byte(S_Dubbo)
 	} else {
-		pkg.Header.Type = hessian.Request
+		pkg.Header.Type = hessian.PackageRequest
 	}
 	pkg.Header.ID = int64(sequence)
 
diff --git a/protocol/dubbo/codec.go b/protocol/dubbo/codec.go
index 43bdb3b08fec0d9d4f1674e4ea573fa159348b8a..ab7e95eb73529f6280eeb20c29396a483ef984a2 100644
--- a/protocol/dubbo/codec.go
+++ b/protocol/dubbo/codec.go
@@ -78,7 +78,7 @@ func (p *DubboPackage) Unmarshal(buf *bytes.Buffer, opts ...interface{}) error {
 		}
 	}
 
-	if p.Header.Type&hessian.Heartbeat != 0x00 {
+	if p.Header.Type&hessian.PackageHeartbeat != 0x00 {
 		return nil
 	}
 
diff --git a/protocol/dubbo/listener.go b/protocol/dubbo/listener.go
index 8620cd40ccfe6877b303a6795f737f7807dc477a..99a11feebd6861c4fd13d8721fcc094118fe45fd 100644
--- a/protocol/dubbo/listener.go
+++ b/protocol/dubbo/listener.go
@@ -2,6 +2,7 @@ package dubbo
 
 import (
 	"context"
+	"errors"
 	"reflect"
 	"sync"
 	"time"
@@ -67,7 +68,7 @@ func (h *RpcClientHandler) OnMessage(session getty.Session, pkg interface{}) {
 		return
 	}
 
-	if p.Header.Type&hessian.Heartbeat != 0x00 {
+	if p.Header.Type&hessian.PackageHeartbeat != 0x00 {
 		log.Debug("get rpc heartbeat response{header: %#v, body: %#v}", p.Header, p.Body)
 		return
 	}
@@ -176,15 +177,15 @@ func (h *RpcServerHandler) OnMessage(session getty.Session, pkg interface{}) {
 	p.Header.ResponseStatus = hessian.Response_OK
 
 	// heartbeat
-	if p.Header.Type&hessian.Heartbeat != 0x00 {
+	if p.Header.Type&hessian.PackageHeartbeat != 0x00 {
 		log.Debug("get rpc heartbeat request{header: %#v, service: %#v, body: %#v}", p.Header, p.Service, p.Body)
-		h.reply(session, p, hessian.Heartbeat)
+		h.reply(session, p, hessian.PackageHeartbeat)
 		return
 	}
 
 	// not twoway
-	if p.Header.Type&hessian.Request_TwoWay == 0x00 {
-		h.reply(session, p, hessian.Response)
+	if p.Header.Type&hessian.PackageRequest_TwoWay == 0x00 {
+		h.reply(session, p, hessian.PackageResponse)
 		h.callService(p, nil)
 		return
 	}
@@ -200,19 +201,19 @@ func (h *RpcServerHandler) OnMessage(session getty.Session, pkg interface{}) {
 		if err := result.Error(); err != nil {
 			p.Header.ResponseStatus = hessian.Response_SERVER_ERROR
 			p.Body = err
-			h.reply(session, p, hessian.Response)
+			h.reply(session, p, hessian.PackageResponse)
 			return
 		}
 		if res := result.Result(); res != nil {
 			p.Header.ResponseStatus = hessian.Response_OK
 			p.Body = res
-			h.reply(session, p, hessian.Response)
+			h.reply(session, p, hessian.PackageResponse)
 			return
 		}
 	}
 
 	h.callService(p, nil)
-	h.reply(session, p, hessian.Response)
+	h.reply(session, p, hessian.PackageResponse)
 }
 
 func (h *RpcServerHandler) OnCron(session getty.Session) {
@@ -262,7 +263,7 @@ func (h *RpcServerHandler) callService(req *DubboPackage, ctx context.Context) {
 	if svcIf == nil {
 		log.Error("service not found!")
 		req.Header.ResponseStatus = hessian.Response_SERVICE_NOT_FOUND
-		req.Body = nil
+		req.Body = errors.New("service not found")
 		return
 	}
 	svc := svcIf.(*common.Service)
@@ -270,7 +271,7 @@ func (h *RpcServerHandler) callService(req *DubboPackage, ctx context.Context) {
 	if method == nil {
 		log.Error("method not found!")
 		req.Header.ResponseStatus = hessian.Response_SERVICE_NOT_FOUND
-		req.Body = nil
+		req.Body = errors.New("method not found")
 		return
 	}
 
@@ -311,7 +312,7 @@ func (h *RpcServerHandler) callService(req *DubboPackage, ctx context.Context) {
 	}
 }
 
-func (h *RpcServerHandler) reply(session getty.Session, req *DubboPackage, tp hessian.PackgeType) {
+func (h *RpcServerHandler) reply(session getty.Session, req *DubboPackage, tp hessian.PackageType) {
 	resp := &DubboPackage{
 		Header: hessian.DubboHeader{
 			SerialID:       req.Header.SerialID,
@@ -321,7 +322,7 @@ func (h *RpcServerHandler) reply(session getty.Session, req *DubboPackage, tp he
 		},
 	}
 
-	if req.Header.Type&hessian.Request != 0x00 {
+	if req.Header.Type&hessian.PackageRequest != 0x00 {
 		resp.Body = req.Body
 	} else {
 		resp.Body = nil
diff --git a/protocol/protocolwrapper/protocol_filter_wrapper.go b/protocol/protocolwrapper/protocol_filter_wrapper.go
index 1d27b55d391d5535576cfcb468143e113e60ccf0..83097d9ea7cc19a246ab7f0763b0358c819e85a0 100644
--- a/protocol/protocolwrapper/protocol_filter_wrapper.go
+++ b/protocol/protocolwrapper/protocol_filter_wrapper.go
@@ -9,7 +9,7 @@ import (
 	"github.com/dubbo/go-for-apache-dubbo/common/constant"
 	"github.com/dubbo/go-for-apache-dubbo/common/extension"
 	"github.com/dubbo/go-for-apache-dubbo/filter"
-	"github.com/dubbo/go-for-apache-dubbo/filter/imp"
+	"github.com/dubbo/go-for-apache-dubbo/filter/impl"
 	"github.com/dubbo/go-for-apache-dubbo/protocol"
 )
 
@@ -49,7 +49,7 @@ func buildInvokerChain(invoker protocol.Invoker, key string) protocol.Invoker {
 		filtName = filtName + ","
 	}
 	if key == constant.SERVICE_FILTER_KEY { // echofilter must be the first in provider
-		filtName = imp.ECHO + "," + filtName
+		filtName = impl.ECHO + "," + filtName
 	}
 	filtNames := strings.Split(filtName, ",")
 	next := invoker