diff --git a/auth/store/confirmation.go b/auth/store/confirmation.go
index 085c09521aa9ce414af3f3eedb73eaa36a472745..a7619fb3bfea265e1790cd0c1dc3cb6d4c5964a9 100644
--- a/auth/store/confirmation.go
+++ b/auth/store/confirmation.go
@@ -48,8 +48,7 @@ func (s *Store) StoreConfirmation(partner *id.ID,
 		Data:      confirmBytes,
 	}
 
-	return s.kv.Set(makeConfirmationKey(partner),
-		currentConfirmationVersion, obj)
+	return s.kv.Set(makeConfirmationKey(partner), obj)
 }
 
 // LoadConfirmation loads the confirmation for the given partner and fingerprint
diff --git a/auth/store/previousNegotiations.go b/auth/store/previousNegotiations.go
index 22ab7b3a592a182508925be50b4a9240e29a313b..b96dafc4c48a1974b7821990e375ea5a3c78ea04 100644
--- a/auth/store/previousNegotiations.go
+++ b/auth/store/previousNegotiations.go
@@ -112,7 +112,7 @@ func (s *Store) savePreviousNegotiations() error {
 		Data:      marshalPreviousNegotiations(s.previousNegotiations),
 	}
 
-	return s.kv.Set(negotiationPartnersKey, negotiationPartnersVersion, obj)
+	return s.kv.Set(negotiationPartnersKey, obj)
 }
 
 // newOrLoadPreviousNegotiations loads the list of previousNegotiations partners
@@ -188,8 +188,7 @@ func saveNegotiationFingerprints(
 		Data:      marshalNegotiationFingerprints(fingerprints...),
 	}
 
-	return kv.Set(makeNegotiationFingerprintsKey(partner),
-		currentNegotiationFingerprintsVersion, obj)
+	return kv.Set(makeNegotiationFingerprintsKey(partner), obj)
 }
 
 // loadNegotiationFingerprints loads the list of sentByFingerprints for the given
@@ -287,5 +286,5 @@ func upgradePreviousNegotiationsV0(kv *versioned.KV) error {
 		Data: marshalPreviousNegotiations(
 			newPrevNegotiations),
 	}
-	return kv.Set(negotiationPartnersKey, negotiationPartnersVersion, obj)
+	return kv.Set(negotiationPartnersKey, obj)
 }
diff --git a/auth/store/sentRequest.go b/auth/store/sentRequest.go
index 1cc42f4748b6f4ecd419beafa765db9237afe4d7..441084e0c06b41f531009ed1b5c9d6712094ff55 100644
--- a/auth/store/sentRequest.go
+++ b/auth/store/sentRequest.go
@@ -211,8 +211,7 @@ func (sr *SentRequest) save() error {
 		Data:      data,
 	}
 
-	return sr.kv.Set(makeSentRequestKey(sr.partner),
-		currentSentRequestVersion, &obj)
+	return sr.kv.Set(makeSentRequestKey(sr.partner), &obj)
 }
 
 func (sr *SentRequest) delete() {
@@ -296,7 +295,7 @@ func upgradeSentRequestKeyV0(kv *versioned.KV, partner *id.ID) error {
 
 	// Note: uses same encoding, just different keys
 	obj.Version = 1
-	err = kv.Set(makeSentRequestKey(partner), 1, obj)
+	err = kv.Set(makeSentRequestKey(partner), obj)
 	if err != nil {
 		return err
 	}
diff --git a/auth/store/store.go b/auth/store/store.go
index d30e5d6d9c233e6072c9caf4601bf8ccc508d76c..df5535715a833a038d2f738cbe57638d1453eb00 100644
--- a/auth/store/store.go
+++ b/auth/store/store.go
@@ -149,7 +149,7 @@ func (s *Store) save() error {
 		Data:      data,
 	}
 
-	return s.kv.Set(requestMapKey, requestMapVersion, &obj)
+	return s.kv.Set(requestMapKey, &obj)
 }
 
 // NewStore creates a new store. All passed in private keys are added as
diff --git a/backup/jsonStorage.go b/backup/jsonStorage.go
index 706dd396e81ef4826f2d1696bed3eae529d3465c..3e7b889f6bc2fc43ddbf14a95e01c325f39425f5 100644
--- a/backup/jsonStorage.go
+++ b/backup/jsonStorage.go
@@ -24,7 +24,7 @@ func storeJson(json string, kv *versioned.KV) error {
 		Data:      []byte(json),
 	}
 
-	return kv.Set(jsonStorageKey, jsonStorageVersion, obj)
+	return kv.Set(jsonStorageKey, obj)
 }
 
 func loadJson(kv *versioned.KV) string {
diff --git a/backup/keyStorage.go b/backup/keyStorage.go
index a360731fee371afa7421c303e1d48b87d2851bbb..f3164957954fe1eddb24fe5eaf69133484d1b550 100644
--- a/backup/keyStorage.go
+++ b/backup/keyStorage.go
@@ -38,7 +38,7 @@ func saveBackup(key, salt []byte, params backup.Params, kv *versioned.KV) error
 		Data:      marshalBackup(key, salt, params),
 	}
 
-	return kv.Set(cryptoStorageKey, cryptoStorageVersion, obj)
+	return kv.Set(cryptoStorageKey, obj)
 }
 
 // loadBackup loads the key, salt, and params from storage.
diff --git a/cmix/cmixMessageBuffer.go b/cmix/cmixMessageBuffer.go
index d590f2d5053440b0adc18bcef585a62dbc20e562..0b4ac483889a938cee6335a888e3a122dd1fe4bb 100644
--- a/cmix/cmixMessageBuffer.go
+++ b/cmix/cmixMessageBuffer.go
@@ -52,7 +52,7 @@ func (cmh *cmixMessageHandler) SaveMessage(
 	}
 
 	// Save versioned object
-	return kv.Set(key, currentCmixMessageVersion, &obj)
+	return kv.Set(key, &obj)
 }
 
 // LoadMessage returns the message with the specified key from the key value
diff --git a/cmix/gateway/storeHostList.go b/cmix/gateway/storeHostList.go
index 1cb2929d6cf7563fe7ac3856c487f43d4a66740b..d227111f7319a67963bbc14d511f25d6b228b025 100644
--- a/cmix/gateway/storeHostList.go
+++ b/cmix/gateway/storeHostList.go
@@ -36,7 +36,7 @@ func saveHostList(kv *versioned.KV, list []*id.ID) error {
 		Timestamp: netTime.Now(),
 	}
 
-	return kv.Set(hostListKey, hostListVersion, obj)
+	return kv.Set(hostListKey, obj)
 }
 
 // getHostList returns the host list from storage.
