diff --git a/indexedDb/channels/implementation.go b/indexedDb/channels/implementation.go
index 919ccaebf372295b978cd21bbb36a438dde636dd..eac2b5cd4d42e1bf8d1050b296adee794d021de9 100644
--- a/indexedDb/channels/implementation.go
+++ b/indexedDb/channels/implementation.go
@@ -167,9 +167,9 @@ func (w *wasmModel) deleteMsgByChannel(channelID *id.ID) error {
 // user of the API to filter such called by message ID.
 func (w *wasmModel) ReceiveMessage(channelID *id.ID,
 	messageID cryptoChannel.MessageID, nickname, text string,
-	pubKey ed25519.PublicKey, codeset uint8,
-	timestamp time.Time, lease time.Duration, round rounds.Round,
-	mType channels.MessageType, status channels.SentStatus, hidden bool) uint64 {
+	pubKey ed25519.PublicKey, codeset uint8, timestamp time.Time,
+	lease time.Duration, round rounds.Round, mType channels.MessageType,
+	status channels.SentStatus, hidden bool) uint64 {
 	textBytes := []byte(text)
 	var err error
 
@@ -183,9 +183,9 @@ func (w *wasmModel) ReceiveMessage(channelID *id.ID,
 	}
 
 	msgToInsert := buildMessage(
-		channelID.Marshal(), messageID.Bytes(), nil, nickname,
-		textBytes, pubKey, codeset, timestamp, lease, round.ID, mType,
-		false, hidden, status)
+		channelID.Marshal(), messageID.Bytes(), nil, nickname, textBytes,
+		pubKey, codeset, timestamp, lease, round.ID, mType, false, hidden,
+		status)
 
 	uuid, err := w.receiveHelper(msgToInsert, false)
 	if err != nil {
@@ -219,9 +219,10 @@ func (w *wasmModel) ReceiveReply(channelID *id.ID,
 		}
 	}
 
-	msgToInsert := buildMessage(channelID.Marshal(), messageID.Bytes(),
-		replyTo.Bytes(), nickname, textBytes, pubKey, codeset, timestamp, lease,
-		round.ID, mType, false, hidden, status)
+	msgToInsert := buildMessage(
+		channelID.Marshal(), messageID.Bytes(), replyTo.Bytes(), nickname,
+		textBytes, pubKey, codeset, timestamp, lease, round.ID, mType, false,
+		hidden, status)
 
 	uuid, err := w.receiveHelper(msgToInsert, false)
 
diff --git a/indexedDb/channels/implementation_test.go b/indexedDb/channels/implementation_test.go
index 1760cf31c4733013d385e388e1a99864dfdd9840..f51b226fe8073b4b05f7c93b874b635d4680e73b 100644
--- a/indexedDb/channels/implementation_test.go
+++ b/indexedDb/channels/implementation_test.go
@@ -36,6 +36,32 @@ func TestMain(m *testing.M) {
 
 func dummyCallback(uint64, *id.ID, bool) {}
 
+// Happy path, insert message and look it up
+func TestWasmModel_msgIDLookup(t *testing.T) {
+	testString := "test"
+	testMsgId := channel.MakeMessageID([]byte(testString), &id.ID{1})
+	eventModel, err := newWASMModel(testString, nil, dummyCallback)
+	if err != nil {
+		t.Fatalf("%+v", err)
+	}
+
+	testMsg := buildMessage([]byte(testString), testMsgId.Bytes(), nil,
+		testString, []byte(testString), []byte{8, 6, 7, 5}, 0, netTime.Now(),
+		time.Second, 0, 0, channels.Sent)
+	_, err = eventModel.receiveHelper(testMsg, false)
+	if err != nil {
+		t.Fatalf("%+v", err)
+	}
+
+	uuid, err := eventModel.msgIDLookup(testMsgId)
+	if err != nil {
+		t.Fatalf("%+v", err)
+	}
+	if uuid == 0 {
+		t.Fatalf("Expected to get a UUID!")
+	}
+}
+
 // Test wasmModel.UpdateSentStatus happy path and ensure fields don't change.
 func Test_wasmModel_UpdateSentStatus(t *testing.T) {
 	testString := "test"
diff --git a/indexedDb/channels/init.go b/indexedDb/channels/init.go
index 0b52434ff260ee3df42c8b0f201527f08377205b..12d6bb8840f3d75c8778b871ac883a84ad008ada 100644
--- a/indexedDb/channels/init.go
+++ b/indexedDb/channels/init.go
@@ -211,7 +211,7 @@ func (w *wasmModel) hackTestDb() error {
 	if err != nil {
 		return err
 	}
-	if len(result) == 0 {
+	if result.IsUndefined() {
 		return errors.Errorf("Failed to test db, record not present")
 	}
 	return nil
diff --git a/indexedDb/utils.go b/indexedDb/utils.go
index 7d7e7e6b394eb492ea09519f5939f4fd5c79ca59..e11c8e10a75e8187f55d4a2e13c7a9a4c765db5e 100644
--- a/indexedDb/utils.go
+++ b/indexedDb/utils.go
@@ -32,25 +32,25 @@ func NewContext() (context.Context, context.CancelFunc) {
 }
 
 // Get is a generic helper for getting values from the given [idb.ObjectStore].
-func Get(db *idb.Database, objectStoreName string, key js.Value) (string, error) {
+func Get(db *idb.Database, objectStoreName string, key js.Value) (js.Value, error) {
 	parentErr := errors.Errorf("failed to Get %s/%s", objectStoreName, key)
 
 	// Prepare the Transaction
 	txn, err := db.Transaction(idb.TransactionReadOnly, objectStoreName)
 	if err != nil {
-		return "", errors.WithMessagef(parentErr,
+		return js.Undefined(), errors.WithMessagef(parentErr,
 			"Unable to create Transaction: %+v", err)
 	}
 	store, err := txn.ObjectStore(objectStoreName)
 	if err != nil {
-		return "", errors.WithMessagef(parentErr,
+		return js.Undefined(), errors.WithMessagef(parentErr,
 			"Unable to get ObjectStore: %+v", err)
 	}
 
 	// Perform the operation
 	getRequest, err := store.Get(key)
 	if err != nil {
-		return "", errors.WithMessagef(parentErr,
+		return js.Undefined(), errors.WithMessagef(parentErr,
 			"Unable to Get from ObjectStore: %+v", err)
 	}
 
@@ -59,14 +59,14 @@ func Get(db *idb.Database, objectStoreName string, key js.Value) (string, error)
 	resultObj, err := getRequest.Await(ctx)
 	cancel()
 	if err != nil {
-		return "", errors.WithMessagef(parentErr,
+		return js.Undefined(), errors.WithMessagef(parentErr,
 			"Unable to get from ObjectStore: %+v", err)
 	}
 
 	// Process result into string
-	resultStr := utils.JsToJson(resultObj)
-	jww.DEBUG.Printf("Got from %s/%s: %s", objectStoreName, key, resultStr)
-	return resultStr, nil
+	jww.DEBUG.Printf("Got from %s/%s: %s",
+		objectStoreName, key, utils.JsToJson(resultObj))
+	return resultObj, nil
 }
 
 // GetIndex is a generic helper for getting values from the given
@@ -79,24 +79,24 @@ func GetIndex(db *idb.Database, objectStoreName string,
 	// Prepare the Transaction
 	txn, err := db.Transaction(idb.TransactionReadOnly, objectStoreName)
 	if err != nil {
-		return js.Value{}, errors.WithMessagef(parentErr,
+		return js.Undefined(), errors.WithMessagef(parentErr,
 			"Unable to create Transaction: %+v", err)
 	}
 	store, err := txn.ObjectStore(objectStoreName)
 	if err != nil {
-		return js.Value{}, errors.WithMessagef(parentErr,
+		return js.Undefined(), errors.WithMessagef(parentErr,
 			"Unable to get ObjectStore: %+v", err)
 	}
 	idx, err := store.Index(indexName)
 	if err != nil {
-		return js.Value{}, errors.WithMessagef(parentErr,
+		return js.Undefined(), errors.WithMessagef(parentErr,
 			"Unable to get Index: %+v", err)
 	}
 
 	// Perform the operation
 	getRequest, err := idx.Get(key)
 	if err != nil {
-		return js.Value{}, errors.WithMessagef(parentErr,
+		return js.Undefined(), errors.WithMessagef(parentErr,
 			"Unable to Get from ObjectStore: %+v", err)
 	}
 
@@ -105,14 +105,13 @@ func GetIndex(db *idb.Database, objectStoreName string,
 	resultObj, err := getRequest.Await(ctx)
 	cancel()
 	if err != nil {
-		return js.Value{}, errors.WithMessagef(parentErr,
+		return js.Undefined(), errors.WithMessagef(parentErr,
 			"Unable to get from ObjectStore: %+v", err)
 	}
 
 	// Process result into string
-	resultStr := utils.JsToJson(resultObj)
 	jww.DEBUG.Printf("Got from %s/%s/%s: %s",
-		objectStoreName, indexName, key, resultStr)
+		objectStoreName, indexName, key, utils.JsToJson(resultObj))
 	return resultObj, nil
 }
 
@@ -143,7 +142,7 @@ func Put(db *idb.Database, objectStoreName string, value js.Value) (*idb.Request
 		return nil, errors.Errorf("Putting value failed: %+v", err)
 	}
 	jww.DEBUG.Printf("Successfully put value in %s: %v",
-		objectStoreName, value.String())
+		objectStoreName, utils.JsToJson(value))
 	return request, nil
 }
 
diff --git a/storage/version.go b/storage/version.go
index 61bc23937a227f407b059b08362938c62222d558..b560dc0f7baeca598c77d33e23c32aebbdd47941 100644
--- a/storage/version.go
+++ b/storage/version.go
@@ -18,7 +18,7 @@ import (
 )
 
 // SEMVER is the current semantic version of xxDK WASM.
-const SEMVER = "0.1.8"
+const SEMVER = "0.1.9"
 
 // Storage keys.
 const (