diff --git a/go.mod b/go.mod
index 821b9d91dc9c9aaed475345f6bfff8b5d2921620..1adbb17a314ae7c3bcf0aac921961fd59c28a201 100644
--- a/go.mod
+++ b/go.mod
@@ -23,7 +23,7 @@ require (
 	gitlab.com/elixxir/primitives v0.0.3-0.20211208211148-752546cf2e46
 	gitlab.com/xx_network/comms v0.0.4-0.20211202195810-9dfc0b6cdb28
 	gitlab.com/xx_network/crypto v0.0.5-0.20211014163843-57b345890686
-	gitlab.com/xx_network/primitives v0.0.4-0.20211215010517-1917372c5ecc
+	gitlab.com/xx_network/primitives v0.0.4-0.20211215214631-b245b75e5caf
 	golang.org/x/crypto v0.0.0-20210921155107-089bfa567519
 	golang.org/x/net v0.0.0-20210525063256-abc453219eb5
 	google.golang.org/genproto v0.0.0-20210105202744-fe13368bc0e1 // indirect
diff --git a/go.sum b/go.sum
index b5183588849d9beaa656331aadf64bc2846487f2..63dc75111fc69d4f66b1f692a2a98c0bb1652c9d 100644
--- a/go.sum
+++ b/go.sum
@@ -281,6 +281,8 @@ gitlab.com/xx_network/primitives v0.0.4-0.20211014163031-53405cf191fb h1:0K9dyxF
 gitlab.com/xx_network/primitives v0.0.4-0.20211014163031-53405cf191fb/go.mod h1:9imZHvYwNFobxueSvVtHneZLk9wTK7HQTzxPm+zhFhE=
 gitlab.com/xx_network/primitives v0.0.4-0.20211215010517-1917372c5ecc h1:a3FIvYTY5b5+wN6LzQpgkFSkdlfxR0u95xSSRFvi3Ho=
 gitlab.com/xx_network/primitives v0.0.4-0.20211215010517-1917372c5ecc/go.mod h1:9imZHvYwNFobxueSvVtHneZLk9wTK7HQTzxPm+zhFhE=
+gitlab.com/xx_network/primitives v0.0.4-0.20211215214631-b245b75e5caf h1:lhkq8CQATHg2h/VQC0zFy/9iAelFlY2ciKetFcU8GUE=
+gitlab.com/xx_network/primitives v0.0.4-0.20211215214631-b245b75e5caf/go.mod h1:9imZHvYwNFobxueSvVtHneZLk9wTK7HQTzxPm+zhFhE=
 gitlab.com/xx_network/ring v0.0.3-0.20210527191221-ce3f170aabd5 h1:FY+4Rh1Q2rgLyv10aKJjhWApuKRCR/054XhreudfAvw=
 gitlab.com/xx_network/ring v0.0.3-0.20210527191221-ce3f170aabd5/go.mod h1:aLzpP2TiZTQut/PVHR40EJAomzugDdHXetbieRClXIM=
 go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
diff --git a/storage/utility/bucketParams.go b/storage/utility/bucketParams.go
index 05a6dffb8c9de56fadec17dbdb1e971ec2ad41f1..e07797719349cb7fa2c809709d08d3207f95886c 100644
--- a/storage/utility/bucketParams.go
+++ b/storage/utility/bucketParams.go
@@ -77,8 +77,7 @@ func (s *BucketParamStore) UpdateParams(capacity, leakedTokens uint32,
 
 // LoadBucketParamsStore loads the bucket params data from storage and constructs
 // a BucketParamStore.
-func LoadBucketParamsStore(
-	kv *versioned.KV) (*BucketParamStore, error) {
+func LoadBucketParamsStore(kv *versioned.KV) (*BucketParamStore, error) {
 	bps := &BucketParamStore{
 		params: &rateLimiting.MapParams{},
 		mux:    sync.RWMutex{},
diff --git a/storage/utility/bucketParams_test.go b/storage/utility/bucketParams_test.go
index aadf01f3b05ecf51c87bf3c2ce988f9724cc8511..c2ce1bdbfdb99bb0dd0dba059216556805cb03bc 100644
--- a/storage/utility/bucketParams_test.go
+++ b/storage/utility/bucketParams_test.go
@@ -7,4 +7,64 @@
 
 package utility
 
+import (
+	"gitlab.com/elixxir/client/storage/versioned"
+	"gitlab.com/elixxir/ekv"
+	"reflect"
+	"testing"
+	"time"
+)
+
 // todo: write tests
+
+func TestNewBucketParamsStore(t *testing.T) {
+	kv := versioned.NewKV(make(ekv.Memstore))
+	capacity, leakedTokens, leakDuration := uint32(10), uint32(11), time.Duration(12)
+	bps, err := NewBucketParamsStore(capacity, leakedTokens, leakDuration, kv)
+	if err != nil {
+		t.Fatalf("NewBucketParamsStore error: %v", err)
+	}
+
+	newParams := bps.params
+	if newParams.Capacity != capacity || newParams.LeakedTokens != leakedTokens ||
+		newParams.LeakDuration != leakDuration {
+		t.Fatalf("Unexpected values in BucketParamStore!"+
+			"\n\tExpected params {capacity: %d, leakedToken %d, leakDuration: %d}"+
+			"\n\tReceived params {capacity: %d, leakedToken %d, leakDuration: %d}",
+			capacity, leakedTokens, leakDuration,
+			newParams.Capacity, newParams.LeakedTokens, newParams.LeakDuration)
+	}
+
+	vo, err := kv.Prefix(bucketParamsPrefix).Get(bucketParamsKey, bucketParamsVersion)
+	if err != nil {
+		t.Fatalf("Failed to load from KV: %v", err)
+	}
+
+	loadedParams := unmarshalBucketParams(vo.Data)
+
+	if !reflect.DeepEqual(newParams, loadedParams) {
+		t.Fatalf("Loaded params from store does not match initialized values."+
+			"\n\tExpected: %v"+
+			"\n\tReceived: %v", newParams, loadedParams)
+	}
+}
+
+func TestLoadBucketParamsStore(t *testing.T) {
+	kv := versioned.NewKV(make(ekv.Memstore))
+	capacity, leakedTokens, leakDuration := uint32(10), uint32(11), time.Duration(12)
+	bps, err := NewBucketParamsStore(capacity, leakedTokens, leakDuration, kv)
+	if err != nil {
+		t.Fatalf("NewBucketParamsStore error: %v", err)
+	}
+
+	loadedBps, err := LoadBucketParamsStore(kv)
+	if err != nil {
+		t.Fatalf("LoadBucketParamsStore error: %v", err)
+	}
+
+	if !reflect.DeepEqual(loadedBps, bps) {
+		t.Fatalf("Loaded params from store does not match initialized values."+
+			"\n\tExpected: %v"+
+			"\n\tReceived: %v", bps, loadedBps)
+	}
+}
diff --git a/storage/utility/bucket_test.go b/storage/utility/bucket_test.go
deleted file mode 100644
index 4378cd300cde5d6677177dba878615b6cfb8e7e4..0000000000000000000000000000000000000000
--- a/storage/utility/bucket_test.go
+++ /dev/null
@@ -1,130 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-// Copyright © 2020 xx network SEZC                                          //
-//                                                                           //
-// Use of this source code is governed by a license that can be found in the //
-// LICENSE file                                                              //
-///////////////////////////////////////////////////////////////////////////////
-
-package utility
-
-import (
-	"gitlab.com/elixxir/client/storage/versioned"
-	"gitlab.com/elixxir/ekv"
-	"gitlab.com/xx_network/primitives/rateLimiting"
-	"reflect"
-	"testing"
-)
-
-// NewBucketStore happy path.
-func TestNewBucketStore(t *testing.T) {
-	// Create initializers
-	params := &rateLimiting.BucketParams{
-		Capacity:   10,
-		Remaining:  11,
-		LeakRate:   12,
-		LastUpdate: 13,
-	}
-	kv := versioned.NewKV(make(ekv.Memstore))
-
-	// Initialize bucket
-	bs, err := NewBucketStore(params, kv)
-	if err != nil {
-		t.Fatalf("Error received creating BucketStore: %v", err)
-	}
-
-	// Load new bucket from storage
-	vo, err := bs.kv.Get(bucketStoreKey, bucketStoreVersion)
-	if err != nil {
-		t.Fatalf("Failed to get bucket from EKV: %v", err)
-	}
-
-	// Unmarshal stored data into separate bucket
-	receivedBs := rateLimiting.CreateBucketFromParams(params, nil)
-	err = receivedBs.UnmarshalJSON(vo.Data)
-	if err != nil {
-		t.Fatalf("UnmarshalJSON error: %v", err)
-	}
-
-	// Ensure bucket in RAM and bucket in storage are consistent
-	if !reflect.DeepEqual(receivedBs, bs.bucket) {
-		t.Fatalf("Loaded bucket and created bucket did not match."+
-			"\n\tExpected: %v"+
-			"\n\tReceived: %v ", bs.bucket, receivedBs)
-	}
-
-}
-
-// BucketStore.AddWithExternalParams happy path.
-func TestBucketStore_AddWithExternalParams(t *testing.T) {
-	// Create initializers
-	params := &rateLimiting.BucketParams{
-		Capacity:   10,
-		Remaining:  11,
-		LeakRate:   12,
-		LastUpdate: 13,
-	}
-	kv := versioned.NewKV(make(ekv.Memstore))
-
-	// Create bucket
-	bs, err := NewBucketStore(params, kv)
-	if err != nil {
-		t.Fatalf("Error received creating BucketStore: %v", err)
-	}
-
-	// Modify internal state of bucket
-	err = bs.AddWithExternalParams(10, 11, 12)
-	if err != nil {
-		t.Fatalf("AddWithExternalParams error: %v", err)
-	}
-
-	// Load stored bucket
-	vo, err := bs.kv.Get(bucketStoreKey, bucketStoreVersion)
-	if err != nil {
-		t.Fatalf("Failed to get bucket from EKV: %v", err)
-	}
-
-	// Unmarshal stored data into separate bucket
-	receivedBs := rateLimiting.CreateBucketFromParams(params, nil)
-	err = receivedBs.UnmarshalJSON(vo.Data)
-	if err != nil {
-		t.Fatalf("UnmarshalJSON error: %v", err)
-	}
-
-	// Ensure bucket in RAM and bucket in storage are consistent
-	if !reflect.DeepEqual(receivedBs, bs.bucket) {
-		t.Fatalf("Loaded bucket and created bucket did not match."+
-			"\n\tExpected: %v"+
-			"\n\tReceived: %v ", bs.bucket, receivedBs)
-	}
-
-}
-
-// LoadBucketStore happy path.
-func TestLoadBucketStore(t *testing.T) {
-	// Create initializers
-	params := &rateLimiting.BucketParams{
-		Capacity:   10,
-		Remaining:  11,
-		LeakRate:   12,
-		LastUpdate: 13,
-	}
-	kv := versioned.NewKV(make(ekv.Memstore))
-
-	// Create bucket
-	bs, err := NewBucketStore(params, kv)
-	if err != nil {
-		t.Fatalf("Error received creating BucketStore: %v", err)
-	}
-
-	receivedBs, err := LoadBucketStore(params, kv)
-	if err != nil {
-		t.Fatalf("LoadBucketStore error: %v", err)
-	}
-
-	// Ensure bucket in RAM and bucket in storage are consistent
-	if !reflect.DeepEqual(receivedBs, bs) {
-		t.Fatalf("Loaded bucket store and created bucket did not match."+
-			"\n\tExpected: %v"+
-			"\n\tReceived: %v ", bs, receivedBs)
-	}
-}