diff --git a/api/client.go b/api/client.go
index f56a4ca3ff432224e1bc4f0ffaddb60233cfd937..c7d27fe3ef8aa067643bd164e9b8ab94205dc9a4 100644
--- a/api/client.go
+++ b/api/client.go
@@ -16,7 +16,7 @@ import (
 	"gitlab.com/elixxir/client/interfaces/user"
 	"gitlab.com/elixxir/client/keyExchange"
 	"gitlab.com/elixxir/client/network"
-	"gitlab.com/elixxir/client/permissioning"
+	"gitlab.com/elixxir/client/registration"
 	"gitlab.com/elixxir/client/stoppable"
 	"gitlab.com/elixxir/client/storage"
 	"gitlab.com/elixxir/client/switchboard"
@@ -56,7 +56,7 @@ type Client struct {
 	// loop
 	network interfaces.NetworkManager
 	//object used to register and communicate with permissioning
-	permissioning *permissioning.Permissioning
+	permissioning *registration.Registration
 	//object containing auth interactions
 	auth *auth.Manager
 
@@ -221,10 +221,10 @@ func Login(storageDir string, password []byte, parameters params.Network) (*Clie
 		return nil, err
 	}
 
-	//get the NDF to pass into permissioning and the network manager
+	//get the NDF to pass into registration and the network manager
 	def := c.storage.GetNDF()
 
-	//initialize permissioning
+	//initialize registration
 	if def.Registration.Address != "" {
 		err = c.initPermissioning(def)
 		if err != nil {
@@ -293,7 +293,7 @@ func LoginWithNewBaseNDF_UNSAFE(storageDir string, password []byte,
 	//store the updated base NDF
 	c.storage.SetNDF(def)
 
-	//initialize permissioning
+	//initialize registration
 	if def.Registration.Address != "" {
 		err = c.initPermissioning(def)
 		if err != nil {
@@ -338,14 +338,14 @@ func (c *Client) initComms() error {
 
 func (c *Client) initPermissioning(def *ndf.NetworkDefinition) error {
 	var err error
-	//initialize permissioning
-	c.permissioning, err = permissioning.Init(c.comms, def)
+	//initialize registration
+	c.permissioning, err = registration.Init(c.comms, def)
 	if err != nil {
 		return errors.WithMessage(err, "failed to init "+
 			"permissioning handler")
 	}
 
-	//register with permissioning if necessary
+	//register with registration if necessary
 	if c.storage.GetRegistrationStatus() == storage.KeyGenComplete {
 		jww.INFO.Printf("Client has not registered yet, attempting registration")
 		err = c.registerWithPermissioning()
@@ -702,7 +702,7 @@ func checkVersionAndSetupStorage(def *ndf.NetworkDefinition, storageDir string,
 		//move the registration state to keys generated
 		err = storageSess.ForwardRegistrationStatus(storage.KeyGenComplete)
 	} else {
-		//move the registration state to indicate registered with permissioning
+		//move the registration state to indicate registered with registration
 		err = storageSess.ForwardRegistrationStatus(storage.PermissioningComplete)
 	}
 
diff --git a/api/permissioning.go b/api/permissioning.go
index cf0d3cb89a9de3dc37bcee689c2a23dc8f06d855..3fd0153e0116837f4d36c2e30b1bf5181e84d9b7 100644
--- a/api/permissioning.go
+++ b/api/permissioning.go
@@ -26,7 +26,7 @@ func (c *Client) registerWithPermissioning() error {
 			"permissioning")
 	}
 
-	//register with permissioning
+	//register with registration
 	transmissionRegValidationSignature, receptionRegValidationSignature,
 		registrationTimestamp, err := c.permissioning.Register(transmissionPubKey, receptionPubKey, regCode)
 	if err != nil {
diff --git a/cmd/getndf.go b/cmd/getndf.go
index 7562acd153adc1257667faacb4d4a0ccbfbc2e74..22edea7c6f99803110bcf95a88914ab01e84f67c 100644
--- a/cmd/getndf.go
+++ b/cmd/getndf.go
@@ -110,7 +110,7 @@ func init() {
 	viper.BindPFlag("gwhost",
 		getNDFCmd.Flags().Lookup("gwhost"))
 	getNDFCmd.Flags().StringP("permhost", "", "",
-		"Poll this permissioning host:port for the NDF")
+		"Poll this registration host:port for the NDF")
 	viper.BindPFlag("permhost",
 		getNDFCmd.Flags().Lookup("permhost"))
 
diff --git a/network/node/register.go b/network/node/register.go
index a16e1cd08486b3bd45abd59a3f3061b7cd43a3bd..2aa7a7d203a23cd800b202075f6ee169b1e2592e 100644
--- a/network/node/register.go
+++ b/network/node/register.go
@@ -60,7 +60,7 @@ func registerNodes(sender *gateway.Sender, session *storage.Session,
 	stop *stoppable.Single, c chan network.NodeGateway) {
 	u := session.User()
 	regSignature := u.GetTransmissionRegistrationValidationSignature()
-	// Timestamp in which user has registered with permissioning
+	// Timestamp in which user has registered with registration
 	regTimestamp := u.GetRegistrationTimestamp().UnixNano()
 	uci := u.GetCryptographicIdentity()
 	cmix := session.Cmix()
@@ -190,7 +190,7 @@ func requestNonce(sender *gateway.Sender, comms RegisterNodeCommsInterface, gwId
 					Signature: clientSig,
 				},
 				Target: gwId.Marshal(),
-				// Timestamp in which user has registered with permissioning
+				// Timestamp in which user has registered with registration
 				TimeStamp: registrationTimestampNano,
 			})
 		if err != nil {
diff --git a/permissioning/permissioning.go b/registration/permissioning.go
similarity index 66%
rename from permissioning/permissioning.go
rename to registration/permissioning.go
index 87c3b6fff40c147c59a4534f7e52f588a9ad45fd..b7208f2b1e40ae0d0b2003ce368a58a986389dfb 100644
--- a/permissioning/permissioning.go
+++ b/registration/permissioning.go
@@ -5,7 +5,7 @@
 // LICENSE file                                                              //
 ///////////////////////////////////////////////////////////////////////////////
 
-package permissioning
+package registration
 
 import (
 	"github.com/pkg/errors"
@@ -17,27 +17,33 @@ import (
 	"time"
 )
 
-type Permissioning struct {
+type Registration struct {
 	host  *connect.Host
 	comms *client.Comms
 }
 
-func Init(comms *client.Comms, def *ndf.NetworkDefinition) (*Permissioning, error) {
+func Init(comms *client.Comms, def *ndf.NetworkDefinition) (*Registration, error) {
 
-	perm := Permissioning{
+	perm := Registration{
 		host:  nil,
 		comms: comms,
 	}
 
 	var err error
-	//add the permissioning host to comms
+	//add the registration host to comms
 	hParam := connect.GetDefaultHostParams()
 	hParam.AuthEnabled = false
 	// Client will not send KeepAlive packets
 	hParam.KaClientOpts.Time = time.Duration(math.MaxInt64)
-	perm.host, err = comms.AddHost(&id.Permissioning, def.Registration.Address,
+	perm.host, err = comms.AddHost(&id.ClientRegistration, def.Registration.ClientRegistrationAddress,
 		[]byte(def.Registration.TlsCertificate), hParam)
 
+	if err != nil {
+		return nil, errors.WithMessage(err, "failed to create registration")
+	}
+
+	_, err = comms.AddHost(&id.Permissioning, def.Registration.Address, // We need to add this for round updates to work
+		[]byte(def.Registration.TlsCertificate), hParam)
 	if err != nil {
 		return nil, errors.WithMessage(err, "failed to create permissioning")
 	}
diff --git a/permissioning/permissioning_test.go b/registration/permissioning_test.go
similarity index 92%
rename from permissioning/permissioning_test.go
rename to registration/permissioning_test.go
index dc3e73c2e73a1872a812fb54f7ab374c8d37cf85..56083a5dd302c22872d1e172c67124bb56199093 100644
--- a/permissioning/permissioning_test.go
+++ b/registration/permissioning_test.go
@@ -5,7 +5,7 @@
 // LICENSE file                                                              //
 ///////////////////////////////////////////////////////////////////////////////
 
-package permissioning
+package registration
 
 import (
 	"gitlab.com/elixxir/comms/client"
@@ -14,7 +14,7 @@ import (
 	"testing"
 )
 
-// Init should create a valid Permissioning communications struct
+// Init should create a valid Registration communications struct
 func TestInit(t *testing.T) {
 	// Create dummy comms and ndf
 	comms, err := client.NewClientComms(id.NewIdFromUInt(100, id.User, t), nil, nil, nil)
diff --git a/permissioning/register.go b/registration/register.go
similarity index 94%
rename from permissioning/register.go
rename to registration/register.go
index ead58a5fcdd3856619294bab3708f1c75049487b..5a21fd97267ab0ae4880ceb9a996ddbdfb09dbd8 100644
--- a/permissioning/register.go
+++ b/registration/register.go
@@ -5,7 +5,7 @@
 // LICENSE file                                                              //
 ///////////////////////////////////////////////////////////////////////////////
 
-package permissioning
+package registration
 
 import (
 	"github.com/pkg/errors"
@@ -14,7 +14,7 @@ import (
 	"gitlab.com/xx_network/crypto/signature/rsa"
 )
 
-func (perm *Permissioning) Register(transmissionPublicKey, receptionPublicKey *rsa.PublicKey,
+func (perm *Registration) Register(transmissionPublicKey, receptionPublicKey *rsa.PublicKey,
 	registrationCode string) ([]byte, []byte, int64, error) {
 	return register(perm.comms, perm.host, transmissionPublicKey, receptionPublicKey, registrationCode)
 }
diff --git a/permissioning/register_test.go b/registration/register_test.go
similarity index 93%
rename from permissioning/register_test.go
rename to registration/register_test.go
index 02dd58b41c77ebe7a89f8cead15dc9b144b6c7dc..9840187ce77010144c0c0ccf8674f62a2c766354 100644
--- a/permissioning/register_test.go
+++ b/registration/register_test.go
@@ -5,7 +5,7 @@
 // LICENSE file                                                              //
 ///////////////////////////////////////////////////////////////////////////////
 
-package permissioning
+package registration
 
 import (
 	"github.com/pkg/errors"
@@ -51,7 +51,7 @@ func (s *MockRegistrationSender) GetHost(*id.ID) (*connect.Host, bool) {
 }
 
 // Shows that we get expected result from happy path
-// Shows that permissioning gets RPCs with the correct parameters
+// Shows that registration gets RPCs with the correct parameters
 func TestRegisterWithPermissioning(t *testing.T) {
 	rng := csprng.NewSystemRNG()
 	key, err := rsa.GenerateKey(rng, 256)
@@ -94,7 +94,7 @@ func TestRegisterWithPermissioning(t *testing.T) {
 	}
 }
 
-// Shows that returning an error from the permissioning server results in an
+// Shows that returning an error from the registration server results in an
 // error from register
 func TestRegisterWithPermissioning_ResponseErr(t *testing.T) {
 	rng := csprng.NewSystemRNG()
@@ -104,10 +104,10 @@ func TestRegisterWithPermissioning_ResponseErr(t *testing.T) {
 	}
 	var sender MockRegistrationSender
 	sender.succeedGetHost = true
-	sender.errInReply = "failure occurred on permissioning"
+	sender.errInReply = "failure occurred on registration"
 	_, _, _, err = register(&sender, nil, key.GetPublic(), key.GetPublic(), "")
 	if err == nil {
-		t.Error("no error if registration fails on permissioning")
+		t.Error("no error if registration fails on registration")
 	}
 }