diff --git a/cmix/follow.go b/cmix/follow.go
index 7e75082ce0df42dd33860e1d3e65d4092de7096e..8e4dd03080c757aeca1d482d0e34660b65ab7924 100644
--- a/cmix/follow.go
+++ b/cmix/follow.go
@@ -87,7 +87,6 @@ func (c *client) followNetwork(report ClientErrorReport,
 			stop.ToStopped()
 			return
 		case <-ticker.C:
-
 			operator := func(toTrack []receptionID.IdentityUse) error {
 
 				// set up tracking tools
diff --git a/cmix/gateway/hostPool.go b/cmix/gateway/hostPool.go
index df35eb0eca44fed2cf3f841ba869b0e0e1ac2960..d39e71596ef644a444f5cd6056e97e9a10ea3f39 100644
--- a/cmix/gateway/hostPool.go
+++ b/cmix/gateway/hostPool.go
@@ -128,7 +128,7 @@ type poolParamsDisk struct {
 // DefaultPoolParams returns a default set of PoolParams.
 func DefaultPoolParams() PoolParams {
 	p := PoolParams{
-		MaxPoolSize:     30,
+		MaxPoolSize:     5,
 		ProxyAttempts:   5,
 		PoolSize:        0,
 		MaxPings:        0,
diff --git a/cmix/nodes/register.go b/cmix/nodes/register.go
index 5d2249ec617e7d39af16bcdd58cc0bd0d7879558..8cada7d120e663cf9ef075d11fe72c3c409c7859 100644
--- a/cmix/nodes/register.go
+++ b/cmix/nodes/register.go
@@ -134,6 +134,8 @@ func registerWithNode(sender gateway.Sender, comms RegisterNodeCommsInterface,
 	var transmissionKey *cyclic.Int
 	var validUntil uint64
 	var keyId []byte
+
+	start := time.Now()
 	// TODO: should move this to a pre-canned user initialization
 	if s.IsPrecanned() {
 		userNum := int(s.GetTransmissionID().Bytes()[7])
@@ -156,7 +158,8 @@ func registerWithNode(sender gateway.Sender, comms RegisterNodeCommsInterface,
 
 	r.add(nodeID, transmissionKey, validUntil, keyId)
 
-	jww.INFO.Printf("Completed registration with node %s", nodeID)
+	jww.INFO.Printf("Completed registration with node %s,"+
+		" took %d", nodeID, time.Since(start))
 
 	return nil
 }
diff --git a/cmix/nodes/request.go b/cmix/nodes/request.go
index 455a0e3832d2b0792af4fbeb11bc00f1c79a8636..978cd01a33fb6df3ecf05de7459f35b19d4dad9b 100644
--- a/cmix/nodes/request.go
+++ b/cmix/nodes/request.go
@@ -9,6 +9,7 @@ package nodes
 
 import (
 	"io"
+	"time"
 
 	"github.com/golang/protobuf/proto"
 	"github.com/pkg/errors"
@@ -41,9 +42,9 @@ func requestKey(sender gateway.Sender, comms RegisterNodeCommsInterface,
 	// Generate a Diffie-Hellman keypair
 	grp := r.session.GetCmixGroup()
 
+	start := time.Now()
 	prime := grp.GetPBytes()
-	keyLen := len(prime)
-	dhPrivBytes, err := csprng.GenerateInGroup(prime, keyLen, rng)
+	dhPrivBytes, err := csprng.GenerateInGroup(prime, 32, rng)
 	if err != nil {
 		return nil, nil, 0, err
 	}
@@ -66,9 +67,11 @@ func requestKey(sender gateway.Sender, comms RegisterNodeCommsInterface,
 
 	// Request nonce message from gateway
 	jww.INFO.Printf("Register: Requesting client key from "+
-		"gateway %s", gatewayID)
+		"gateway %s, setup took %s", gatewayID, time.Since(start))
 
+	start = time.Now()
 	result, err := sender.SendToAny(func(host *connect.Host) (interface{}, error) {
+		startInternal := time.Now()
 		keyResponse, err2 := comms.SendRequestClientKeyMessage(host, signedKeyReq)
 		if err2 != nil {
 			return nil, errors.WithMessagef(err2,
@@ -78,9 +81,11 @@ func requestKey(sender gateway.Sender, comms RegisterNodeCommsInterface,
 			return nil, errors.WithMessage(err2,
 				"requestKey: clientKeyResponse error")
 		}
+		jww.TRACE.Printf("just comm reg request took %s", time.Since(startInternal))
 
 		return keyResponse, nil
 	}, stop)
+	jww.TRACE.Printf("full reg request took %s", time.Since(start))
 
 	if err != nil {
 		return nil, nil, 0, err
@@ -188,11 +193,14 @@ func processRequestResponse(signedKeyResponse *pb.SignedKeyResponse,
 	// Convert Node DH Public key to a cyclic.Int
 	nodeDHPub := grp.NewIntFromBytes(keyResponse.NodeDHPubKey)
 
+	start := time.Now()
 	// Construct the session key
 	h.Reset()
 	sessionKey := registration.GenerateBaseKey(grp,
 		nodeDHPub, dhPrivKey, h)
 
+	jww.INFO.Printf("DH for reg took %s", time.Since(start))
+
 	// Verify the HMAC
 	if !registration.VerifyClientHMAC(sessionKey.Bytes(),
 		keyResponse.EncryptedClientKey, opts.Hash.New,