diff --git a/context/networkManager.go b/context/networkManager.go
index 9c5717ae23c937542760d2d86a8f29a840c7a9cb..9f31acbeeeaf855b2fb9bb5a43a2ff6f437836df 100644
--- a/context/networkManager.go
+++ b/context/networkManager.go
@@ -3,6 +3,7 @@ package context
 import (
 	"gitlab.com/elixxir/client/context/message"
 	"gitlab.com/elixxir/client/context/params"
+	"gitlab.com/elixxir/client/context/stoppable"
 	"gitlab.com/elixxir/comms/network"
 	"gitlab.com/elixxir/primitives/format"
 	"gitlab.com/xx_network/primitives/id"
@@ -14,6 +15,9 @@ type NetworkManager interface {
 	SendCMIX(message format.Message, p params.CMIX) (id.Round, error)
 	GetInstance() *network.Instance
 	GetHealthTracker() HealthTracker
+	RegisterWithPermissioning(string) ([]byte, error)
+	GetRemoteVersion() (string, error)
+	GetStoppable() stoppable.Stoppable
 }
 
 type HealthTracker interface {
diff --git a/network/manager.go b/network/manager.go
index f7ffa09716ed045496483d5d6d22ba8c5198da34..efa775d2a65eb006c5075257c87c2717e347016d 100644
--- a/network/manager.go
+++ b/network/manager.go
@@ -33,10 +33,6 @@ import (
 // Manager implements the NetworkManager interface inside context. It
 // controls access to network resources and implements all of the communications
 // functions used by the client.
-type Manager struct {
-	m manager
-}
-
 type manager struct {
 	// parameters of the network
 	param params.Network
@@ -53,7 +49,7 @@ type manager struct {
 }
 
 // NewManager builds a new reception manager object using inputted key fields
-func NewManager(ctx *context.Context, params params.Network, ndf *ndf.NetworkDefinition) (*Manager, error) {
+func NewManager(ctx *context.Context, params params.Network, ndf *ndf.NetworkDefinition) (context.NetworkManager, error) {
 
 	//get the user from storage
 	user := ctx.Session.User()
@@ -97,18 +93,18 @@ func NewManager(ctx *context.Context, params params.Network, ndf *ndf.NetworkDef
 	m.message = message.NewManager(m.Internal, m.param.Messages, m.NodeRegistration)
 	m.round = rounds.NewManager(m.Internal, m.param.Rounds, m.message.GetMessageReceptionChannel())
 
-	return &Manager{m: m}, nil
+	return &m, nil
 }
 
 // GetRemoteVersion contacts the permissioning server and returns the current
 // supported client version.
-func (m *Manager) GetRemoteVersion() (string, error) {
-	permissioningHost, ok := m.m.Comms.GetHost(&id.Permissioning)
+func (m *manager) GetRemoteVersion() (string, error) {
+	permissioningHost, ok := m.Comms.GetHost(&id.Permissioning)
 	if !ok {
 		return "", errors.Errorf("no permissioning host with id %s",
 			id.Permissioning)
 	}
-	registrationVersion, err := m.m.Comms.SendGetCurrentClientVersionMessage(
+	registrationVersion, err := m.Comms.SendGetCurrentClientVersionMessage(
 		permissioningHost)
 	if err != nil {
 		return "", err
@@ -116,12 +112,8 @@ func (m *Manager) GetRemoteVersion() (string, error) {
 	return registrationVersion.Version, nil
 }
 
-func (m *Manager) StartRunners() error {
-	return m.m.startRunners()
-}
-
 // StartRunners kicks off all network reception goroutines ("threads").
-func (m *manager) startRunners() error {
+func (m *manager) StartRunners() error {
 	if m.runners.IsRunning() {
 		return errors.Errorf("network routines are already running")
 	}
@@ -152,34 +144,23 @@ func (m *manager) startRunners() error {
 	return nil
 }
 
-func (m *Manager) RegisterWithPermissioning(registrationCode string) ([]byte, error) {
-	pubKey := m.m.Session.User().GetCryptographicIdentity().GetRSA().GetPublic()
-	return permissioning.Register(m.m.Comms, pubKey, registrationCode)
-}
-
-// GetRunners returns the network goroutines such that they can be named
-// and stopped.
-func (m *Manager) GetRunners() stoppable.Stoppable {
-	return m.m.runners
+func (m *manager) RegisterWithPermissioning(registrationCode string) ([]byte, error) {
+	pubKey := m.Session.User().GetCryptographicIdentity().GetRSA().GetPublic()
+	return permissioning.Register(m.Comms, pubKey, registrationCode)
 }
 
 // StopRunners stops all the reception goroutines
-func (m *Manager) GetStoppable() stoppable.Stoppable {
-	return m.m.runners
+func (m *manager) GetStoppable() stoppable.Stoppable {
+	return m.runners
 }
 
 // GetHealthTracker returns the health tracker
-func (m *Manager) GetHealthTracker() context.HealthTracker {
-	return m.m.Health
+func (m *manager) GetHealthTracker() context.HealthTracker {
+	return m.Health
 }
 
 // GetInstance returns the network instance object (ndf state)
-func (m *Manager) GetInstance() *network.Instance {
-	return m.m.Instance
+func (m *manager) GetInstance() *network.Instance {
+	return m.Instance
 }
 
-// GetNodeRegistrationCh returns node registration channel for node
-// events.
-func (m *Manager) GetNodeRegistrationCh() chan network.NodeGateway {
-	return m.m.NodeRegistration
-}
diff --git a/network/send.go b/network/send.go
index c6d14d54bd7f2e05234a0db963e267c69d5fdc9c..017704acfc010efae74f1b783f7247f1b25f8f01 100644
--- a/network/send.go
+++ b/network/send.go
@@ -13,13 +13,13 @@ import (
 // recipient. Note that both SendE2E and SendUnsafe call SendCMIX.
 // Returns the round ID of the round the payload was sent or an error
 // if it fails.
-func (m *Manager) SendCMIX(msg format.Message, param params.CMIX) (id.Round, error) {
-	if !m.m.Health.IsRunning() {
+func (m *manager) SendCMIX(msg format.Message, param params.CMIX) (id.Round, error) {
+	if !m.Health.IsRunning() {
 		return 0, errors.New("Cannot send cmix message when the " +
 			"network is not healthy")
 	}
 
-	return m.m.message.SendCMIX(msg, param)
+	return m.message.SendCMIX(msg, param)
 }
 
 // SendUnsafe sends an unencrypted payload to the provided recipient
@@ -27,8 +27,8 @@ func (m *Manager) SendCMIX(msg format.Message, param params.CMIX) (id.Round, err
 // of the message were sent or an error if it fails.
 // NOTE: Do not use this function unless you know what you are doing.
 // This function always produces an error message in client logging.
-func (m *Manager) SendUnsafe(msg message.Send, param params.Unsafe) ([]id.Round, error) {
-	if !m.m.Health.IsRunning() {
+func (m *manager) SendUnsafe(msg message.Send, param params.Unsafe) ([]id.Round, error) {
+	if !m.Health.IsRunning() {
 		return nil, errors.New("cannot send unsafe message when the " +
 			"network is not healthy")
 	}
@@ -43,13 +43,13 @@ func (m *Manager) SendUnsafe(msg message.Send, param params.Unsafe) ([]id.Round,
 // SendE2E sends an end-to-end payload to the provided recipient with
 // the provided msgType. Returns the list of rounds in which parts of
 // the message were sent or an error if it fails.
-func (m *Manager) SendE2E(msg message.Send, e2eP params.E2E) (
+func (m *manager) SendE2E(msg message.Send, e2eP params.E2E) (
 	[]id.Round, error) {
 
-	if !m.m.Health.IsRunning() {
+	if !m.Health.IsRunning() {
 		return nil, errors.New("Cannot send e2e message when the " +
 			"network is not healthy")
 	}
 
-	return m.m.message.SendE2E(msg, e2eP)
+	return m.message.SendE2E(msg, e2eP)
 }