diff --git a/cmd/version.go b/cmd/version.go
index d0c040e37137638198676a1fdf9864d210377a82..6c1554e85a22f396b1a7b9dab34df59801ab34a6 100644
--- a/cmd/version.go
+++ b/cmd/version.go
@@ -16,7 +16,7 @@ import (
 )
 
 // Change this value to set the version for this build
-const currentVersion = "1.5.0"
+const currentVersion = "1.6.0"
 
 func printVersion() {
 	fmt.Printf("xx network Server v%s -- %s\n\n", SEMVER, GITVERSION)
diff --git a/cmd/version_vars.go b/cmd/version_vars.go
index a93a0e5164fb16cb2f10ade80e5dc7696be9915c..762a70dbb53317825c45ff9c842a6daab5556791 100644
--- a/cmd/version_vars.go
+++ b/cmd/version_vars.go
@@ -1,10 +1,10 @@
 // Code generated by go generate; DO NOT EDIT.
 // This file was generated by robots at
-// 2020-09-17 15:59:14.55514476 -0700 PDT m=+0.013273410
+// 2020-10-07 09:59:33.842402123 -0700 PDT m=+0.006538116
 package cmd
 
-const GITVERSION = `cfc34f08 Update dependencies`
-const SEMVER = "1.5.0"
+const GITVERSION = `0019f7b7 Point to a hotfix comms branch`
+const SEMVER = "1.6.0"
 const DEPENDENCIES = `module gitlab.com/elixxir/server
 
 go 1.13
@@ -29,13 +29,14 @@ require (
 	github.com/spf13/jwalterweatherman v1.1.0
 	github.com/spf13/pflag v1.0.5 // indirect
 	github.com/spf13/viper v1.6.3
-	gitlab.com/elixxir/comms v0.0.0-20200917221445-8a509560122a
-	gitlab.com/elixxir/crypto v0.0.0-20200731174640-0503cf80524a
-	gitlab.com/elixxir/gpumathsgo v0.0.2-0.20200617001921-1de1fff56304
-	gitlab.com/elixxir/primitives v0.0.0-20200708185800-a06e961280e6
+	gitlab.com/elixxir/comms v0.0.0-20201007164918-8331c82e4f19
+	gitlab.com/elixxir/crypto v0.0.0-20200929234850-a63eab712d94
+	gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201007163558-0fea70f49fe0
+	gitlab.com/elixxir/primitives v0.0.0-20200929202834-811c810c6387
 	gitlab.com/xx_network/comms v0.0.0-20200916172635-6ab807c3c820
-	golang.org/x/crypto v0.0.0-20200707235045-ab33eee955e0
-	google.golang.org/grpc v1.30.0
+	gitlab.com/xx_network/crypto v0.0.0-20200806202113-978fa1984bbf // indirect
+	golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de
+	google.golang.org/grpc v1.31.0
 	gopkg.in/ini.v1 v1.55.0 // indirect
 	gopkg.in/yaml.v2 v2.3.0
 	mellium.im/sasl v0.0.0-20190815210834-e27ea4901008 // indirect
diff --git a/go.mod b/go.mod
index 3aeb3a07b79fb1c882ba0d2b8fb51e310e50455f..efb6f1a24510131666b0be4f28fe289ff49caa1e 100644
--- a/go.mod
+++ b/go.mod
@@ -22,13 +22,14 @@ require (
 	github.com/spf13/jwalterweatherman v1.1.0
 	github.com/spf13/pflag v1.0.5 // indirect
 	github.com/spf13/viper v1.6.3
-	gitlab.com/elixxir/comms v0.0.0-20200917221445-8a509560122a
-	gitlab.com/elixxir/crypto v0.0.0-20200731174640-0503cf80524a
-	gitlab.com/elixxir/gpumathsgo v0.0.2-0.20200617001921-1de1fff56304
-	gitlab.com/elixxir/primitives v0.0.0-20200708185800-a06e961280e6
+	gitlab.com/elixxir/comms v0.0.0-20201007164918-8331c82e4f19
+	gitlab.com/elixxir/crypto v0.0.0-20200929234850-a63eab712d94
+	gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201007163558-0fea70f49fe0
+	gitlab.com/elixxir/primitives v0.0.0-20200929202834-811c810c6387
 	gitlab.com/xx_network/comms v0.0.0-20200916172635-6ab807c3c820
-	golang.org/x/crypto v0.0.0-20200707235045-ab33eee955e0
-	google.golang.org/grpc v1.30.0
+	gitlab.com/xx_network/crypto v0.0.0-20200806202113-978fa1984bbf // indirect
+	golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de
+	google.golang.org/grpc v1.31.0
 	gopkg.in/ini.v1 v1.55.0 // indirect
 	gopkg.in/yaml.v2 v2.3.0
 	mellium.im/sasl v0.0.0-20190815210834-e27ea4901008 // indirect
diff --git a/go.sum b/go.sum
index 08d9a1cd3be38f4fbfe56255aa5605529c23615d..a1e3c909e68cc0932bc33ad8ccd110b0c0057b51 100644
--- a/go.sum
+++ b/go.sum
@@ -197,24 +197,62 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1
 github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
 github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
+github.com/zeebo/assert v0.0.0-20181109011804-10f827ce2ed6/go.mod h1:yssERNPivllc1yU3BvpjYI5BUW+zglcz6QWqeVRL5t0=
+github.com/zeebo/assert v1.1.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0=
+github.com/zeebo/blake3 v0.0.4/go.mod h1:YOZo8A49yNqM0X/Y+JmDUZshJWLt1laHsNSn5ny2i34=
+github.com/zeebo/pcg v0.0.0-20181207190024-3cdc6b625a05/go.mod h1:Gr+78ptB0MwXxm//LBaEvBiaXY7hXJ6KGe2V32X2F6E=
 gitlab.com/elixxir/comms v0.0.0-20200707210150-b8ebd0951d23 h1:ikyf3DPibZq+SsVUeT6swPR53P9gjzfNzrKR172KNPg=
 gitlab.com/elixxir/comms v0.0.0-20200707210150-b8ebd0951d23/go.mod h1:OsWMZ1O/R9fOkm+PoHnR3rkXfFtipGoPs73FuKuurHY=
 gitlab.com/elixxir/comms v0.0.0-20200917221445-8a509560122a h1:WsrvOH/UUkOImFg79R6O93b/ZR40KiyHNXKf2rSRXGk=
 gitlab.com/elixxir/comms v0.0.0-20200917221445-8a509560122a/go.mod h1:L2Va13j2AbQkpkveOQmNzrQD37uI5NKeBhYH+LWMOx0=
+gitlab.com/elixxir/comms v0.0.0-20201007164918-8331c82e4f19 h1:g8KpUhsUPRppsGlN4F5/yJLpG/adxM6jb+4to4dGaWo=
+gitlab.com/elixxir/comms v0.0.0-20201007164918-8331c82e4f19/go.mod h1:kY0+AZPKkZMB+Dgvwj5cfqNE+OJjtbkxYj9hLhddN4A=
 gitlab.com/elixxir/crypto v0.0.0-20200612160324-a76e4451ae25/go.mod h1:SpcmFZ4baOMRxH7qo2myvYFNr8/bz9ItYzVo5Q2Ld1k=
 gitlab.com/elixxir/crypto v0.0.0-20200707005343-97f868cbd930 h1:9qzfwyR12OYgn3j30qcHZHHVfWshWnH54lcAHppEROQ=
 gitlab.com/elixxir/crypto v0.0.0-20200707005343-97f868cbd930/go.mod h1:LHBAaEf48a0/AjU118rjoworH0LgXifhAqmNX3ZRvME=
 gitlab.com/elixxir/crypto v0.0.0-20200731174640-0503cf80524a h1:peZpulfSqLSceA5ovtzQ5MPgQt4YbJY8FzpV2S2Nrhc=
 gitlab.com/elixxir/crypto v0.0.0-20200731174640-0503cf80524a/go.mod h1:LHBAaEf48a0/AjU118rjoworH0LgXifhAqmNX3ZRvME=
+gitlab.com/elixxir/crypto v0.0.0-20200804182833-984246dea2c4/go.mod h1:ucm9SFKJo+K0N2GwRRpaNr+tKXMIOVWzmyUD0SbOu2c=
+gitlab.com/elixxir/crypto v0.0.0-20200805174804-bdf909f2a16d/go.mod h1:cu6uNoANVLV0J6HyTL6KqVtVyh9SHU1RjJhytYlsbVQ=
+gitlab.com/elixxir/crypto v0.0.0-20200929201533-f18c8bfec2a3 h1:5BzPvWqsjHzDXsSchXHPVH5zY2Ewusx/fgYJkPNtirk=
+gitlab.com/elixxir/crypto v0.0.0-20200929201533-f18c8bfec2a3/go.mod h1:PFeyONfhulnM72O2wROslwhNadtnyvKAD2QLtQzAifM=
+gitlab.com/elixxir/crypto v0.0.0-20200929230508-d362be55e7ac h1:UfyVuYTnTW/eGKK119k+IpnphjsvF8RTdZloK0r94Mk=
+gitlab.com/elixxir/crypto v0.0.0-20200929230508-d362be55e7ac/go.mod h1:PFeyONfhulnM72O2wROslwhNadtnyvKAD2QLtQzAifM=
+gitlab.com/elixxir/crypto v0.0.0-20200929234850-a63eab712d94 h1:erhwVQzEFVlcsfJtN89rRAR0GRo7JhmlceiCA2mIyv4=
+gitlab.com/elixxir/crypto v0.0.0-20200929234850-a63eab712d94/go.mod h1:PFeyONfhulnM72O2wROslwhNadtnyvKAD2QLtQzAifM=
+gitlab.com/elixxir/crypto v0.0.0-20201002151041-c4ab8f8033dc h1:Eg/f19rGUT8xEmvJ78DB4WXSS9OP+VWXjh/gVimIYNA=
+gitlab.com/elixxir/crypto v0.0.0-20201002151041-c4ab8f8033dc/go.mod h1:LthCESQ1AfV1H26URYL9kr+XgXXCE7JfEEPpomFPxIo=
 gitlab.com/elixxir/gpumathsgo v0.0.2-0.20200617001921-1de1fff56304 h1:pK9IXv2s7YZX+dGc6UfIWGrDTQjP4kHpGEo0siL/4cQ=
 gitlab.com/elixxir/gpumathsgo v0.0.2-0.20200617001921-1de1fff56304/go.mod h1:PymVIFnQSHltaQqwjUTbvSnT9FNViO3XkuNiP9m65vM=
+gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201001212319-e5e5794e81ef h1:hrNi2NqazA2IAeF9sq+EcqMnFBebegBwrLaz8pBJezQ=
+gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201001212319-e5e5794e81ef/go.mod h1:Xzg3HHVorqlJeQTpajlKpFN4VNKGAp2eORGck9NtyEc=
+gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201002184945-6117de9a219e h1:EF+E6g9/7IymH4pz20kaoK8Oua44n/AYtifbSHBzQHo=
+gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201002184945-6117de9a219e/go.mod h1:Xzg3HHVorqlJeQTpajlKpFN4VNKGAp2eORGck9NtyEc=
+gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201002224936-10c0009b7bdd h1:oA7/PmaCVQlxYqWtPpN1JN8rNp+DiIzXPBFuSoVQnoI=
+gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201002224936-10c0009b7bdd/go.mod h1:Xzg3HHVorqlJeQTpajlKpFN4VNKGAp2eORGck9NtyEc=
+gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201007163558-0fea70f49fe0 h1:blqjf4He46aA1zfrnPrYl6N+pAet05bPwmqvRfZ6xZI=
+gitlab.com/elixxir/gpumathsgo v0.0.2-0.20201007163558-0fea70f49fe0/go.mod h1:vUk8KpHenphHQgPszZcdyGDgd4/nEuqD7elXSynZUuM=
 gitlab.com/elixxir/primitives v0.0.0-20200608222556-1d2c04e59346/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg=
 gitlab.com/elixxir/primitives v0.0.0-20200706165052-9fe7a4fb99a3 h1:GTfflZBNLeBq3UApYog0J3+hytdkoRsDduGQji2wyEU=
 gitlab.com/elixxir/primitives v0.0.0-20200706165052-9fe7a4fb99a3/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg=
 gitlab.com/elixxir/primitives v0.0.0-20200708185800-a06e961280e6 h1:7xLD8w5qAKN1YqG2UiMiN3rODUACyQME83uDlVhvWLo=
 gitlab.com/elixxir/primitives v0.0.0-20200708185800-a06e961280e6/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg=
+gitlab.com/elixxir/primitives v0.0.0-20200731184040-494269b53b4d/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg=
+gitlab.com/elixxir/primitives v0.0.0-20200804170709-a1896d262cd9/go.mod h1:p0VelQda72OzoUckr1O+vPW0AiFe0nyKQ6gYcmFSuF8=
+gitlab.com/elixxir/primitives v0.0.0-20200804182913-788f47bded40/go.mod h1:tzdFFvb1ESmuTCOl1z6+yf6oAICDxH2NPUemVgoNLxc=
+gitlab.com/elixxir/primitives v0.0.0-20200804231232-ad79a9e8f113/go.mod h1:tzdFFvb1ESmuTCOl1z6+yf6oAICDxH2NPUemVgoNLxc=
+gitlab.com/elixxir/primitives v0.0.0-20200805174810-86b366d1dd2d/go.mod h1:tzdFFvb1ESmuTCOl1z6+yf6oAICDxH2NPUemVgoNLxc=
+gitlab.com/elixxir/primitives v0.0.0-20200929195204-dd3970d93573/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg=
+gitlab.com/elixxir/primitives v0.0.0-20200929202834-811c810c6387 h1:fYq0BEh1ksZVSqLkb0L+G3j8mUbQ9AsFSLEOsF1+11Q=
+gitlab.com/elixxir/primitives v0.0.0-20200929202834-811c810c6387/go.mod h1:OQgUZq7SjnE0b+8+iIAT2eqQF+2IFHn73tOo+aV11mg=
+gitlab.com/xx_network/comms v0.0.0-20200805174823-841427dd5023/go.mod h1:owEcxTRl7gsoM8c3RQ5KAm5GstxrJp5tn+6JfQ4z5Hw=
 gitlab.com/xx_network/comms v0.0.0-20200916172635-6ab807c3c820 h1:vdozJQgrnznmHJLS38aOXprLKZXClnHJ9ljY/70aWuI=
 gitlab.com/xx_network/comms v0.0.0-20200916172635-6ab807c3c820/go.mod h1:J+GJ6fn71a4xnYVvbcrhtvWSOQIqqhaGcaej5xB3/JY=
+gitlab.com/xx_network/crypto v0.0.0-20200806202113-978fa1984bbf h1:MuVrOLxQkHqZJhj5VAHVbf1WoJVt1JDiJt7JwR+KD7A=
+gitlab.com/xx_network/crypto v0.0.0-20200806202113-978fa1984bbf/go.mod h1:i0df/q6dDCBiscgD51fMoS2U2TBrm6LcyN822JmB5Tw=
+gitlab.com/xx_network/primitives v0.0.0-20200803231956-9b192c57ea7c/go.mod h1:wtdCMr7DPePz9qwctNoAUzZtbOSHSedcK++3Df3psjA=
+gitlab.com/xx_network/primitives v0.0.0-20200804183002-f99f7a7284da h1:CCVslUwNC7Ul7NG5nu3ThGTSVUt1TxNRX+47f5TUwnk=
+gitlab.com/xx_network/primitives v0.0.0-20200804183002-f99f7a7284da/go.mod h1:OK9xevzWCaPO7b1wiluVJGk7R5ZsuC7pHY5hteZFQug=
 go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
 go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
@@ -226,6 +264,8 @@ golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPh
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200707235045-ab33eee955e0 h1:eIYIE7EC5/Wv5Kbz8bJPaq+TN3kq3W8S+LSm62vM0DY=
 golang.org/x/crypto v0.0.0-20200707235045-ab33eee955e0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de h1:ikNHVSjEfnvz6sxdSPCaPt572qowuyMDMJLLm3Db3ig=
+golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
@@ -256,6 +296,7 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200519105757-fe76b779f299 h1:DYfZAGf2WMFjMxbgTjaC+2HC7NkNAQs+6Q8b9WEB/F4=
 golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -296,6 +337,8 @@ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8
 google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
 google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE=
 google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
+google.golang.org/grpc v1.31.0 h1:T7P4R73V3SSDPhH7WW7ATbfViLtmamH0DKrP3f9AuDI=
+google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
diff --git a/graphs/clientServer_test.go b/graphs/clientServer_test.go
index fc1fc4cbe198e85927c46b3cc1e169e1ffc7e9f0..cdf8c16f002f1294a773ce7fd6fda8c923dd663c 100644
--- a/graphs/clientServer_test.go
+++ b/graphs/clientServer_test.go
@@ -32,15 +32,16 @@ import (
 
 // Fill part of message with random payloads
 // Fill part of message with random payloads
-func makeMsg() *format.Message {
+func makeMsg(grp *cyclic.Group) format.Message {
+	primeLegnth := len(grp.GetPBytes())
 	rng := rand.New(rand.NewSource(21))
-	payloadA := make([]byte, format.PayloadLen)
-	payloadB := make([]byte, format.PayloadLen)
+	payloadA := make([]byte, primeLegnth)
+	payloadB := make([]byte, primeLegnth)
 	rng.Read(payloadA)
 	rng.Read(payloadB)
-	msg := format.NewMessage()
+	msg := format.NewMessage(primeLegnth)
 	msg.SetPayloadA(payloadA)
-	msg.SetDecryptedPayloadB(payloadB)
+	msg.SetPayloadB(payloadB)
 
 	return msg
 }
@@ -134,7 +135,7 @@ func TestClientServer(t *testing.T) {
 	userBaseKeys = append(userBaseKeys, usr.BaseKey)
 
 	//Generate a mock message
-	inputMsg := makeMsg()
+	inputMsg := makeMsg(grp)
 
 	//Encrypt the input message
 	encryptedMsg := cmix.ClientEncrypt(grp, inputMsg, testSalt, userBaseKeys)
@@ -158,11 +159,11 @@ func TestClientServer(t *testing.T) {
 
 	grp.Mul(keyA_Inv, grp.NewIntFromBytes(encryptedMsg.GetPayloadA()), multPayloadA)
 	grp.Mul(keyB_Inv, grp.NewIntFromBytes(encryptedMsg.GetPayloadB()), multPayloadB)
-
-	testMsg := format.NewMessage()
+	primeLength := len(grp.GetPBytes())
+	testMsg := format.NewMessage(primeLength)
 
 	testMsg.SetPayloadA(multPayloadA.Bytes())
-	testMsg.SetDecryptedPayloadB(multPayloadB.LeftpadBytes(format.PayloadLen))
+	testMsg.SetPayloadB(multPayloadB.LeftpadBytes(uint64(primeLength)))
 
 	//Compare the payloads of the 2 messages
 	if !reflect.DeepEqual(testMsg.GetPayloadA(), inputMsg.GetPayloadA()) {
diff --git a/graphs/precomputation/strip.go b/graphs/precomputation/strip.go
index 49f59a5681743c51d187333583bf69d11f34474d..291f0b2e8063fc440039f0b596034b098514d974 100644
--- a/graphs/precomputation/strip.go
+++ b/graphs/precomputation/strip.go
@@ -192,39 +192,6 @@ var StripMul2 = services.Module{
 	Name:       "StripMul2",
 }
 
-var StripChunk = services.Module{
-	Adapt: func(streamInput services.Stream, cryptop cryptops.Cryptop, chunk services.Chunk) error {
-		sssi, ok := streamInput.(stripSubstreamInterface)
-		sc, ok2 := cryptop.(gpumaths.StripChunkPrototype)
-		if !ok || !ok2 {
-			return services.InvalidTypeAssert
-		}
-		ss := sssi.GetStripSubStream()
-		gpuStreams := ss.StreamPool
-		cpa := ss.CypherPayloadA.GetSubBuffer(chunk.Begin(), chunk.End())
-		ppa := ss.EncryptedPayloadAPrecomputation[chunk.Begin():chunk.End()]
-		ppaResults := ss.PayloadAPrecomputation.GetSubBuffer(chunk.Begin(), chunk.End())
-		err := sc(gpuStreams, ss.Grp, ppaResults, ss.Z, ppa, cpa)
-		if err != nil {
-			return err
-		}
-
-		cpb := ss.CypherPayloadB.GetSubBuffer(chunk.Begin(), chunk.End())
-		ppb := ss.EncryptedPayloadBPrecomputation[chunk.Begin():chunk.End()]
-		ppbResults := ss.PayloadBPrecomputation.GetSubBuffer(chunk.Begin(), chunk.End())
-		err = sc(gpuStreams, ss.Grp, ppbResults, ss.Z, ppb, cpb)
-		if err != nil {
-			return err
-		}
-
-		return nil
-	},
-	Cryptop:    gpumaths.StripChunk,
-	Name:       "PrecompStripGPU",
-	NumThreads: 2,
-	InputSize:  services.AutoInputSize,
-}
-
 // InitStripGraph to initialize the graph. Conforms to graphs.Initialize function type
 func InitStripGraph(gc services.GraphGenerator) *services.Graph {
 	if viper.GetBool("useGpu") {
diff --git a/multiInstance_test.go b/multiInstance_test.go
index 24e861393f494d60fd71a7ed562380946f5cf183..53f7fc0c4a5d335a6e2af806420b732ab2e321f6 100644
--- a/multiInstance_test.go
+++ b/multiInstance_test.go
@@ -17,6 +17,7 @@ import (
 	"fmt"
 	"github.com/pkg/errors"
 	jww "github.com/spf13/jwalterweatherman"
+	"github.com/spf13/viper"
 	"gitlab.com/elixxir/comms/mixmessages"
 	pb "gitlab.com/elixxir/comms/mixmessages"
 	nodeComms "gitlab.com/elixxir/comms/node"
@@ -59,7 +60,7 @@ import (
 var errWg = sync.WaitGroup{}
 
 func Test_MultiInstance_N3_B8(t *testing.T) {
-	elapsed := MultiInstanceTest(3, 32, false, false, t)
+	elapsed := MultiInstanceTest(3, 32, makeMultiInstanceGroup(), false, false, t)
 
 	t.Logf("Computational elapsed time for 3 Node, batch size 32, CPU multi-"+
 		"instance test: %s", elapsed)
@@ -71,20 +72,21 @@ func Test_MultiInstance_N3_B32_GPU(t *testing.T) {
 		batchSize = cmd.BatchSizeGPUTest
 	}
 
-	elapsed := MultiInstanceTest(3, batchSize, true, false, t)
+	viper.Set("useGpu", true)
+	elapsed := MultiInstanceTest(3, batchSize, makeMultiInstanceGroup4k(), true, false, t)
 
-	t.Logf("Computational elapsed time for 3 Node, batch size %d, CPU multi-"+
+	t.Logf("Computational elapsed time for 3 Node, batch size %d, GPU multi-"+
 		"instance test: %s", cmd.BatchSizeGPUTest, elapsed)
 }
 
 func Test_MultiInstance_PhaseErr(t *testing.T) {
-	elapsed := MultiInstanceTest(3, 32, false, true, t)
+	elapsed := MultiInstanceTest(3, 32, makeMultiInstanceGroup(), false, true, t)
 
 	t.Logf("Computational elapsed time for 3 Node, batch size 32, error multi-"+
 		"instance test: %s", elapsed)
 }
 
-func MultiInstanceTest(numNodes, batchSize int, useGPU, errorPhase bool, t *testing.T) time.Duration {
+func MultiInstanceTest(numNodes, batchSize int, grp *cyclic.Group, useGPU, errorPhase bool, t *testing.T) time.Duration {
 	if errorPhase {
 		defer func() {
 			if r := recover(); r != nil {
@@ -100,11 +102,9 @@ func MultiInstanceTest(numNodes, batchSize int, useGPU, errorPhase bool, t *test
 			" Received %v", numNodes)
 	}
 
-	grp := makeMultiInstanceGroup()
-
 	// Get parameters
 	portOffset := int(rand.Uint32() % 2000)
-	defsLst := makeMultiInstanceParams(numNodes, 20000+portOffset, useGPU, t)
+	defsLst := makeMultiInstanceParams(numNodes, 20000+portOffset, grp, useGPU, t)
 
 	// Make user for sending messages
 	userID := id.NewIdFromUInt(42, id.User, t)
@@ -436,11 +436,13 @@ func buildMockBatch(batchSize int, grp *cyclic.Group, baseKeys []*cyclic.Int,
 		binary.BigEndian.PutUint64(salt[0:8], uint64(100+6*i))
 
 		// Make the payload
-		payloadA := grp.NewIntFromUInt(uint64(1 + i)).LeftpadBytes(format.PayloadLen)
-		payloadB := grp.NewIntFromUInt(uint64((513 + i) * 256)).LeftpadBytes(format.PayloadLen)
+		primeLength := uint64(grp.GetP().ByteLen())
+		payloadA := grp.NewIntFromUInt(uint64(1 + i)).LeftpadBytes(primeLength)
+		payloadB := grp.NewIntFromUInt(uint64((513 + i) * 256)).LeftpadBytes(primeLength)
 
 		// Make the message
-		msg := format.NewMessage()
+
+		msg := format.NewMessage(int(primeLength))
 		msg.SetPayloadA(payloadA)
 		msg.SetPayloadB(payloadB)
 
@@ -638,7 +640,7 @@ func generateCert() ([]byte, []byte) {
 	return crtOut, privOut
 }
 
-func makeMultiInstanceParams(numNodes, portStart int, useGPU bool, t *testing.T) []*internal.Definition {
+func makeMultiInstanceParams(numNodes, portStart int, grp *cyclic.Group, useGPU bool, t *testing.T) []*internal.Definition {
 
 	// Generate IDs and addresses
 	var nidLst []*id.ID
@@ -661,7 +663,7 @@ func makeMultiInstanceParams(numNodes, portStart int, useGPU bool, t *testing.T)
 
 	}
 
-	networkDef := buildNdf(nodeLst)
+	networkDef := buildNdf(nodeLst, grp)
 
 	// Generate parameters list
 	var defLst []*internal.Definition
@@ -722,8 +724,15 @@ func makeMultiInstanceGroup() *cyclic.Group {
 		large.NewInt(2))
 }
 
+func makeMultiInstanceGroup4k() *cyclic.Group {
+	primeString := "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF"
+
+	return cyclic.NewGroup(large.NewIntFromString(primeString, 16),
+		large.NewInt(2))
+}
+
 // buildNdf builds the ndf used for definitions
-func buildNdf(nodeLst []internal.Node) *ndf.NetworkDefinition {
+func buildNdf(nodeLst []internal.Node, grp *cyclic.Group) *ndf.NetworkDefinition {
 	// Pull the node id's out of nodeList
 	ndfNodes := make([]ndf.Node, 0)
 	for _, ourNode := range nodeLst {
@@ -738,19 +747,9 @@ func buildNdf(nodeLst []internal.Node) *ndf.NetworkDefinition {
 
 	// Build a group
 	group := ndf.Group{
-		Prime: "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1" +
-			"29024E088A67CC74020BBEA63B139B22514A08798E3404DD" +
-			"EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245" +
-			"E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED" +
-			"EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D" +
-			"C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F" +
-			"83655D23DCA3AD961C62F356208552BB9ED529077096966D" +
-			"670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B" +
-			"E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9" +
-			"DE2BCBF6955817183995497CEA956AE515D2261898FA0510" +
-			"15728E5A8AACAA68FFFFFFFFFFFFFFFF",
+		Prime:      grp.GetP().TextVerbose(16, 0),
 		SmallPrime: "2",
-		Generator:  "2",
+		Generator:  grp.GetG().TextVerbose(16, 0),
 	}
 
 	// Construct an ndf
diff --git a/services/gpu_test.go b/services/gpu_test.go
index 827a90ff2f8d5c8c95d291620f1b9ce5b2c6b56a..684ae835dc8aeea66299c280d3d6150d836a28f5 100644
--- a/services/gpu_test.go
+++ b/services/gpu_test.go
@@ -295,20 +295,12 @@ func TestCGC(t *testing.T) {
 	// Make a copy to make sure we can get the same results in a different way
 	testExp := goldExp.DeepCopy()
 
-	// Make sure there's enough space in the stream to fit the input size
-	stream := streamPool.TakeStream()
-	streamPool.ReturnStream(stream)
-	// MaxSlotsExp should be the same with all streams
-	if int(gpumaths.ExpChunk.GetInputSize()) > stream.GetMaxSlotsExp() {
-		t.Fatalf("stream too small! has %v slots. make it bigger", stream.GetMaxSlotsExp())
-	}
-
 	// Copy to set custom input size
 	gpuBLocal := gpuB.DeepCopy()
 	// We could also set input size to be the number of slots that's less than MaxSlotsExp that has a common factor with the CPU input sizes
 	// That would allow for fairly large chunks while not exceeding input size
 	// The user is responsible for choosing an input size that will work well with both the dispatcher and CUDA
-	gpuBLocal.InputSize = uint32(stream.GetMaxSlotsExp())
+	gpuBLocal.InputSize = 512
 	// Time test graph runs, just for fun
 	start := time.Now()
 	runTestGraph(&goldExp, cpuA.DeepCopy(), cpuB.DeepCopy(), cpuC.DeepCopy())
@@ -355,20 +347,12 @@ func TestGGG(t *testing.T) {
 	// Make a copy to make sure we can get the same results in a different way
 	testExp := goldExp.DeepCopy()
 
-	// Make sure there's enough space in the stream to fit the input size
-	stream := streamPool.TakeStream()
-	streamPool.ReturnStream(stream)
-	// MaxSlotsExp should be the same with all streams
-	if int(gpumaths.ExpChunk.GetInputSize()) > stream.GetMaxSlotsExp() {
-		t.Fatalf("stream too small! has %v slots. make it bigger", stream.GetMaxSlotsExp())
-	}
-
 	gpuALocal := gpuA.DeepCopy()
 	gpuBLocal := gpuB.DeepCopy()
 	gpuCLocal := gpuC.DeepCopy()
-	gpuALocal.InputSize = uint32(stream.GetMaxSlotsExp())
-	gpuBLocal.InputSize = uint32(stream.GetMaxSlotsExp())
-	gpuCLocal.InputSize = uint32(stream.GetMaxSlotsExp())
+	gpuALocal.InputSize = 512
+	gpuBLocal.InputSize = 512
+	gpuCLocal.InputSize = 512
 
 	// Time test graph runs, just for fun
 	start := time.Now()