diff --git a/Sources/XXClient/Models/Contact.swift b/Sources/XXClient/Models/Contact.swift
index e61a18f8c6a5826e5619c65571cbbbb4d1fcb817..03e08f2a517d98571ee0ad9efc497c9ce930460d 100644
--- a/Sources/XXClient/Models/Contact.swift
+++ b/Sources/XXClient/Models/Contact.swift
@@ -1,29 +1,40 @@
 import Foundation
-import XCTestDynamicOverlay
 
 public struct Contact {
   public init(
     data: Data,
-    getId: @escaping () throws -> Data,
-    getPublicKey: @escaping () throws -> Data,
-    getFacts: @escaping () throws -> [Fact],
-    setFacts: @escaping (Data, [Fact]) throws -> Data
+    getIdFromContact: GetIdFromContact,
+    getPublicKeyFromContact: GetPublicKeyFromContact,
+    getFactsFromContact: GetFactsFromContact,
+    setFactsOnContact: SetFactsOnContact
   ) {
     self.data = data
-    self.getId = getId
-    self.getPublicKey = getPublicKey
-    self.getFacts = getFacts
-    self._setFacts = setFacts
+    self.getIdFromContact = getIdFromContact
+    self.getPublicKeyFromContact = getPublicKeyFromContact
+    self.getFactsFromContact = getFactsFromContact
+    self.setFactsOnContact = setFactsOnContact
   }
 
   public var data: Data
-  public var getId: () throws -> Data
-  public var getPublicKey: () throws -> Data
-  public var getFacts: () throws -> [Fact]
-  public var _setFacts: (Data, [Fact]) throws -> Data
+  public var getIdFromContact: GetIdFromContact
+  public var getPublicKeyFromContact: GetPublicKeyFromContact
+  public var getFactsFromContact: GetFactsFromContact
+  public var setFactsOnContact: SetFactsOnContact
+
+  public func getId() throws -> Data {
+    try getIdFromContact(data)
+  }
+
+  public func getPublicKey() throws -> Data {
+    try getPublicKeyFromContact(data)
+  }
+
+  public func getFacts() throws -> [Fact] {
+    try getFactsFromContact(data)
+  }
 
   public mutating func setFacts(_ facts: [Fact]) throws {
-    data = try _setFacts(data, facts)
+    data = try setFactsOnContact(contactData: data, facts: facts)
   }
 }
 
@@ -43,10 +54,10 @@ extension Contact {
   ) -> Contact {
     Contact(
       data: data,
-      getId: { try getIdFromContact(data) },
-      getPublicKey: { try getPublicKeyFromContact(data) },
-      getFacts: { try getFactsFromContact(data) },
-      setFacts: { try setFactsOnContact(contactData: $0, facts: $1) }
+      getIdFromContact: getIdFromContact,
+      getPublicKeyFromContact: getPublicKeyFromContact,
+      getFactsFromContact: getFactsFromContact,
+      setFactsOnContact: setFactsOnContact
     )
   }
 }
@@ -55,10 +66,10 @@ extension Contact {
   public static func unimplemented(_ data: Data) -> Contact {
     Contact(
       data: data,
-      getId: XCTUnimplemented("\(Self.self).getId"),
-      getPublicKey: XCTUnimplemented("\(Self.self).getPublicKey"),
-      getFacts: XCTUnimplemented("\(Self.self).getFacts"),
-      setFacts: XCTUnimplemented("\(Self.self).updateFacts")
+      getIdFromContact: .unimplemented,
+      getPublicKeyFromContact: .unimplemented,
+      getFactsFromContact: .unimplemented,
+      setFactsOnContact: .unimplemented
     )
   }
 }