diff --git a/cmix/identity/receptionID/identity.go b/cmix/identity/receptionID/identity.go
index a7c21d86cbf818bdcb489746647d79b106fd0626..bba7823789480636710b520d79d4deeadbfa1dbd 100644
--- a/cmix/identity/receptionID/identity.go
+++ b/cmix/identity/receptionID/identity.go
@@ -80,7 +80,7 @@ func (i Identity) store(kv *versioned.KV) error {
 	}
 
 	// Store the data
-	err = kv.Set(identityStorageKey, identityStorageVersion, obj)
+	err = kv.Set(identityStorageKey, obj)
 	if err != nil {
 		return errors.WithMessage(err, "Failed to store Identity")
 	}
diff --git a/cmix/identity/receptionID/store.go b/cmix/identity/receptionID/store.go
index e87b76760a780bfaa9d2d2702cfdb3ec868d1e20..37dfb8bba2212773c6c2de62fd3604ba3d307c1e 100644
--- a/cmix/identity/receptionID/store.go
+++ b/cmix/identity/receptionID/store.go
@@ -129,7 +129,7 @@ func (s *Store) save() error {
 		Data:      data,
 	}
 
-	err = s.kv.Set(receptionStoreStorageKey, receptionStoreStorageVersion, obj)
+	err = s.kv.Set(receptionStoreStorageKey, obj)
 	if err != nil {
 		return errors.WithMessage(err, "Failed to store reception store")
 	}
diff --git a/cmix/identity/receptionID/store/earliestRound.go b/cmix/identity/receptionID/store/earliestRound.go
index edca66ad009fbc1028b06b24257694b7064a726f..3d2ea3272b88bfe1764501897eb810c302f62ae5 100644
--- a/cmix/identity/receptionID/store/earliestRound.go
+++ b/cmix/identity/receptionID/store/earliestRound.go
@@ -72,8 +72,7 @@ func (ur *EarliestRound) save() {
 			Data:      urStr,
 		}
 
-		err = ur.kv.Set(earliestRoundStorageKey,
-			earliestRoundStorageVersion, obj)
+		err = ur.kv.Set(earliestRoundStorageKey, obj)
 		if err != nil {
 			jww.FATAL.Panicf("Failed to store the earliest round: %+v", err)
 		}
diff --git a/cmix/identity/receptionID/store/unknownRounds.go b/cmix/identity/receptionID/store/unknownRounds.go
index b69bf685771e19616f86f381ec8525c6b19c9b7c..da9fead7e48c774c7a866626a2000e13e90a2aab 100644
--- a/cmix/identity/receptionID/store/unknownRounds.go
+++ b/cmix/identity/receptionID/store/unknownRounds.go
@@ -223,7 +223,7 @@ func (urs *UnknownRounds) save() error {
 	}
 
 	// Save to disk
