decouple packet channel from server struct

looking to create 2 pools, so I want to pass the channel in
diff --git a/server.go b/server.go
index a61f544..39011f8 100644
--- a/server.go
+++ b/server.go
@@ -29,7 +29,6 @@
 	serverConn
 	debugStream   io.Writer
 	readOnly      bool
-	pktChan       chan requestPacket
 	pktMgr        packetManager
 	openFiles     map[string]*os.File
 	openFilesLock sync.RWMutex
@@ -85,7 +84,6 @@
 	s := &Server{
 		serverConn:  svrConn,
 		debugStream: ioutil.Discard,
-		pktChan:     make(chan requestPacket, sftpServerWorkerCount),
 		pktMgr:      newPktMgr(&svrConn),
 		openFiles:   make(map[string]*os.File),
 		maxTxPacket: 1 << 15,
@@ -125,8 +123,8 @@
 }
 
 // Up to N parallel servers
-func (svr *Server) sftpServerWorker() error {
-	for pkt := range svr.pktChan {
+func (svr *Server) sftpServerWorker(pktChan chan requestPacket) error {
+	for pkt := range pktChan {
 
 		// readonly checks
 		readonly := true
@@ -285,10 +283,11 @@
 func (svr *Server) Serve() error {
 	var wg sync.WaitGroup
 	wg.Add(sftpServerWorkerCount)
+	pktChan := make(chan requestPacket, sftpServerWorkerCount)
 	for i := 0; i < sftpServerWorkerCount; i++ {
 		go func() {
 			defer wg.Done()
-			if err := svr.sftpServerWorker(); err != nil {
+			if err := svr.sftpServerWorker(pktChan); err != nil {
 				svr.conn.Close() // shuts down recvPacket
 			}
 		}()
@@ -312,10 +311,10 @@
 		}
 
 		svr.pktMgr.incomingPacket(pkt)
-		svr.pktChan <- pkt
+		pktChan <- pkt
 	}
 
-	close(svr.pktChan) // shuts down sftpServerWorkers
+	close(pktChan)     // shuts down sftpServerWorkers
 	wg.Wait()          // wait for all workers to exit
 	svr.pktMgr.close() // shuts down packetManager