diff --git a/ud/lookup.go b/ud/lookup.go
index 6f23a8ccd91ac4eb7c76f1c3a71787717695e0b3..d87d68218cdf1e9b15560b413d4011d0efd96bcb 100644
--- a/ud/lookup.go
+++ b/ud/lookup.go
@@ -22,12 +22,17 @@ type lookupCallback func(contact.Contact, error)
 
 // Lookup returns the public key of the passed ID as known by the user discovery
 // system or returns by the timeout.
-func Lookup(net udCmix,
-	rng csprng.Source, grp *cyclic.Group,
+func Lookup(messenger udE2e,
 	udContact contact.Contact, callback lookupCallback,
 	uid *id.ID, p single.RequestParams) ([]id.Round,
 	receptionID.EphemeralIdentity, error) {
 
+	// Extract information from messenger
+	net := messenger.GetCmix()
+	grp := messenger.GetE2E().GetGroup()
+	rng := messenger.GetRng().GetStream()
+	defer rng.Close()
+
 	jww.INFO.Printf("ud.Lookup(%s, %s)", uid, p.Timeout)
 	return lookup(net, rng, uid, grp, udContact, callback, p)
 }
diff --git a/ud/search.go b/ud/search.go
index 473ba7a7fabfb754669726c92063fda1cec52658..e04acde7cda71782e95394faa1bb6018eccbe0b5 100644
--- a/ud/search.go
+++ b/ud/search.go
@@ -13,7 +13,6 @@ import (
 	"gitlab.com/elixxir/crypto/cyclic"
 	"gitlab.com/elixxir/crypto/factID"
 	"gitlab.com/elixxir/primitives/fact"
-	"gitlab.com/xx_network/crypto/csprng"
 	"gitlab.com/xx_network/primitives/id"
 )
 
@@ -28,8 +27,7 @@ type searchCallback func([]contact.Contact, error)
 // used to search for multiple users at once; that can have a privacy reduction.
 // Instead, it is intended to be used to search for a user where multiple pieces
 // of information is known.
-func Search(net udCmix, events event.Reporter,
-	rng csprng.Source, grp *cyclic.Group,
+func Search(messenger udE2e,
 	udContact contact.Contact, callback searchCallback,
 	list fact.FactList,
 	params single.RequestParams) ([]id.Round,
@@ -46,6 +44,14 @@ func Search(net udCmix, events event.Reporter,
 			errors.WithMessage(err, "Failed to form outgoing search request.")
 	}
 
+	// Extract information from messenger
+	net := messenger.GetCmix()
+	events := messenger.GetEventReporter()
+	grp := messenger.GetE2E().GetGroup()
+	rng := messenger.GetRng().GetStream()
+	defer rng.Close()
+
+	// Build response handler
 	response := searchResponse{
 		cb:       callback,
 		services: net,
@@ -54,6 +60,7 @@ func Search(net udCmix, events event.Reporter,
 		factMap:  factMap,
 	}
 
+	// Send message
 	rndId, ephId, err := single.TransmitRequest(udContact, SearchTag,
 		requestMarshaled,
 		response, params, net, rng, grp)