-	return urs.kv.Set(unknownRoundsStorageKey, unknownRoundsStorageVersion, obj)
+	return urs.kv.Set(unknownRoundsStorageKey, obj)
 }
 
 func (urs *UnknownRounds) Delete() {
diff --git a/cmix/identity/tracker.go b/cmix/identity/tracker.go
index d35177b4d4dfe52efe4aaaf1780bc56d2574ab68..daa4d0b71cc9588b24840ff1717dc3c8c1c2a02e 100644
--- a/cmix/identity/tracker.go
+++ b/cmix/identity/tracker.go
@@ -394,7 +394,7 @@ func (t *manager) save() {
 		Data:      data,
 	}
 
-	err = t.session.GetKV().Set(TrackerListKey, TrackerListVersion, obj)
+	err = t.session.GetKV().Set(TrackerListKey, obj)
 	if err != nil {
 		jww.FATAL.Panicf("Unable to save TrackedID list: %+v", err)
 	}
diff --git a/cmix/message/meteredCmixMessageBuffer.go b/cmix/message/meteredCmixMessageBuffer.go
index 017a6fdbda4b25d581137cfc4cc75c04d9cb1820..79604962bb8cfe8d076e3516096c80f04d3ee42b 100644
--- a/cmix/message/meteredCmixMessageBuffer.go
+++ b/cmix/message/meteredCmixMessageBuffer.go
@@ -24,8 +24,6 @@ import (
 	"google.golang.org/protobuf/proto"
 )
 
-const currentMeteredCmixMessageVersion = 0
-
 type meteredCmixMessageHandler struct{}
 
 type meteredCmixMessage struct {
@@ -49,13 +47,13 @@ func (*meteredCmixMessageHandler) SaveMessage(kv *versioned.KV, m interface{},
 
 	// Create versioned object
 	obj := versioned.Object{
-		Version:   currentMeteredCmixMessageVersion,
+		Version:   utility.CurrentMessageBufferVersion,
 		Timestamp: netTime.Now(),
 		Data:      marshaled,
 	}
 
 	// Save versioned object
-	return kv.Set(key, utility.CurrentMessageBufferVersion, &obj)
+	return kv.Set(key, &obj)
 }
 
 // LoadMessage returns the message with the specified key from the key value
@@ -64,7 +62,7 @@ func (*meteredCmixMessageHandler) SaveMessage(kv *versioned.KV, m interface{},
 func (*meteredCmixMessageHandler) LoadMessage(kv *versioned.KV, key string) (
 	interface{}, error) {
 	// Load the versioned object
-	vo, err := kv.Get(key, currentMeteredCmixMessageVersion)
+	vo, err := kv.Get(key, utility.CurrentMessageBufferVersion)
 	if err != nil {
 		return nil, err
 	}
@@ -83,7 +81,7 @@ func (*meteredCmixMessageHandler) LoadMessage(kv *versioned.KV, key string) (
 // DeleteMessage deletes the message with the specified key from the key value
 // store.
 func (*meteredCmixMessageHandler) DeleteMessage(kv *versioned.KV, key string) error {
-	return kv.Delete(key, currentMeteredCmixMessageVersion)
+	return kv.Delete(key, utility.CurrentMessageBufferVersion)
 }
 
 // HashMessage generates a hash of the message.
diff --git a/cmix/nodes/store.go b/cmix/nodes/store.go
index 10352ae4a6875beff6e0ebea3381061e48294275..8ec0e706b1e637d8272fac785c68f5905f98a23e 100644
--- a/cmix/nodes/store.go
+++ b/cmix/nodes/store.go
@@ -67,12 +67,12 @@ func (r *registrar) save() error {
 	}
 
 	obj := versioned.Object{
-		Version:   currentStoreVersion,
+		Version:   currentKeyVersion,
 		Timestamp: now,
 		Data:      data,
 	}
 
-	return r.kv.Set(storeKey, currentKeyVersion, &obj)
+	return r.kv.Set(storeKey, &obj)
 }
 
 // marshal builds a byte representation of the registrar.
diff --git a/cmix/nodes/storeKey.go b/cmix/nodes/storeKey.go
index ee7f64d660e0514d121eb20b0d123bbaed05ff5e..19f9a636c69102926966ec2f3a53f759d2df4032 100644
--- a/cmix/nodes/storeKey.go
+++ b/cmix/nodes/storeKey.go
@@ -84,7 +84,7 @@ func (k *key) save() error {
 		Data:      data,
 	}
 
-	return k.kv.Set(k.storeKey, currentKeyVersion, &obj)
+	return k.kv.Set(k.storeKey, &obj)
 }
 
 // delete deletes the key from the versioned keystore.
diff --git a/cmix/pickup/store/store.go b/cmix/pickup/store/store.go
index 0d21d662d78280684ace013efbe8b7e0d182fbb3..88a300494aaa2003c3181c60cec46b6c6e884821 100644
--- a/cmix/pickup/store/store.go
+++ b/cmix/pickup/store/store.go
@@ -225,7 +225,7 @@ func (s *UncheckedRoundStore) save() error {
 	}
 
 	// Save to storage
-	err = s.kv.Set(uncheckedRoundKey, uncheckedRoundVersion, obj)
+	err = s.kv.Set(uncheckedRoundKey, obj)
 	if err != nil {
 		return errors.WithMessagef(err,
 			"Could not store data for unchecked rounds")
diff --git a/cmix/pickup/store/uncheckedRounds.go b/cmix/pickup/store/uncheckedRounds.go
index d2dfd3388d9d683688ceca41c4a34f9f1df6533a..bc62d8a1d64583c44ca690af23aa733ee2e742e8 100644
--- a/cmix/pickup/store/uncheckedRounds.go
+++ b/cmix/pickup/store/uncheckedRounds.go
@@ -147,7 +147,7 @@ func storeRoundInfo(kv *versioned.KV, info *pb.RoundInfo, recipient *id.ID,
 	}
 
 	return kv.Set(
-		roundKey(id.Round(info.ID), recipient, ephID), roundInfoVersion, &obj)
+		roundKey(id.Round(info.ID), recipient, ephID), &obj)
 }
 
 func loadRoundInfo(kv *versioned.KV, id id.Round, recipient *id.ID,
diff --git a/cmix/rounds/roundStorage.go b/cmix/rounds/roundStorage.go
index 4d3cfb8385c6d2f63fd99b04c361d249616755b0..f05914ba2918612c1cb382e95e870f7c6fc7157c 100644
--- a/cmix/rounds/roundStorage.go
+++ b/cmix/rounds/roundStorage.go
@@ -32,7 +32,7 @@ func StoreRound(kv *versioned.KV, round Round, key string) error {
 		Data:      marshaled,
 	}
 
-	return kv.Set(key, currentRoundVersion, &obj)
+	return kv.Set(key, &obj)
 }
 
 // LoadRound stores the round using the key.
diff --git a/e2e/e2eMessageBuffer.go b/e2e/e2eMessageBuffer.go
index d76b1eada99936c7424224906a65b2c2f675558f..3b47ed10b9d5d31fb0d086228e941cb9c6c6f981 100644
--- a/e2e/e2eMessageBuffer.go
+++ b/e2e/e2eMessageBuffer.go
@@ -51,7 +51,7 @@ func (emh *e2eMessageHandler) SaveMessage(kv *versioned.KV, m interface{},
 	}
 
 	// Save versioned object
-	return kv.Set(key, currentE2EMessageVersion, &obj)
+	return kv.Set(key, &obj)
 }
 
 // LoadMessage returns the e2eMessage with the specified key from the key value
diff --git a/e2e/manager.go b/e2e/manager.go
index aef32e9c2bdd8dcde020bb4c94a1ef17b986e368..72197eb40c645bbc4e55a5d7485fcab4240203f4 100644
--- a/e2e/manager.go
+++ b/e2e/manager.go
@@ -75,7 +75,7 @@ func initE2E(kv *versioned.KV, myID *id.ID, privKey *cyclic.Int,
 	if err != nil {
 		return errors.WithMessage(err, "Failed to marshal rekeyParams")
 	}
-	err = kv.Set(e2eRekeyParamsKey, e2eRekeyParamsVer, &versioned.Object{
+	err = kv.Set(e2eRekeyParamsKey, &versioned.Object{
 		Version:   e2eRekeyParamsVer,
 		Timestamp: netTime.Now(),
 		Data:      rekeyParamsData,
@@ -128,7 +128,7 @@ func LoadLegacy(kv *versioned.KV, net cmix.Client, myID *id.ID,
 	}
 
 	// Store the rekey params to disk/memory
-	err = kv.Set(e2eRekeyParamsKey, e2eRekeyParamsVer, &versioned.Object{
+	err = kv.Set(e2eRekeyParamsKey, &versioned.Object{
 		Version:   e2eRekeyParamsVer,
 		Timestamp: netTime.Now(),
 		Data:      rekeyParamsData,
@@ -136,7 +136,7 @@ func LoadLegacy(kv *versioned.KV, net cmix.Client, myID *id.ID,
 	if err != nil {
 		return nil, err
 	}
-	err = kv.Set(legacyE2EKey, e2eRekeyParamsVer, &versioned.Object{
+	err = kv.Set(legacyE2EKey, &versioned.Object{
 		Version:   e2eRekeyParamsVer,
 		Timestamp: netTime.Now(),
 		Data:      []byte{1},
diff --git a/e2e/parse/conversation/partner.go b/e2e/parse/conversation/partner.go
index cbb7d30ee921dd2eadb108052a6c1d7a5f1a99c0..87b23efc031fd9e3879049665776ccd83635b5c1 100644
--- a/e2e/parse/conversation/partner.go
+++ b/e2e/parse/conversation/partner.go
@@ -163,7 +163,7 @@ func (c *Conversation) save() error {
 	}
 
 	key := makeConversationKey(c.partner)
-	return c.kv.Set(key, currentConversationVersion, &obj)
+	return c.kv.Set(key, &obj)
 }
 
 // delete removes the Conversation from KV storage.
diff --git a/e2e/parse/conversation/ring.go b/e2e/parse/conversation/ring.go
index 83fd605a29ac3077111103cad5731d9fcc6942ef..88304e97c61662af209edf81a64de540236b569c 100644
--- a/e2e/parse/conversation/ring.go
+++ b/e2e/parse/conversation/ring.go
@@ -231,7 +231,7 @@ func (b *Buff) saveBuff() error {
 		Data:      b.marshal(),
 	}
 
-	return b.kv.Set(ringBuffKey, ringBuffVersion, obj)
+	return b.kv.Set(ringBuffKey, obj)
 }
 
 // marshal creates a byte buffer containing serialized information on the Buff.
@@ -293,7 +293,7 @@ func (b *Buff) saveMessage(msg *Message) error {
 	}
 
 	return b.kv.Set(
-		makeMessageKey(msg.MessageId.truncate()), messageVersion, obj)
+		makeMessageKey(msg.MessageId.truncate()), obj)
 
 }
 
diff --git a/e2e/parse/partition/multiPartMessage.go b/e2e/parse/partition/multiPartMessage.go
index 1ab26b29c22d3cd24fbfb705ba94d3d6a13ea8d6..728e4636506682eb0d0b4c2691218fdad573bffa 100644
--- a/e2e/parse/partition/multiPartMessage.go
+++ b/e2e/parse/partition/multiPartMessage.go
@@ -102,7 +102,7 @@ func (mpm *multiPartMessage) save() error {
 		Data:      data,
 	}
 
-	return mpm.kv.Set(messageKey, currentMultiPartMessageVersion, &obj)
+	return mpm.kv.Set(messageKey, &obj)
 }
 
 func (mpm *multiPartMessage) Add(partNumber uint8, part []byte) {
diff --git a/e2e/parse/partition/part.go b/e2e/parse/partition/part.go
index 46d07e2283c5e9d03d09baae1636ff23fd71482d..78b3a8e4b337d98657fba68273de01f57f7b04d1 100644
--- a/e2e/parse/partition/part.go
+++ b/e2e/parse/partition/part.go
@@ -30,12 +30,11 @@ func savePart(kv *versioned.KV, partNum uint8, part []byte) error {
 	key := makeMultiPartMessagePartKey(partNum)
 
 	obj := versioned.Object{
-		Version:   currentMultiPartMessagePartVersion,
+		Version:   currentMultiPartMessageVersion,
 		Timestamp: netTime.Now(),
 		Data:      part,
 	}
-
-	return kv.Set(key, currentMultiPartMessageVersion, &obj)
+	return kv.Set(key, &obj)
 }
 
 func deletePart(kv *versioned.KV, partNum uint8) error {
diff --git a/e2e/parse/partition/part_test.go b/e2e/parse/partition/part_test.go
index 644b01626a9029dc02a1c3f699dbf026334bdafe..e8ac2d3dc67478d04120521f860f2a66c35c7e49 100644
--- a/e2e/parse/partition/part_test.go
+++ b/e2e/parse/partition/part_test.go
@@ -57,7 +57,7 @@ func Test_loadPart(t *testing.T) {
 
 	// Save part to key value store
 	err := rootKv.Set(
-		key, 0, &versioned.Object{Timestamp: netTime.Now(), Data: part})
+		key, &versioned.Object{Timestamp: netTime.Now(), Data: part})
 	if err != nil {
 		t.Errorf("Failed to set object: %+v", err)
 	}
diff --git a/e2e/parse/partition/store.go b/e2e/parse/partition/store.go
index f445d41facaaa781014e91a7c0c5802d8450e457..5ca9007a85a78f28b4566b2ec0be710f4305b0bc 100644
--- a/e2e/parse/partition/store.go
+++ b/e2e/parse/partition/store.go
@@ -160,7 +160,7 @@ func (s *Store) saveActiveParts() {
 		Data:      data,
 	}
 
-	err = s.kv.Set(activePartitions, activePartitionVersion, &obj)
+	err = s.kv.Set(activePartitions, &obj)
 	if err != nil {
 		jww.FATAL.Panicf("Could not save active partitions: %+v", err)
 	}
diff --git a/e2e/ratchet/partner/relationship.go b/e2e/ratchet/partner/relationship.go
index 12081022cd3ded08b3fb1cfab543f361deb63173..c7eb260f78f79f22847a45e653e0110873caeeb6 100644
--- a/e2e/ratchet/partner/relationship.go
+++ b/e2e/ratchet/partner/relationship.go
@@ -161,7 +161,7 @@ func (r *relationship) save() error {
 		Data:      data,
 	}
 
-	return r.kv.Set(relationshipKey, currentRelationshipVersion, &obj)
+	return r.kv.Set(relationshipKey, &obj)
 }
 
 //ekv functions
diff --git a/e2e/ratchet/partner/relationshipFingerprint.go b/e2e/ratchet/partner/relationshipFingerprint.go
index d0426e1eb630733f493b0f7ecf1cee8cfe99d551..3bad30633b9556df8e5fe0e4ba97a07dc5254089 100644
--- a/e2e/ratchet/partner/relationshipFingerprint.go
+++ b/e2e/ratchet/partner/relationshipFingerprint.go
@@ -40,13 +40,12 @@ func makeRelationshipFingerprint(t session2.RelationshipType, grp *cyclic.Group,
 func storeRelationshipFingerprint(fp []byte, kv *versioned.KV) error {
 	now := netTime.Now()
 	obj := versioned.Object{
-		Version:   currentRelationshipFingerprintVersion,
+		Version:   currentRelationshipVersion,
 		Timestamp: now,
 		Data:      fp,
 	}
 
-	return kv.Set(relationshipFingerprintKey, currentRelationshipVersion,
-		&obj)
+	return kv.Set(relationshipFingerprintKey, &obj)
 }
 
 func loadRelationshipFingerprint(kv *versioned.KV) []byte {
diff --git a/e2e/ratchet/partner/session/session.go b/e2e/ratchet/partner/session/session.go
index 3bded2f0797b2873642065711aeca3545555ac19..1ab3c1e771b64e2e5edd2d65aa0ace8a8abcbd89 100644
--- a/e2e/ratchet/partner/session/session.go
+++ b/e2e/ratchet/partner/session/session.go
@@ -239,7 +239,7 @@ func (s *Session) Save() error {
 
 	jww.WARN.Printf("saving with KV: %v", s.kv)
 
-	return s.kv.Set(sessionKey, currentSessionVersion, &obj)
+	return s.kv.Set(sessionKey, &obj)
 }
 
 /*METHODS*/
diff --git a/e2e/ratchet/storage.go b/e2e/ratchet/storage.go
index b426020f4c1024861ebfb4b82114e0dc3b4096af..7db9c13a7c2ee1aa16e34ab55f70536f708230d4 100644
--- a/e2e/ratchet/storage.go
+++ b/e2e/ratchet/storage.go
@@ -99,7 +99,7 @@ func (r *Ratchet) save() error {
 		Data:      data,
 	}
 
-	return r.kv.Set(storeKey, currentStoreVersion, &obj)
+	return r.kv.Set(storeKey, &obj)
 }
 
 // ekv functions
diff --git a/fileTransfer/store/cypher/manager.go b/fileTransfer/store/cypher/manager.go
index c03f5d6bc2ce0d490c92703ba48d667d3c98f54b..88d67d7c4488b2b0122ccb9808ed52e2a4fc97b0 100644
--- a/fileTransfer/store/cypher/manager.go
+++ b/fileTransfer/store/cypher/manager.go
@@ -164,7 +164,7 @@ func saveKey(key *ftCrypto.TransferKey, kv *versioned.KV) error {
 		Data:      key.Bytes(),
 	}
 
-	return kv.Set(cypherManagerKeyStoreKey, cypherManagerKeyStoreVersion, obj)
+	return kv.Set(cypherManagerKeyStoreKey, obj)
 }
 
 // loadKey loads the transfer key from storage.
diff --git a/fileTransfer/store/received.go b/fileTransfer/store/received.go
index 552dc88d1062a299dfaa6df9225aa54462ca97e9..ae39db044a5e4974864f92cd5ce222ec90131bf9 100644
--- a/fileTransfer/store/received.go
+++ b/fileTransfer/store/received.go
@@ -157,7 +157,7 @@ func (r *Received) save() error {
 		Data:      data,
 	}
 
-	return r.kv.Set(receivedTransfersStoreKey, receivedTransfersStoreVersion, obj)
+	return r.kv.Set(receivedTransfersStoreKey, obj)
 }
 
 // marshalReceivedTransfersMap serialises the list of transfer IDs from a
diff --git a/fileTransfer/store/receivedTransfer.go b/fileTransfer/store/receivedTransfer.go
index ece1f01fcd6994811ced18989d0b288150cc69f2..5ae7a07d52e1ecc73ba9fb6582ee2e3094730fcb 100644
--- a/fileTransfer/store/receivedTransfer.go
+++ b/fileTransfer/store/receivedTransfer.go
@@ -339,7 +339,7 @@ func (rt *ReceivedTransfer) save() error {
 	}
 
 	// Save versioned object
-	return rt.kv.Set(receivedTransferStoreKey, receivedTransferStoreVersion, vo)
+	return rt.kv.Set(receivedTransferStoreKey, vo)
 }
 
 // receivedTransferDisk structure is used to marshal and unmarshal
@@ -385,7 +385,7 @@ func savePart(part []byte, partNum int, kv *versioned.KV) error {
 		Data:      part,
 	}
 
-	return kv.Set(makeReceivedPartKey(partNum), receivedPartStoreVersion, obj)
+	return kv.Set(makeReceivedPartKey(partNum), obj)
 }
 
 // loadPart loads the part with the given part number from storage.
diff --git a/fileTransfer/store/sent.go b/fileTransfer/store/sent.go
index e4a1fef2f730ff85eeeae97012a3e8922374c885..fc53e072803459c809129a00aea41eb16b838642 100644
--- a/fileTransfer/store/sent.go
+++ b/fileTransfer/store/sent.go
@@ -165,7 +165,7 @@ func (s *Sent) save() error {
 		Data:      data,
 	}
 
-	return s.kv.Set(sentTransfersStoreKey, sentTransfersStoreVersion, obj)
+	return s.kv.Set(sentTransfersStoreKey, obj)
 }
 
 // marshalSentTransfersMap serialises the list of transfer IDs from a
diff --git a/fileTransfer/store/sentTransfer.go b/fileTransfer/store/sentTransfer.go
index 90aa56a8956f7a1645a269381a2f3e56396db137..39e826ccb7bd3c4f47e4c9c7fbc436fdc8cc46e7 100644
--- a/fileTransfer/store/sentTransfer.go
+++ b/fileTransfer/store/sentTransfer.go
@@ -346,7 +346,7 @@ func (st *SentTransfer) save() error {
 		Data:      data,
 	}
 
-	return st.kv.Set(sentTransferStoreKey, sentTransferStoreVersion, obj)
+	return st.kv.Set(sentTransferStoreKey, obj)
 }
 
 // sentTransferDisk structure is used to marshal and unmarshal SentTransfer
diff --git a/groupChat/groupStore/group.go b/groupChat/groupStore/group.go
index b1bbd60d608e9c895e9ab6fcfd1700db4a92a4e9..6a9ac4192f4939a8dcbf0c7d54b7c8c6dedb9b9d 100644
--- a/groupChat/groupStore/group.go
+++ b/groupChat/groupStore/group.go
@@ -105,7 +105,7 @@ func (g Group) store(kv *versioned.KV) error {
 		Data:      g.Serialize(),
 	}
 
-	return kv.Set(groupStoreKey(g.ID), groupStoreVersion, obj)
+	return kv.Set(groupStoreKey(g.ID), obj)
 }
 
 // loadGroup returns the group with the corresponding ID from storage.
diff --git a/groupChat/groupStore/store.go b/groupChat/groupStore/store.go
index f74a7aeb8ed9a3bd557a0d339ad8419158604513..74140e19f91c1711f05b0f5c7f91abcee6ee0631 100644
--- a/groupChat/groupStore/store.go
+++ b/groupChat/groupStore/store.go
@@ -126,7 +126,7 @@ func (s *Store) saveGroupList() error {
 	}
 
 	// Save to storage
-	return s.kv.Set(groupListStorageKey, groupListVersion, obj)
+	return s.kv.Set(groupListStorageKey, obj)
 }
 
 // serializeGroupIdList serializes the list of group IDs.
diff --git a/storage/clientVersion/store.go b/storage/clientVersion/store.go
index 1a6e2f592bcb21f349530cc773b22fbd6dec78a2..f1ae712d873b3d73004826c231aec0b5fa9fc341 100644
--- a/storage/clientVersion/store.go
+++ b/storage/clientVersion/store.go
@@ -113,5 +113,5 @@ func (s *Store) save() error {
 		Data:      []byte(s.version.String()),
 	}
 
-	return s.kv.Set(storeKey, storeVersion, &obj)
+	return s.kv.Set(storeKey, &obj)
 }
diff --git a/storage/clientVersion/store_test.go b/storage/clientVersion/store_test.go
index 61814da6e79db4271c95f035df497c280fd778af..9da1b75ef38491e6405e9c86f9cdf4a77cf48755 100644
--- a/storage/clientVersion/store_test.go
+++ b/storage/clientVersion/store_test.go
@@ -71,7 +71,7 @@ func TestLoadStore_ParseVersionError(t *testing.T) {
 		Data:      []byte("invalid version"),
 	}
 
-	err := kv.Prefix(prefix).Set(storeKey, storeVersion, &obj)
+	err := kv.Prefix(prefix).Set(storeKey, &obj)
 	if err != nil {
 		t.Fatalf("Failed to save Store: %+v", err)
 	}
diff --git a/storage/session.go b/storage/session.go
index 1ef1851799d40a72a4572d0229670e7a2bfa6d13..e982415a1ed6523a3ad99d6a4711c6a4a31fe514 100644
--- a/storage/session.go
+++ b/storage/session.go
@@ -195,9 +195,10 @@ func (s *session) Get(key string) (*versioned.Object, error) {
 	return s.kv.Get(key, currentSessionVersion)
 }
 
-// Set a value in the session
+// Set a value in the session. If you wish to maintain versioning,
+// the [versioned.Object]'s Version field must be set.
 func (s *session) Set(key string, object *versioned.Object) error {
-	return s.kv.Set(key, currentSessionVersion, object)
+	return s.kv.Set(key, object)
 }
 
 // Delete a value in the session
diff --git a/storage/user/cryptographic.go b/storage/user/cryptographic.go
index 1c2d6f8f3e618e7e92106f52a8be88298b5fdc13..54fc60f864c7c602c676a3de38c647777645c895 100644
--- a/storage/user/cryptographic.go
+++ b/storage/user/cryptographic.go
@@ -216,8 +216,7 @@ func (ci *CryptographicIdentity) save(kv *versioned.KV) error {
 		Data:      enc,
 	}
 
-	return kv.Set(cryptographicIdentityKey,
-		currentCryptographicIdentityVersion, obj)
+	return kv.Set(cryptographicIdentityKey, obj)
 }
 
 func (ci *CryptographicIdentity) GetTransmissionID() *id.ID {
diff --git a/storage/user/registation.go b/storage/user/registation.go
index f61972c392fc584ab1a06be1760ee5fe52f17ff6..aa144ef7f957a54205a95910ff272a82f9a46a36 100644
--- a/storage/user/registation.go
+++ b/storage/user/registation.go
@@ -95,8 +95,7 @@ func (u *User) SetTransmissionRegistrationValidationSignature(b []byte) {
 		Data:      b,
 	}
 
-	err := u.kv.Set(transmissionRegValidationSigKey,
-		currentRegValidationSigVersion, obj)
+	err := u.kv.Set(transmissionRegValidationSigKey, obj)
 	if err != nil {
 		jww.FATAL.Panicf("Failed to store the transmission Identity Validation "+
 			"Signature: %s", err)
@@ -122,8 +121,7 @@ func (u *User) SetReceptionRegistrationValidationSignature(b []byte) {
 		Data:      b,
 	}
 
-	err := u.kv.Set(receptionRegValidationSigKey,
-		currentRegValidationSigVersion, obj)
+	err := u.kv.Set(receptionRegValidationSigKey, obj)
 	if err != nil {
 		jww.FATAL.Panicf("Failed to store the reception Identity Validation "+
 			"Signature: %s", err)
@@ -148,13 +146,12 @@ func (u *User) SetRegistrationTimestamp(tsNano int64) {
 	binary.BigEndian.PutUint64(tsBytes, uint64(tsNano))
 
 	obj := &versioned.Object{
-		Version:   currentRegValidationSigVersion,
+		Version:   registrationTimestampVersion,
 		Timestamp: netTime.Now(),
 		Data:      tsBytes,
 	}
 
-	err := u.kv.Set(registrationTimestampKey,
-		registrationTimestampVersion, obj)
+	err := u.kv.Set(registrationTimestampKey, obj)
 	if err != nil {
 		jww.FATAL.Panicf("Failed to store the reception timestamp: %s", err)
 	}
diff --git a/storage/user/registation_test.go b/storage/user/registation_test.go
index a8b7d03549998af4f4bf614cd464204965a7c2c8..4ada8cf0a9ce106956f36428c416d146853b5dbb 100644
--- a/storage/user/registation_test.go
+++ b/storage/user/registation_test.go
@@ -137,7 +137,7 @@ func TestUser_loadRegistrationValidationSignature(t *testing.T) {
 
 	sig := []byte("transmissionsignature")
 	err = kv.Set(transmissionRegValidationSigKey,
-		currentRegValidationSigVersion, &versioned.Object{
+		&versioned.Object{
 			Version:   currentRegValidationSigVersion,
 			Timestamp: netTime.Now(),
 			Data:      sig,
@@ -153,7 +153,7 @@ func TestUser_loadRegistrationValidationSignature(t *testing.T) {
 
 	sig = []byte("receptionsignature")
 	err = kv.Set(receptionRegValidationSigKey,
-		currentRegValidationSigVersion, &versioned.Object{
+		&versioned.Object{
 			Version:   currentRegValidationSigVersion,
 			Timestamp: netTime.Now(),
 			Data:      sig,
@@ -252,12 +252,12 @@ func TestUser_loadRegistrationTimestamp(t *testing.T) {
 	data := make([]byte, 8)
 	binary.BigEndian.PutUint64(data, uint64(testTime.UnixNano()))
 	vo := &versioned.Object{
-		Version:   currentRegValidationSigVersion,
+		Version:   registrationTimestampVersion,
 		Timestamp: netTime.Now(),
 		Data:      data,
 	}
-	err = kv.Set(registrationTimestampKey,
-		registrationTimestampVersion, vo)
+
+	err = kv.Set(registrationTimestampKey, vo)
 	if err != nil {
 		t.Errorf("Failed to set reg validation sig key in kv store: %+v", err)
 	}
diff --git a/storage/user/username.go b/storage/user/username.go
index 7e40ecf5bcb01d92c75a2dffb39e1631c41eb9f9..7a0b939da475473602480d2390ecabcebaefd2c0 100644
--- a/storage/user/username.go
+++ b/storage/user/username.go
@@ -39,7 +39,7 @@ func (u *User) SetUsername(username string) error {
 		Data:      []byte(username),
 	}
 
-	err := u.kv.Set(usernameKey, currentUsernameVersion, obj)
+	err := u.kv.Set(usernameKey, obj)
 	if err != nil {
 		jww.FATAL.Panicf("Failed to store the username: %s", err)
 	}
diff --git a/storage/user/username_test.go b/storage/user/username_test.go
index bb044f4ad9dc2c2a83c7a6b9f4ee382a07b795fe..91f8b64a30db6862e98888e7e9dd25ecfcb69404 100644
--- a/storage/user/username_test.go
+++ b/storage/user/username_test.go
@@ -120,7 +120,7 @@ func TestUser_loadUsername(t *testing.T) {
 
 	u1 := "zezima"
 
-	err = u.kv.Set(usernameKey, currentUsernameVersion, &versioned.Object{
+	err = u.kv.Set(usernameKey, &versioned.Object{
 		Version:   currentUsernameVersion,
 		Timestamp: netTime.Now(),
 		Data:      []byte(u1),
diff --git a/storage/utility/NDF.go b/storage/utility/NDF.go
index 3faf19b4cbfe0ed4576269cb8ad5734fcaf610f1..c01485f26856e0ad111dab4614992045d7d585e4 100644
--- a/storage/utility/NDF.go
+++ b/storage/utility/NDF.go
@@ -43,5 +43,5 @@ func SaveNDF(kv *versioned.KV, key string, ndf *ndf.NetworkDefinition) error {
 		Data:      marshaled,
 	}
 
-	return kv.Set(key, currentNDFVersion, &obj)
+	return kv.Set(key, &obj)
 }
diff --git a/storage/utility/blockStore.go b/storage/utility/blockStore.go
index 9bfdcadcab4aab91fde5bc94c76471fa435edf49..d81e0fbf363d500d051638c866ade4cbbd777d2f 100644
--- a/storage/utility/blockStore.go
+++ b/storage/utility/blockStore.go
@@ -162,7 +162,7 @@ func (bs *BlockStore) saveBlock() error {
 	}
 
 	// Save to storage
-	err = bs.kv.Set(bs.getKey(bs.lastSaved), blockVersion, &obj)
+	err = bs.kv.Set(bs.getKey(bs.lastSaved), &obj)
 	if err != nil {
 		return errors.Errorf(bKvSaveErr, bs.lastSaved, err)
 	}
@@ -221,7 +221,7 @@ func (bs *BlockStore) save() error {
 	}
 
 	// Save to storage
-	err := bs.kv.Set(blockStoreKey, blockStoreVersion, &obj)
+	err := bs.kv.Set(blockStoreKey, &obj)
 	if err != nil {
 		return errors.Errorf(bsKvSaveErr, err)
 	}
diff --git a/storage/utility/blockStore_test.go b/storage/utility/blockStore_test.go
index 889655b558df08a0ede280d75db7431abdc9530a..217089bbd0916cf26f3de65468c0ab05dacd20fc 100644
--- a/storage/utility/blockStore_test.go
+++ b/storage/utility/blockStore_test.go
@@ -215,7 +215,7 @@ func TestBlockStore_loadBlock_UnmarshalError(t *testing.T) {
 	}
 
 	// Save to storage
-	err := bs.kv.Set(bs.getKey(bs.lastSaved), blockVersion, &obj)
+	err := bs.kv.Set(bs.getKey(bs.lastSaved), &obj)
 	if err != nil {
 		t.Errorf("Failed to save data to KV: %+v", err)
 	}
@@ -345,7 +345,7 @@ func TestBlockStore_load_UnmarshalError(t *testing.T) {
 	}
 
 	// Save to storage
-	err := kv.Set(blockStoreKey, blockStoreVersion, &obj)
+	err := kv.Set(blockStoreKey, &obj)
 	if err != nil {
 		t.Fatalf("failed to save object to storage: %+v", err)
 	}
diff --git a/storage/utility/bucket.go b/storage/utility/bucket.go
index 4757c1add087ea30d8a8171c9a87b4572da59e2e..fd3061e8f5f311f55a0a7e47648c46fa9114de37 100644
--- a/storage/utility/bucket.go
+++ b/storage/utility/bucket.go
@@ -68,7 +68,7 @@ func (s *BucketStore) save(inBucket uint32, timestamp int64) {
 		Data:      data,
 	}
 
-	err = s.kv.Set(bucketStoreKey, bucketStoreVersion, &obj)
+	err = s.kv.Set(bucketStoreKey, &obj)
 
 	if err != nil {
 		jww.ERROR.Printf("Failed to store %s bucket data: %v",
diff --git a/storage/utility/bucketParams.go b/storage/utility/bucketParams.go
index c9a8789ccb5d847b3505717b53b9fe932398d688..90708af650febc99ab6f6e18f7bb58a51a995ba7 100644
--- a/storage/utility/bucketParams.go
+++ b/storage/utility/bucketParams.go
@@ -99,7 +99,7 @@ func (s *BucketParamStore) save() error {
 	}
 
 	// Store object into storage
-	return s.kv.Set(bucketParamsKey, bucketParamsVersion, object)
+	return s.kv.Set(bucketParamsKey, object)
 }
 
 // load extracts the bucket params from store and loads it into the
diff --git a/storage/utility/contact.go b/storage/utility/contact.go
index 91ad113a10aedeb78f213ffdfad9e402cb51e67b..98268e686b51cd30f54ad017682f542998ebc8a1 100644
--- a/storage/utility/contact.go
+++ b/storage/utility/contact.go
@@ -35,7 +35,7 @@ func StoreContact(kv *versioned.KV, c contact.Contact) error {
 		Data:      c.Marshal(),
 	}
 
-	return kv.Set(makeContactKey(c.ID), currentContactVersion, &obj)
+	return kv.Set(makeContactKey(c.ID), &obj)
 }
 
 // LoadContact reads a contact from a versioned.KV vie their contact ID.
diff --git a/storage/utility/dh.go b/storage/utility/dh.go
index 05c3dde6bb4dd93fd4a67f135cf0c521eb8cf379..de697130ae7bf68f41dc88567346992cc181d164 100644
--- a/storage/utility/dh.go
+++ b/storage/utility/dh.go
@@ -29,7 +29,7 @@ func StoreCyclicKey(kv *versioned.KV, cy *cyclic.Int, key string) error {
 		Data:      data,
 	}
 
-	return kv.Set(key, currentCyclicVersion, &obj)
+	return kv.Set(key, &obj)
 }
 
 func LoadCyclicKey(kv *versioned.KV, key string) (*cyclic.Int, error) {
diff --git a/storage/utility/group.go b/storage/utility/group.go
index cf47d34b002933977620814d3a15dc689aee56a9..769e0fc0fa682e1dafac61fe24fe69c6f16bd930 100644
--- a/storage/utility/group.go
+++ b/storage/utility/group.go
@@ -29,7 +29,7 @@ func StoreGroup(kv *versioned.KV, grp *cyclic.Group, key string) error {
 		Data:      data,
 	}
 
-	return kv.Set(key, currentGroupVersion, &obj)
+	return kv.Set(key, &obj)
 }
 
 func LoadGroup(kv *versioned.KV, key string) (*cyclic.Group, error) {
diff --git a/storage/utility/id.go b/storage/utility/id.go
index ce2ff80e1627509d288d63d455ecdf597cad3e8b..6046627b374ebd6f9093452c72cc0cade334cfe5 100644
--- a/storage/utility/id.go
+++ b/storage/utility/id.go
@@ -29,7 +29,7 @@ func StoreID(kv *versioned.KV, sid *id.ID, key string) error {
 		Data:      data,
 	}
 
-	return kv.Set(key, currentIDVersion, &obj)
+	return kv.Set(key, &obj)
 }
 
 func LoadID(kv *versioned.KV, key string) (*id.ID, error) {
diff --git a/storage/utility/messageBuffer.go b/storage/utility/messageBuffer.go
index e8ed02f9bb5791e0ca191c516ecf7da6bf25e10b..15c3296673f17bcf7a08869e6fef305dc5219031 100644
--- a/storage/utility/messageBuffer.go
+++ b/storage/utility/messageBuffer.go
@@ -146,7 +146,7 @@ func (mb *MessageBuffer) save() error {
 	}
 
 	// Save versioned object
-	return mb.kv.Set(mb.key, CurrentMessageBufferVersion, &obj)
+	return mb.kv.Set(mb.key, &obj)
 }
 
 // getMessageList returns a list of all message hashes stored in messages and
diff --git a/storage/utility/multiStateVector.go b/storage/utility/multiStateVector.go
index a00e75c856f075c90cdb6dc6b30706fa95c2fc6b..e12b6caff9fbbc262ee679df1399960495fdbffa 100644
--- a/storage/utility/multiStateVector.go
+++ b/storage/utility/multiStateVector.go
@@ -502,7 +502,7 @@ func (msv *MultiStateVector) save() error {
 		Data:      data,
 	}
 
-	return msv.kv.Set(msv.key, multiStateVectorVersion, obj)
+	return msv.kv.Set(msv.key, obj)
 }
 
 // Delete removes the MultiStateVector from storage.
diff --git a/storage/utility/multiStateVector_test.go b/storage/utility/multiStateVector_test.go
index 1982ccf1e19bda1eeee1734da98e633d63e859ce..e198da67087e19b070dcc235a407d5b97345a607 100644
--- a/storage/utility/multiStateVector_test.go
+++ b/storage/utility/multiStateVector_test.go
@@ -890,7 +890,7 @@ func TestLoadMultiStateVector_UnmarshalError(t *testing.T) {
 	expectedErr := strings.Split(loadUnmarshalMsvErr, "%")[0]
 
 	// Save invalid data to storage
-	err := kv.Set(makeMultiStateVectorKey(key), multiStateVectorVersion,
+	err := kv.Set(makeMultiStateVectorKey(key),
 		&versioned.Object{
 			Version:   multiStateVectorVersion,
 			Timestamp: netTime.Now(),
diff --git a/storage/utility/sidh.go b/storage/utility/sidh.go
index 453df26aa98e91c2310b88a6bcbb86054791624f..03599f79dd58d1daef38f3a062c7541b932b8477 100644
--- a/storage/utility/sidh.go
+++ b/storage/utility/sidh.go
@@ -93,7 +93,7 @@ func StoreSIDHPublicKey(kv *versioned.KV, sidH *sidh.PublicKey, key string) erro
 		Data:      sidHBytes,
 	}
 
-	return kv.Set(key, currentSIDHPubKeyVersion, &obj)
+	return kv.Set(key, &obj)
 }
 
 // LoadSIDHPubKeyA loads a public key from storage.
@@ -138,7 +138,7 @@ func StoreSIDHPrivateKey(kv *versioned.KV, sidH *sidh.PrivateKey, key string) er
 		Data:      sidHBytes,
 	}
 
-	return kv.Set(key, currentSIDHPrivKeyVersion, &obj)
+	return kv.Set(key, &obj)
 }
 
 // LoadSIDHPrivateKeyA loads a public key from storage.
diff --git a/storage/utility/stateVector.go b/storage/utility/stateVector.go
index 0b527daeb136983039a1ec5f6e7138eacda818ad..f3ed4da6d4612365ea5b564ef5742976a1368626 100644
--- a/storage/utility/stateVector.go
+++ b/storage/utility/stateVector.go
@@ -388,7 +388,7 @@ func (sv *StateVector) save() error {
 		Data:      data,
 	}
 
-	return sv.kv.Set(sv.key, currentStateVectorVersion, &obj)
+	return sv.kv.Set(sv.key, &obj)
 }
 
 // Delete remove the StateVector from storage.
diff --git a/storage/utility/stateVector_test.go b/storage/utility/stateVector_test.go
index be5dbd9269141d0fe6251138942a82a5f6b6c8a7..13218768a9bbc04dbadef0153e19e2dfb920add6 100644
--- a/storage/utility/stateVector_test.go
+++ b/storage/utility/stateVector_test.go
@@ -582,7 +582,7 @@ func TestLoadStateVector_UnmarshalError(t *testing.T) {
 		Timestamp: netTime.Now(),
 		Data:      []byte("invalidStateVector"),
 	}
-	err := kv.Set(makeStateVectorKey(key), currentStateVectorVersion, &obj)
+	err := kv.Set(makeStateVectorKey(key), &obj)
 	if err != nil {
 		t.Errorf("Failed to save invalid StateVector to storage: %+v", err)
 	}
diff --git a/storage/versioned/kv.go b/storage/versioned/kv.go
index ebe47ce94f31f1f7d3e8e60ffa3a22272c26e4fd..4b0179fa3e8cc764263a3d6f305bfafa6a5e9522 100644
--- a/storage/versioned/kv.go
+++ b/storage/versioned/kv.go
@@ -131,8 +131,10 @@ func (v *KV) Delete(key string, version uint64) error {
 // Set upserts new data into the storage
 // When calling this, you are responsible for prefixing the key with the correct
 // type optionally unique id! Call MakeKeyWithPrefix() to do so.
-func (v *KV) Set(key string, version uint64, object *Object) error {
-	key = v.makeKey(key, version)
+// The [Object] should contain the versioning if you are maintaining such
+// a functionality.
+func (v *KV) Set(key string, object *Object) error {
+	key = v.makeKey(key, object.Version)
 	jww.TRACE.Printf("Set %p with key %v", v.r.data, key)
 	return v.r.data.Set(key, object)
 }
diff --git a/storage/versioned/kv_test.go b/storage/versioned/kv_test.go
index baeed14b812529f18fe992ef71472f44275a6815..deb7eacf20a7d67dd274ee6e59337a6cb9610fb4 100644
--- a/storage/versioned/kv_test.go
+++ b/storage/versioned/kv_test.go
@@ -188,7 +188,7 @@ func TestVersionedKV_Set(t *testing.T) {
 		Timestamp: netTime.Now(),
 		Data:      []byte("not upgraded"),
 	}
-	err := vkv.Set("test", originalVersion, &original)
+	err := vkv.Set("test", &original)
 	if err != nil {
 		t.Fatal(err)
 	}
diff --git a/ud/registered.go b/ud/registered.go
index a636ce4a3a7e00e25ca8f0326bee978fa8051af8..f19bcc03e63adebe5b3992131e61af1cc91008e1 100644
--- a/ud/registered.go
+++ b/ud/registered.go
@@ -39,7 +39,7 @@ func setRegistered(kv *versioned.KV) error {
 		Data:      data,
 	}
 
-	if err := kv.Set(isRegisteredKey, isRegisteredVersion, obj); err != nil {
+	if err := kv.Set(isRegisteredKey, obj); err != nil {
 		jww.FATAL.Panicf("Failed to store that the client is "+
 			"registered: %+v", err)
 	}
diff --git a/ud/store/store.go b/ud/store/store.go
index 3991eae26b339426a0b31b7380298047a2cc6745..d9472bedc5f97e0e0d8a9ca1f710aecf5a7a55cb 100644
--- a/ud/store/store.go
+++ b/ud/store/store.go
@@ -101,7 +101,7 @@ func (s *Store) saveConfirmedFacts() error {
 	}
 
 	// Save to storage
-	return s.kv.Set(confirmedFactKey, version, &obj)
+	return s.kv.Set(confirmedFactKey, &obj)
 }
 
 // saveUnconfirmedFacts saves all data within Store.unconfirmedFacts into storage.
@@ -120,7 +120,7 @@ func (s *Store) saveUnconfirmedFacts() error {
 	}
 
 	// Save to storage
-	return s.kv.Set(unconfirmedFactKey, version, &obj)
+	return s.kv.Set(unconfirmedFactKey, &obj)
 
 }