diff --git a/protocol/ashe/engine_test.go b/protocol/ashe/engine_test.go
index c21a13a..edf494f 100644
--- a/protocol/ashe/engine_test.go
+++ b/protocol/ashe/engine_test.go
@@ -17,9 +17,9 @@ const (
 )
 
 func TestProtocolAsheTCP(t *testing.T) {
-	remote := daze.NewTester(EchoServerListenOn)
-	defer remote.Close()
-	remote.TCP()
+	dazeRemote := daze.NewTester(EchoServerListenOn)
+	defer dazeRemote.Close()
+	dazeRemote.TCP()
 
 	dazeServer := NewServer(DazeServerListenOn, Password)
 	defer dazeServer.Close()
@@ -36,7 +36,6 @@ func TestProtocolAsheTCP(t *testing.T) {
 		cnt int
 		rsz = int(rand.Uint32N(65536))
 	)
-
 	copy(buf[0:2], []byte{0x00, 0x00})
 	binary.BigEndian.PutUint16(buf[2:], uint16(rsz))
 	doa.Try(cli.Write(buf[:4]))
@@ -52,7 +51,6 @@ func TestProtocolAsheTCP(t *testing.T) {
 			break
 		}
 	}
-
 	copy(buf[0:2], []byte{0x01, 0x00})
 	binary.BigEndian.PutUint16(buf[2:], uint16(rsz))
 	doa.Try(cli.Write(buf[:4]))
