diff --git a/ud/manager.go b/ud/manager.go
new file mode 100644
index 0000000000000000000000000000000000000000..3dcb624cad2c3f871c25b07b84a4d16f25aeac16
--- /dev/null
+++ b/ud/manager.go
@@ -0,0 +1,13 @@
+package ud
+
+import (
+	"gitlab.com/elixxir/comms/client"
+	"gitlab.com/xx_network/comms/connect"
+)
+
+type Manager struct{
+	comms *client.Comms
+	host *connect.Host
+	privKey *
+}
+
diff --git a/ud/remove.go b/ud/remove.go
new file mode 100644
index 0000000000000000000000000000000000000000..88e609b193c3aee54d19ac8b27424cd598524bae
--- /dev/null
+++ b/ud/remove.go
@@ -0,0 +1,35 @@
+package ud
+
+import (
+	"gitlab.com/elixxir/client/interfaces/contact"
+	"gitlab.com/elixxir/comms/client"
+	"gitlab.com/xx_network/comms/connect"
+	"gitlab.com/xx_network/comms/messages"
+	"gitlab.com/xx_network/crypto/signature/rsa"
+)
+
+
+type removeFactComms interface{
+	SendDeleteMessage(host *connect.Host, message *messages.AuthenticatedMessage)
+}
+
+func (m *Manager)RemoveFact(fact contact.Fact)error{
+	return m.removeFact(fact,m.comms)
+}
+
+func (m *Manager)removeFact(fact contact.Fact, SendDeleteMessage removeFactComms)error {
+	//digest the fact
+	fact.Stringify()
+	//sign the fact
+	rsa.Sign()
+
+	//constuct the message
+
+
+	//send the message
+
+	//return the error
+
+
+
+}