diff --git a/context/context.go b/context/context.go
new file mode 100644
index 0000000000000000000000000000000000000000..0d50cdcd2c966f8743285d68f43232db2bd9ad93
--- /dev/null
+++ b/context/context.go
@@ -0,0 +1,15 @@
+package context
+
+import (
+	"gitlab.com/elixxir/client/storage"
+	"gitlab.com/elixxir/primitives/switchboard"
+)
+
+type Context struct {
+	Session     *storage.Session
+	Switchboard *switchboard.Switchboard
+	// note that the manager has a pointer to the context in many cases, but
+	// this interface allows it to be mocked for easy testing without the
+	// loop
+	Manager NetworkManager
+}
diff --git a/context/message.go b/context/message.go
new file mode 100644
index 0000000000000000000000000000000000000000..c0c9315a1759f314d022f7f1402f27ff2c00dc52
--- /dev/null
+++ b/context/message.go
@@ -0,0 +1,9 @@
+package context
+
+import "gitlab.com/xx_network/primitives/id"
+
+type Message struct {
+	Recipient   *id.ID
+	Payload     []byte
+	MessageType int32
+}
diff --git a/context/networkManager.go b/context/networkManager.go
new file mode 100644
index 0000000000000000000000000000000000000000..910cd11241f90c934eea954ad72f583dd23d9ad1
--- /dev/null
+++ b/context/networkManager.go
@@ -0,0 +1,17 @@
+package context
+
+import (
+	"gitlab.com/elixxir/comms/network"
+	"gitlab.com/elixxir/primitives/format"
+	"gitlab.com/xx_network/primitives/id"
+)
+
+type NetworkManager interface {
+	SendE2E(m Message) ([]id.Round, error)
+	SendUnsafe(m Message) ([]id.Round, error)
+	SendCMIX(message format.Message) (id.Round, error)
+	GetRekeyChan() chan id.ID
+	GetInstance() *network.Instance
+	//placeholder to stop active threads
+	Kill() bool
+}
diff --git a/key/context.go b/e2e/context.go
similarity index 93%
rename from key/context.go
rename to e2e/context.go
index 1d7ac802a439f08a502fa4a7db4efa173b729a67..771646565aa1f75e8069cb05917c974ca27da0b1 100644
--- a/key/context.go
+++ b/e2e/context.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 import (
 	"gitlab.com/elixxir/client/storage"
diff --git a/key/fingerprintAccess.go b/e2e/fingerprintAccess.go
similarity index 94%
rename from key/fingerprintAccess.go
rename to e2e/fingerprintAccess.go
index 5868760902621ae41a353e2360e83ebaa35f99cd..a0dde429058295f2274992e375c7901c3c6a5ff3 100644
--- a/key/fingerprintAccess.go
+++ b/e2e/fingerprintAccess.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 type fingerprintAccess interface {
 	// Receives a list of fingerprints to add. Overrides on collision.
diff --git a/key/key.go b/e2e/key.go
similarity index 99%
rename from key/key.go
rename to e2e/key.go
index b59c7f6af7f28bc2591cdbd38cbce2b48ae309e0..69fa181d141ad119e88a44d92ff600c5a4553bfc 100644
--- a/key/key.go
+++ b/e2e/key.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 import (
 	"github.com/pkg/errors"
diff --git a/key/key_test.go b/e2e/key_test.go
similarity index 99%
rename from key/key_test.go
rename to e2e/key_test.go
index 2073d831adbb2b65baf597dbc6a3135ff0bc3744..78220af85ea13d368cac9c410d2b551040860cd9 100644
--- a/key/key_test.go
+++ b/e2e/key_test.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 import (
 	"bytes"
diff --git a/key/manager.go b/e2e/manager.go
similarity index 99%
rename from key/manager.go
rename to e2e/manager.go
index 68886a2df89819f8648c2e7f488abe7f7b1dd41c..9935024876b78da17e58a7a65f46807e5f61ca3f 100644
--- a/key/manager.go
+++ b/e2e/manager.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 import (
 	"github.com/pkg/errors"
diff --git a/key/params.go b/e2e/params.go
similarity index 98%
rename from key/params.go
rename to e2e/params.go
index d8c62be1241dbc1a77f0f1e186983202cccd5a81..93fcea60e8a6676f69e36492bb7c4ad6e30b54d0 100644
--- a/key/params.go
+++ b/e2e/params.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 import "gitlab.com/elixxir/crypto/e2e"
 
diff --git a/key/params_test.go b/e2e/params_test.go
similarity index 98%
rename from key/params_test.go
rename to e2e/params_test.go
index edf0360de01cecc811e5d861b28fdbf86665c2ee..616947cf180c6cb5d1e8af98fe1ab0ea09c5d6cc 100644
--- a/key/params_test.go
+++ b/e2e/params_test.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 // Testing file for the params.go functions
 
diff --git a/key/session.go b/e2e/session.go
similarity index 99%
rename from key/session.go
rename to e2e/session.go
index f7f0bb34a9141338154dd22b8ff3636b6e016020..15e3e0640308bbce86c6da04e6e4017ad1771f06 100644
--- a/key/session.go
+++ b/e2e/session.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 import (
 	"encoding/json"
diff --git a/key/sessionBuff.go b/e2e/sessionBuff.go
similarity index 99%
rename from key/sessionBuff.go
rename to e2e/sessionBuff.go
index 19994b75664edf546500a2f42169658f281606ac..f5cba0e8e5117d4b7ec11d114aba887b2298c8f4 100644
--- a/key/sessionBuff.go
+++ b/e2e/sessionBuff.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 import (
 	"encoding/base64"
diff --git a/key/sessionID.go b/e2e/sessionID.go
similarity index 95%
rename from key/sessionID.go
rename to e2e/sessionID.go
index 4ac8edfb78bfd1a80247571a8a7d76c9a49f9176..c5837c2cc9ad5688d12a83b5888ed4e1c41982b6 100644
--- a/key/sessionID.go
+++ b/e2e/sessionID.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 import "encoding/base64"
 
diff --git a/key/sessionType.go b/e2e/sessionType.go
similarity index 94%
rename from key/sessionType.go
rename to e2e/sessionType.go
index 163509b30297e80e558bf1c6b229581558d99ed0..44081daa95c387420094a289c8cfdc13eac8a504 100644
--- a/key/sessionType.go
+++ b/e2e/sessionType.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 type SessionType uint8
 
diff --git a/key/sessionType_test.go b/e2e/sessionType_test.go
similarity index 97%
rename from key/sessionType_test.go
rename to e2e/sessionType_test.go
index 109376ac2983b1dd6886b52e4273ce40977bb5eb..404ca7a76f3edf71d142f9db815b5f42d4d0d7c9 100644
--- a/key/sessionType_test.go
+++ b/e2e/sessionType_test.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 import (
 	"math"
diff --git a/key/session_test.go b/e2e/session_test.go
similarity index 99%
rename from key/session_test.go
rename to e2e/session_test.go
index 63bd0215ebd7b67097128dec0373a74fd6e55998..c3c785d314ccdb27d73ded75575fac5fbb30e499 100644
--- a/key/session_test.go
+++ b/e2e/session_test.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 import (
 	"gitlab.com/elixxir/client/storage"
diff --git a/key/stateVector.go b/e2e/stateVector.go
similarity index 97%
rename from key/stateVector.go
rename to e2e/stateVector.go
index ab22065a437282525cd07fffa4f627298d44807d..14cc72bf5c5470a75c17b0b3f38991b7b3131aec 100644
--- a/key/stateVector.go
+++ b/e2e/stateVector.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 import (
 	"encoding/json"
@@ -8,6 +8,8 @@ import (
 	"time"
 )
 
+const currentStateVectorVersion = 0
+
 type stateVector struct {
 	ctx *context
 	key string
@@ -75,7 +77,7 @@ func (sv *stateVector) save() error {
 	}
 
 	obj := storage.VersionedObject{
-		Version:   currentSessionVersion,
+		Version:   currentStateVectorVersion,
 		Timestamp: now,
 		Data:      data,
 	}
diff --git a/key/stateVector_test.go b/e2e/stateVector_test.go
similarity index 99%
rename from key/stateVector_test.go
rename to e2e/stateVector_test.go
index 6f069b4307aefb0bf428a1e8c43d48858cbca5e9..57dcf28b02e879fa487c811d532fdaacc4a86d2e 100644
--- a/key/stateVector_test.go
+++ b/e2e/stateVector_test.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 import (
 	"fmt"
diff --git a/key/status.go b/e2e/status.go
similarity index 96%
rename from key/status.go
rename to e2e/status.go
index d39610fe3b2ee7c8ff22f7c9a0836f483f870bfa..e47db36448f8ac4f47df8282ba494be5e0a8f975 100644
--- a/key/status.go
+++ b/e2e/status.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 import "fmt"
 
diff --git a/key/status_test.go b/e2e/status_test.go
similarity index 98%
rename from key/status_test.go
rename to e2e/status_test.go
index 991d76a9d30c121151bc2529e5da8133be3a704d..c7475900fb6a23a25c7053b91957abedf9724f36 100644
--- a/key/status_test.go
+++ b/e2e/status_test.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 // Testing file for the status.go functions
 
diff --git a/key/store.go b/e2e/store.go
similarity index 99%
rename from key/store.go
rename to e2e/store.go
index b83301a97529f4a7b0a4263d85ddcd64b29827f4..23ac8115311baa76f5dbf51af2e530cbbe4a908b 100644
--- a/key/store.go
+++ b/e2e/store.go
@@ -1,4 +1,4 @@
-package key
+package e2e
 
 import (
 	"encoding/json"