@@ -71,9 +69,9 @@ func TestProtocolAsheTCP(t *testing.T) {
 }
 
 func TestProtocolAsheTCPClientClose(t *testing.T) {
-	remote := daze.NewTester(EchoServerListenOn)
-	defer remote.Close()
-	remote.TCP()
+	dazeRemote := daze.NewTester(EchoServerListenOn)
+	defer dazeRemote.Close()
+	dazeRemote.TCP()
 
 	dazeServer := NewServer(DazeServerListenOn, Password)
 	defer dazeServer.Close()
@@ -85,17 +83,15 @@ func TestProtocolAsheTCPClientClose(t *testing.T) {
 	defer cli.Close()
 
 	cli.Close()
-	_, er1 := cli.Write([]byte{0x02, 0x00, 0x00, 0x00})
-	doa.Doa(er1 != nil)
-	buf := make([]byte, 2048)
-	_, er2 := io.ReadFull(cli, buf[:1])
-	doa.Doa(er2 != nil)
+	doa.Doa(doa.Err(cli.Write([]byte{0x02, 0x00, 0x00, 0x00})) != nil)
+	buf := make([]byte, 1)
+	doa.Doa(doa.Err(io.ReadFull(cli, buf[:1])) != nil)
 }
 
 func TestProtocolAsheTCPServerClose(t *testing.T) {
-	remote := daze.NewTester(EchoServerListenOn)
-	defer remote.Close()
-	remote.TCP()
+	dazeRemote := daze.NewTester(EchoServerListenOn)
+	defer dazeRemote.Close()
+	dazeRemote.TCP()
 
 	dazeServer := NewServer(DazeServerListenOn, Password)
 	defer dazeServer.Close()
@@ -106,16 +102,15 @@ func TestProtocolAsheTCPServerClose(t *testing.T) {
 	cli := doa.Try(dazeClient.Dial(ctx, "tcp", EchoServerListenOn))
 	defer cli.Close()
 
-	buf := make([]byte, 2048)
 	doa.Try(cli.Write([]byte{0x02, 0x00, 0x00, 0x00}))
-	_, err := io.ReadFull(cli, buf[:1])
-	doa.Doa(err != nil)
+	buf := make([]byte, 1)
+	doa.Doa(doa.Err(io.ReadFull(cli, buf[:1])) != nil)
 }
 
 func TestProtocolAsheUDP(t *testing.T) {
-	remote := daze.NewTester(EchoServerListenOn)
-	defer remote.Close()
-	remote.UDP()
+	dazeRemote := daze.NewTester(EchoServerListenOn)
+	defer dazeRemote.Close()
+	dazeRemote.UDP()
 
 	dazeServer := NewServer(DazeServerListenOn, Password)
 	defer dazeServer.Close()
@@ -126,7 +121,7 @@ func TestProtocolAsheUDP(t *testing.T) {
 	cli := doa.Try(dazeClient.Dial(ctx, "udp", EchoServerListenOn))
 	defer cli.Close()
 
-	buf := make([]byte, 2048)
 	doa.Try(cli.Write([]byte{0x00, 0x00, 0x00, 0x80}))
+	buf := make([]byte, 128)
 	doa.Try(io.ReadFull(cli, buf[:128]))
 }
diff --git a/protocol/baboon/engine_test.go b/protocol/baboon/engine_test.go
index f01737a..5283454 100644
--- a/protocol/baboon/engine_test.go
+++ b/protocol/baboon/engine_test.go
@@ -19,9 +19,9 @@ const (
 )
 
 func TestProtocolBaboonTCP(t *testing.T) {
-	remote := daze.NewTester(EchoServerListenOn)
-	defer remote.Close()
-	remote.TCP()
+	dazeRemote := daze.NewTester(EchoServerListenOn)
+	defer dazeRemote.Close()
+	dazeRemote.TCP()
 
 	dazeServer := NewServer(DazeServerListenOn, Password)
 	defer dazeServer.Close()
@@ -38,7 +38,6 @@ func TestProtocolBaboonTCP(t *testing.T) {
 		cnt int
 		rsz = int(rand.Uint32N(65536))
 	)
-
 	copy(buf[0:2], []byte{0x00, 0x00})
 	binary.BigEndian.PutUint16(buf[2:], uint16(rsz))
 	doa.Try(cli.Write(buf[:4]))
@@ -54,7 +53,6 @@ func TestProtocolBaboonTCP(t *testing.T) {
 			break
 		}
 	}
-
 	copy(buf[0:2], []byte{0x01, 0x00})
 	binary.BigEndian.PutUint16(buf[2:], uint16(rsz))
 	doa.Try(cli.Write(buf[:4]))
@@ -73,9 +71,9 @@ func TestProtocolBaboonTCP(t *testing.T) {
 }
 
 func TestProtocolBaboonTCPClientClose(t *testing.T) {
-	remote := daze.NewTester(EchoServerListenOn)
-	defer remote.Close()
-	remote.TCP()
+	dazeRemote := daze.NewTester(EchoServerListenOn)
+	defer dazeRemote.Close()
+	dazeRemote.TCP()
 
 	dazeServer := NewServer(DazeServerListenOn, Password)
 	defer dazeServer.Close()
@@ -87,17 +85,15 @@ func TestProtocolBaboonTCPClientClose(t *testing.T) {
 	defer cli.Close()
 
 	cli.Close()
-	_, er1 := cli.Write([]byte{0x02, 0x00, 0x00, 0x00})
-	doa.Doa(er1 != nil)
-	buf := make([]byte, 2048)
-	_, er2 := io.ReadFull(cli, buf[:1])
-	doa.Doa(er2 != nil)
+	doa.Doa(doa.Err(cli.Write([]byte{0x02, 0x00, 0x00, 0x00})) != nil)
+	buf := make([]byte, 1)
+	doa.Doa(doa.Err(io.ReadFull(cli, buf[:1])) != nil)
 }
 
 func TestProtocolBaboonTCPServerClose(t *testing.T) {
-	remote := daze.NewTester(EchoServerListenOn)
-	defer remote.Close()
-	remote.TCP()
+	dazeRemote := daze.NewTester(EchoServerListenOn)
+	defer dazeRemote.Close()
+	dazeRemote.TCP()
 
 	dazeServer := NewServer(DazeServerListenOn, Password)
 	defer dazeServer.Close()
@@ -108,16 +104,15 @@ func TestProtocolBaboonTCPServerClose(t *testing.T) {
 	cli := doa.Try(dazeClient.Dial(ctx, "tcp", EchoServerListenOn))
 	defer cli.Close()
 
-	buf := make([]byte, 2048)
 	doa.Try(cli.Write([]byte{0x02, 0x00, 0x00, 0x00}))
-	_, err := io.ReadFull(cli, buf[:1])
-	doa.Doa(err != nil)
+	buf := make([]byte, 1)
+	doa.Doa(doa.Err(io.ReadFull(cli, buf[:1])) != nil)
 }
 
 func TestProtocolBaboonUDP(t *testing.T) {
-	remote := daze.NewTester(EchoServerListenOn)
-	defer remote.Close()
-	remote.UDP()
+	dazeRemote := daze.NewTester(EchoServerListenOn)
+	defer dazeRemote.Close()
+	dazeRemote.UDP()
 
 	dazeServer := NewServer(DazeServerListenOn, Password)
 	defer dazeServer.Close()
@@ -128,8 +123,8 @@ func TestProtocolBaboonUDP(t *testing.T) {
 	cli := doa.Try(dazeClient.Dial(ctx, "udp", EchoServerListenOn))
 	defer cli.Close()
 
-	buf := make([]byte, 2048)
 	doa.Try(cli.Write([]byte{0x00, 0x00, 0x00, 0x80}))
+	buf := make([]byte, 128)
 	doa.Try(io.ReadFull(cli, buf[:128]))
 }
 
diff --git a/protocol/czar/engine_test.go b/protocol/czar/engine_test.go
index 742c8fc..f86bfbe 100644
--- a/protocol/czar/engine_test.go
+++ b/protocol/czar/engine_test.go
@@ -17,9 +17,9 @@ const (
 )
 
 func TestProtocolCzarTCP(t *testing.T) {
-	remote := daze.NewTester(EchoServerListenOn)
-	defer remote.Close()
-	remote.TCP()
+	dazeRemote := daze.NewTester(EchoServerListenOn)
+	defer dazeRemote.Close()
+	dazeRemote.TCP()
 
 	dazeServer := NewServer(DazeServerListenOn, Password)
 	defer dazeServer.Close()
@@ -37,7 +37,6 @@ func TestProtocolCzarTCP(t *testing.T) {
 		cnt int
 		rsz = int(rand.Uint32N(65536))
 	)
-
 	copy(buf[0:2], []byte{0x00, 0x00})
 	binary.BigEndian.PutUint16(buf[2:], uint16(rsz))
 	doa.Try(cli.Write(buf[:4]))
@@ -53,7 +52,6 @@ func TestProtocolCzarTCP(t *testing.T) {
 			break
 		}
 	}
-
 	copy(buf[0:2], []byte{0x01, 0x00})
 	binary.BigEndian.PutUint16(buf[2:], uint16(rsz))
 	doa.Try(cli.Write(buf[:4]))
@@ -72,9 +70,9 @@ func TestProtocolCzarTCP(t *testing.T) {
 }
 
 func TestProtocolCzarTCPClientClose(t *testing.T) {
-	remote := daze.NewTester(EchoServerListenOn)
-	defer remote.Close()
-	remote.TCP()
+	dazeRemote := daze.NewTester(EchoServerListenOn)
+	defer dazeRemote.Close()
+	dazeRemote.TCP()
 
 	dazeServer := NewServer(DazeServerListenOn, Password)
 	defer dazeServer.Close()
@@ -86,18 +84,16 @@ func TestProtocolCzarTCPClientClose(t *testing.T) {
 	cli := doa.Try(dazeClient.Dial(ctx, "tcp", EchoServerListenOn))
 	defer cli.Close()
 
-	buf := make([]byte, 2048)
 	cli.Close()
-	_, er1 := cli.Write([]byte{0x02, 0x00, 0x00, 0x00})
-	doa.Doa(er1 != nil)
-	_, er2 := io.ReadFull(cli, buf[:1])
-	doa.Doa(er2 != nil)
+	doa.Doa(doa.Err(cli.Write([]byte{0x02, 0x00, 0x00, 0x00})) != nil)
+	buf := make([]byte, 1)
+	doa.Doa(doa.Err(io.ReadFull(cli, buf[:1])) != nil)
 }
 
 func TestProtocolCzarTCPServerClose(t *testing.T) {
-	remote := daze.NewTester(EchoServerListenOn)
-	defer remote.Close()
-	remote.TCP()
+	dazeRemote := daze.NewTester(EchoServerListenOn)
+	defer dazeRemote.Close()
+	dazeRemote.TCP()
 
 	dazeServer := NewServer(DazeServerListenOn, Password)
 	defer dazeServer.Close()
@@ -109,16 +105,15 @@ func TestProtocolCzarTCPServerClose(t *testing.T) {
 	cli := doa.Try(dazeClient.Dial(ctx, "tcp", EchoServerListenOn))
 	defer cli.Close()
 
-	buf := make([]byte, 2048)
 	doa.Try(cli.Write([]byte{0x02, 0x00, 0x00, 0x00}))
-	_, err := io.ReadFull(cli, buf[:1])
-	doa.Doa(err != nil)
+	buf := make([]byte, 1)
+	doa.Doa(doa.Err(io.ReadFull(cli, buf[:1])) != nil)
 }
 
 func TestProtocolCzarUDP(t *testing.T) {
-	remote := daze.NewTester(EchoServerListenOn)
-	defer remote.Close()
-	remote.UDP()
+	dazeRemote := daze.NewTester(EchoServerListenOn)
+	defer dazeRemote.Close()
+	dazeRemote.UDP()
 
 	dazeServer := NewServer(DazeServerListenOn, Password)
 	defer dazeServer.Close()
@@ -130,7 +125,7 @@ func TestProtocolCzarUDP(t *testing.T) {
 	cli := doa.Try(dazeClient.Dial(ctx, "udp", EchoServerListenOn))
 	defer cli.Close()
 
-	buf := make([]byte, 2048)
 	doa.Try(cli.Write([]byte{0x00, 0x00, 0x00, 0x80}))
+	buf := make([]byte, 128)
 	doa.Try(io.ReadFull(cli, buf[:128]))
 }
diff --git a/protocol/czar/mux_test.go b/protocol/czar/mux_test.go
index ba7a873..87ab21a 100644
--- a/protocol/czar/mux_test.go
+++ b/protocol/czar/mux_test.go
@@ -7,7 +7,6 @@ import (
 	"log"
 	"math/rand/v2"
 	"net"
-	"strings"
 	"testing"
 
 	"github.com/mohanson/daze"
@@ -15,9 +14,9 @@ import (
 )
 
 func TestProtocolCzarMux(t *testing.T) {
-	remote := Tester{daze.NewTester(EchoServerListenOn)}
-	remote.Mux()
-	defer remote.Close()
+	rmt := &Tester{daze.NewTester(EchoServerListenOn)}
+	rmt.Mux()
+	defer rmt.Close()
 
 	mux := NewMuxClient(doa.Try(net.Dial("tcp", EchoServerListenOn)))
 	defer mux.Close()
@@ -30,7 +29,6 @@ func TestProtocolCzarMux(t *testing.T) {
 		cnt int
 		rsz = int(rand.Uint32N(65536))
 	)
-
 	copy(buf[0:2], []byte{0x00, 0x00})
 	binary.BigEndian.PutUint16(buf[2:], uint16(rsz))
 	doa.Try(cli.Write(buf[:4]))
@@ -46,7 +44,6 @@ func TestProtocolCzarMux(t *testing.T) {
 			break
 		}
 	}
-
 	copy(buf[0:2], []byte{0x01, 0x00})
 	binary.BigEndian.PutUint16(buf[2:], uint16(rsz))
 	doa.Try(cli.Write(buf[:4]))
@@ -65,36 +62,39 @@ func TestProtocolCzarMux(t *testing.T) {
 }
 
 func TestProtocolCzarMuxStreamClientClose(t *testing.T) {
-	remote := Tester{daze.NewTester(EchoServerListenOn)}
-	remote.Mux()
-	defer remote.Close()
+	rmt := &Tester{daze.NewTester(EchoServerListenOn)}
+	rmt.Mux()
+	defer rmt.Close()
 
 	mux := NewMuxClient(doa.Try(net.Dial("tcp", EchoServerListenOn)))
 	defer mux.Close()
 	cli := doa.Try(mux.Open())
+
 	cli.Close()
 	doa.Doa(doa.Err(cli.Write([]byte{0x00, 0x00, 0x00, 0x80})) == io.ErrClosedPipe)
+	buf := make([]byte, 1)
+	doa.Doa(doa.Err(io.ReadFull(cli, buf[:1])) == io.ErrClosedPipe)
 }
 
 func TestProtocolCzarMuxStreamServerClose(t *testing.T) {
-	remote := Tester{daze.NewTester(EchoServerListenOn)}
-	remote.Mux()
-	defer remote.Close()
+	rmt := Tester{daze.NewTester(EchoServerListenOn)}
+	rmt.Mux()
+	defer rmt.Close()
 
 	mux := NewMuxClient(doa.Try(net.Dial("tcp", EchoServerListenOn)))
 	defer mux.Close()
 	cli := doa.Try(mux.Open())
 	defer cli.Close()
 
-	buf := make([]byte, 2048)
-	doa.Try(cli.Write([]byte{0x02, 0x00, 0x00, 0x80}))
+	doa.Try(cli.Write([]byte{0x02, 0x00, 0x00, 0x00}))
+	buf := make([]byte, 1)
 	doa.Doa(doa.Err(io.ReadFull(cli, buf[:1])) == io.EOF)
 }
 
 func TestProtocolCzarMuxStreamClientReuse(t *testing.T) {
-	remote := Tester{daze.NewTester(EchoServerListenOn)}
-	remote.Mux()
-	defer remote.Close()
+	rmt := &Tester{daze.NewTester(EchoServerListenOn)}
+	rmt.Mux()
+	defer rmt.Close()
 
 	mux := NewMuxClient(doa.Try(net.Dial("tcp", EchoServerListenOn)))
 	defer mux.Close()
@@ -121,9 +121,9 @@ func TestProtocolCzarMuxStreamClientReuse(t *testing.T) {
 }
 
 func TestProtocolCzarMuxClientClose(t *testing.T) {
-	remote := Tester{daze.NewTester(EchoServerListenOn)}
-	remote.Mux()
-	defer remote.Close()
+	rmt := &Tester{daze.NewTester(EchoServerListenOn)}
+	rmt.Mux()
+	defer rmt.Close()
 
 	mux := NewMuxClient(doa.Try(net.Dial("tcp", EchoServerListenOn)))
 	defer mux.Close()
@@ -131,27 +131,24 @@ func TestProtocolCzarMuxClientClose(t *testing.T) {
 	defer cli.Close()
 
 	mux.con.Close()
-	buf := make([]byte, 2048)
-	er0 := doa.Err(mux.Open())
-	doa.Doa(strings.Contains(er0.Error(), "use of closed network connection"))
-	er1 := doa.Err(io.ReadFull(cli, buf[:1]))
-	doa.Doa(strings.Contains(er1.Error(), "use of closed network connection"))
-	er2 := doa.Err(cli.Write([]byte{0x00, 0x00, 0x00, 0x80}))
-	doa.Doa(strings.Contains(er2.Error(), "use of closed network connection"))
+	doa.Doa(doa.Err(mux.Open()) != nil)
+	buf := make([]byte, 1)
+	doa.Doa(doa.Err(io.ReadFull(cli, buf[:1])) != nil)
+	doa.Doa(doa.Err(cli.Write([]byte{0x02, 0x00, 0x00, 0x00})) != nil)
 }
 
-func TestProtocolCzarMuxServerRecvEvilPacket(t *testing.T) {
-	remote := Tester{daze.NewTester(EchoServerListenOn)}
-	remote.Mux()
-	defer remote.Close()
-
-	buf := make([]byte, 2048)
-	cl1 := doa.Try(net.Dial("tcp", EchoServerListenOn))
-	defer cl1.Close()
-	cl1.Write([]byte{0x00, 0x00, 0x00, 0x00})
-	cl1.Write([]byte{0x00, 0x00, 0x00, 0x00})
-	_, er1 := io.ReadFull(cl1, buf[:1])
-	doa.Doa(er1 != nil)
+func TestProtocolCzarMuxServerReopen(t *testing.T) {
+	rmt := &Tester{daze.NewTester(EchoServerListenOn)}
+	rmt.Mux()
+	defer rmt.Close()
+
+	cli := doa.Try(net.Dial("tcp", EchoServerListenOn))
+	defer cli.Close()
+
+	cli.Write([]byte{0x00, 0x00, 0x00, 0x00})
+	cli.Write([]byte{0x00, 0x00, 0x00, 0x00})
+	buf := make([]byte, 1)
+	doa.Doa(doa.Err(io.ReadFull(cli, buf[:1])) != nil)
 }
 
 type Tester struct {
diff --git a/protocol/dahlia/engine_test.go b/protocol/dahlia/engine_test.go
index 10968e0..647f9c0 100644
--- a/protocol/dahlia/engine_test.go
+++ b/protocol/dahlia/engine_test.go
@@ -18,9 +18,9 @@ const (
 )
 
 func TestProtocolDahliaTCP(t *testing.T) {
-	remote := daze.NewTester(EchoServerListenOn)
-	defer remote.Close()
-	remote.TCP()
+	dazeRemote := daze.NewTester(EchoServerListenOn)
+	defer dazeRemote.Close()
+	dazeRemote.TCP()
 
 	dazeServer := NewServer(DazeServerListenOn, EchoServerListenOn, Password)
 	defer dazeServer.Close()
@@ -29,7 +29,6 @@ func TestProtocolDahliaTCP(t *testing.T) {
 	dazeClient := NewClient(DazeClientListenOn, DazeServerListenOn, Password)
 	defer dazeClient.Close()
 	dazeClient.Run()
-
 	cli := doa.Try(daze.Dial("tcp", DazeClientListenOn))
 	defer cli.Close()
 
@@ -39,7 +38,6 @@ func TestProtocolDahliaTCP(t *testing.T) {
 		cnt int
 		rsz = int(rand.Uint32N(65536))
 	)
-
 	copy(buf[0:2], []byte{0x00, 0x00})
 	binary.BigEndian.PutUint16(buf[2:], uint16(rsz))
 	doa.Try(cli.Write(buf[:4]))
@@ -55,7 +53,6 @@ func TestProtocolDahliaTCP(t *testing.T) {
 			break
 		}
 	}
-
 	copy(buf[0:2], []byte{0x01, 0x00})
 	binary.BigEndian.PutUint16(buf[2:], uint16(rsz))
 	doa.Try(cli.Write(buf[:4]))