diff --git a/Docs/XXMessengerClient.md b/Docs/XXMessengerClient.md
index 2dc192467d54a9bac7a862cf4a19ffbad9fb4f0d..fd9ac7eef329ea33485bea1b18029150665f021a 100644
--- a/Docs/XXMessengerClient.md
+++ b/Docs/XXMessengerClient.md
@@ -8,7 +8,7 @@ Example:
 
 ```swift
 // setup environment:
-var environment: MessengerEnvironment = .live()
+var environment: Environment = .live()
 
 // change cMix NDF environment if needed:
 environment.ndfEnvironment = ...
@@ -60,4 +60,4 @@ func start(messenger: Messenger) throws {
     }
   }
 }
-```
\ No newline at end of file
+```
diff --git a/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift b/Sources/XXMessengerClient/Environment.swift
similarity index 83%
rename from Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift
rename to Sources/XXMessengerClient/Environment.swift
index 0918142a1f92dd6bbc5392bb562113464f349b20..58b18db91b05832f6855883083e091c339a36f9e 100644
--- a/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift
+++ b/Sources/XXMessengerClient/Environment.swift
@@ -2,11 +2,11 @@ import Foundation
 import XXClient
 import XCTestDynamicOverlay
 
-public struct MessengerEnvironment {
+public struct Environment {
   public var cMix: Stored<CMix?>
+  public var directoryManager: DirectoryManager
   public var downloadNDF: DownloadAndVerifySignedNdf
   public var e2e: Stored<E2E?>
-  public var fileManager: MessengerFileManager
   public var generateSecret: GenerateSecret
   public var getCMixParams: GetCMixParams
   public var getE2EParams: GetE2EParams
@@ -25,19 +25,19 @@ public struct MessengerEnvironment {
   public var udContact: Data?
 }
 
-extension MessengerEnvironment {
+extension Environment {
   public static let defaultStorageDir = FileManager.default
     .urls(for: .applicationSupportDirectory, in: .userDomainMask)
     .first!
     .appendingPathComponent("xx.network.client")
     .path
 
-  public static func live() -> MessengerEnvironment {
-    MessengerEnvironment(
+  public static func live() -> Environment {
+    Environment(
       cMix: .inMemory(),
+      directoryManager: .live(),
       downloadNDF: .live,
       e2e: .inMemory(),
-      fileManager: .live(),
       generateSecret: .live,
       getCMixParams: .liveDefault,
       getE2EParams: .liveDefault,
@@ -49,7 +49,7 @@ extension MessengerEnvironment {
       newOrLoadUd: .live,
       passwordStorage: .keychain,
       sleep: { Foundation.sleep(UInt32($0)) },
-      storageDir: MessengerEnvironment.defaultStorageDir,
+      storageDir: Environment.defaultStorageDir,
       ud: .inMemory(),
       udAddress: nil,
       udCert: nil,
@@ -58,12 +58,12 @@ extension MessengerEnvironment {
   }
 }
 
-extension MessengerEnvironment {
-  public static let unimplemented = MessengerEnvironment(
+extension Environment {
+  public static let unimplemented = Environment(
     cMix: .unimplemented(),
+    directoryManager: .unimplemented,
     downloadNDF: .unimplemented,
     e2e: .unimplemented(),
-    fileManager: .unimplemented,
     generateSecret: .unimplemented,
     getCMixParams: .unimplemented,
     getE2EParams: .unimplemented,
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift b/Sources/XXMessengerClient/Functors/Connect.swift
similarity index 67%
rename from Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift
rename to Sources/XXMessengerClient/Functors/Connect.swift
index 8cebb73a648773e63137a86a4481142fe2f5b173..47d649fe9e5f877e6c2d0c8e259c2cf545bda6de 100644
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift
+++ b/Sources/XXMessengerClient/Functors/Connect.swift
@@ -1,7 +1,7 @@
 import XXClient
 import XCTestDynamicOverlay
 
-public struct MessengerConnect {
+public struct Connect {
   public enum Error: Swift.Error, Equatable {
     case notLoaded
   }
@@ -13,9 +13,9 @@ public struct MessengerConnect {
   }
 }
 
-extension MessengerConnect {
-  public static func live(_ env: MessengerEnvironment) -> MessengerConnect {
-    MessengerConnect {
+extension Connect {
+  public static func live(_ env: Environment) -> Connect {
+    Connect {
       guard let cMix = env.cMix() else {
         throw Error.notLoaded
       }
@@ -28,8 +28,8 @@ extension MessengerConnect {
   }
 }
 
-extension MessengerConnect {
-  public static let unimplemented = MessengerConnect(
+extension Connect {
+  public static let unimplemented = Connect(
     run: XCTUnimplemented()
   )
 }
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerCreate.swift b/Sources/XXMessengerClient/Functors/Create.swift
similarity index 61%
rename from Sources/XXMessengerClient/Messenger/Functors/MessengerCreate.swift
rename to Sources/XXMessengerClient/Functors/Create.swift
index b36b55b447956d139f227887a154bec71d109312..275722c72371002d7c793dbb204edd394b20bca7 100644
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerCreate.swift
+++ b/Sources/XXMessengerClient/Functors/Create.swift
@@ -1,7 +1,7 @@
 import XXClient
 import XCTestDynamicOverlay
 
-public struct MessengerCreate {
+public struct Create {
   public var run: () throws -> Void
 
   public func callAsFunction() throws {
@@ -9,15 +9,15 @@ public struct MessengerCreate {
   }
 }
 
-extension MessengerCreate {
-  public static func live(_ env: MessengerEnvironment) -> MessengerCreate {
-    MessengerCreate {
+extension Create {
+  public static func live(_ env: Environment) -> Create {
+    Create {
       let ndfData = try env.downloadNDF(env.ndfEnvironment)
       let password = env.generateSecret()
       try env.passwordStorage.save(password)
       let storageDir = env.storageDir
-      try env.fileManager.removeDirectory(storageDir)
-      try env.fileManager.createDirectory(storageDir)
+      try env.directoryManager.remove(storageDir)
+      try env.directoryManager.create(storageDir)
       try env.newCMix(
         ndfJSON: String(data: ndfData, encoding: .utf8)!,
         storageDir: storageDir,
@@ -28,8 +28,8 @@ extension MessengerCreate {
   }
 }
 
-extension MessengerCreate {
-  public static let unimplemented = MessengerCreate(
+extension Create {
+  public static let unimplemented = Create(
     run: XCTUnimplemented()
   )
 }
diff --git a/Sources/XXMessengerClient/Functors/IsConnected.swift b/Sources/XXMessengerClient/Functors/IsConnected.swift
new file mode 100644
index 0000000000000000000000000000000000000000..923d29df78c1228724a67261fa82d85d36a68688
--- /dev/null
+++ b/Sources/XXMessengerClient/Functors/IsConnected.swift
@@ -0,0 +1,25 @@
+import XXClient
+import XCTestDynamicOverlay
+
+public struct IsConnected {
+  public var run: () -> Bool
+
+  public func callAsFunction() -> Bool {
+    run()
+  }
+}
+
+extension IsConnected {
+  public static func live(_ env: Environment) -> IsConnected {
+    IsConnected {
+      env.e2e() != nil
+    }
+  }
+}
+
+extension IsConnected {
+  public static let unimplemented = IsConnected(
+    run: XCTUnimplemented()
+  )
+}
+
diff --git a/Sources/XXMessengerClient/Functors/IsCreated.swift b/Sources/XXMessengerClient/Functors/IsCreated.swift
new file mode 100644
index 0000000000000000000000000000000000000000..c9f55cffa30a5160f1f01b4d6931a934aeabd741
--- /dev/null
+++ b/Sources/XXMessengerClient/Functors/IsCreated.swift
@@ -0,0 +1,24 @@
+import XXClient
+import XCTestDynamicOverlay
+
+public struct IsCreated {
+  public var run: () -> Bool
+
+  public func callAsFunction() -> Bool {
+    run()
+  }
+}
+
+extension IsCreated {
+  public static func live(_ env: Environment) -> IsCreated {
+    IsCreated {
+      env.directoryManager.isEmpty(env.storageDir) == false
+    }
+  }
+}
+
+extension IsCreated {
+  public static let unimplemented = IsCreated(
+    run: XCTUnimplemented()
+  )
+}
diff --git a/Sources/XXMessengerClient/Functors/IsLoaded.swift b/Sources/XXMessengerClient/Functors/IsLoaded.swift
new file mode 100644
index 0000000000000000000000000000000000000000..e3365cc35b2dd7f07ec721da24c447cf2e5975a1
--- /dev/null
+++ b/Sources/XXMessengerClient/Functors/IsLoaded.swift
@@ -0,0 +1,24 @@
+import XXClient
+import XCTestDynamicOverlay
+
+public struct IsLoaded {
+  public var run: () -> Bool
+
+  public func callAsFunction() -> Bool {
+    run()
+  }
+}
+
+extension IsLoaded {
+  public static func live(_ env: Environment) -> IsLoaded {
+    IsLoaded {
+      env.cMix() != nil
+    }
+  }
+}
+
+extension IsLoaded {
+  public static let unimplemented = IsLoaded(
+    run: XCTUnimplemented()
+  )
+}
diff --git a/Sources/XXMessengerClient/Functors/IsLoggedIn.swift b/Sources/XXMessengerClient/Functors/IsLoggedIn.swift
new file mode 100644
index 0000000000000000000000000000000000000000..bcf0dfdf3e5626e394f96808732ea4a82dfda6e9
--- /dev/null
+++ b/Sources/XXMessengerClient/Functors/IsLoggedIn.swift
@@ -0,0 +1,24 @@
+import XXClient
+import XCTestDynamicOverlay
+
+public struct IsLoggedIn {
+  public var run: () -> Bool
+
+  public func callAsFunction() -> Bool {
+    run()
+  }
+}
+
+extension IsLoggedIn {
+  public static func live(_ env: Environment) -> IsLoggedIn {
+    IsLoggedIn {
+      env.ud() != nil
+    }
+  }
+}
+
+extension IsLoggedIn {
+  public static let unimplemented = IsLoggedIn(
+    run: XCTUnimplemented()
+  )
+}
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsRegistered.swift b/Sources/XXMessengerClient/Functors/IsRegistered.swift
similarity index 59%
rename from Sources/XXMessengerClient/Messenger/Functors/MessengerIsRegistered.swift
rename to Sources/XXMessengerClient/Functors/IsRegistered.swift
index bf3cafa541fa67847f749325419c683e9edd34c6..4ccc2ce7db4cf7386845235dc5ab7928f3d0857d 100644
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsRegistered.swift
+++ b/Sources/XXMessengerClient/Functors/IsRegistered.swift
@@ -1,7 +1,7 @@
 import XXClient
 import XCTestDynamicOverlay
 
-public struct MessengerIsRegistered {
+public struct IsRegistered {
   public enum Error: Swift.Error, Equatable {
     case notConnected
   }
@@ -13,9 +13,9 @@ public struct MessengerIsRegistered {
   }
 }
 
-extension MessengerIsRegistered {
-  public static func live(_ env: MessengerEnvironment) -> MessengerIsRegistered {
-    MessengerIsRegistered {
+extension IsRegistered {
+  public static func live(_ env: Environment) -> IsRegistered {
+    IsRegistered {
       guard let e2e = env.e2e() else {
         throw Error.notConnected
       }
@@ -24,8 +24,8 @@ extension MessengerIsRegistered {
   }
 }
 
-extension MessengerIsRegistered {
-  public static let unimplemented = MessengerIsRegistered(
+extension IsRegistered {
+  public static let unimplemented = IsRegistered(
     run: XCTUnimplemented()
   )
 }
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerLoad.swift b/Sources/XXMessengerClient/Functors/Load.swift
similarity index 61%
rename from Sources/XXMessengerClient/Messenger/Functors/MessengerLoad.swift
rename to Sources/XXMessengerClient/Functors/Load.swift
index 29f281688d0cb6e4611cbf50a5ee2f7844df07f1..03010a22603644d4e15c8b2f666d668f87ff0452 100644
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerLoad.swift
+++ b/Sources/XXMessengerClient/Functors/Load.swift
@@ -1,7 +1,7 @@
 import XXClient
 import XCTestDynamicOverlay
 
-public struct MessengerLoad {
+public struct Load {
   public var run: () throws -> Void
 
   public func callAsFunction() throws {
@@ -9,9 +9,9 @@ public struct MessengerLoad {
   }
 }
 
-extension MessengerLoad {
-  public static func live(_ env: MessengerEnvironment) -> MessengerLoad {
-    MessengerLoad {
+extension Load {
+  public static func live(_ env: Environment) -> Load {
+    Load {
       env.cMix.set(try env.loadCMix(
         storageDir: env.storageDir,
         password: try env.passwordStorage.load(),
@@ -21,8 +21,8 @@ extension MessengerLoad {
   }
 }
 
-extension MessengerLoad {
-  public static let unimplemented = MessengerLoad(
+extension Load {
+  public static let unimplemented = Load(
     run: XCTUnimplemented()
   )
 }
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerLogIn.swift b/Sources/XXMessengerClient/Functors/LogIn.swift
similarity index 79%
rename from Sources/XXMessengerClient/Messenger/Functors/MessengerLogIn.swift
rename to Sources/XXMessengerClient/Functors/LogIn.swift
index d0f86d8bcfa8ea7f7c0251d573a5dc591b59ddc0..db2c34f95dd97ecd696db4de017473d539e34007 100644
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerLogIn.swift
+++ b/Sources/XXMessengerClient/Functors/LogIn.swift
@@ -1,7 +1,7 @@
 import XXClient
 import XCTestDynamicOverlay
 
-public struct MessengerLogIn {
+public struct LogIn {
   public enum Error: Swift.Error, Equatable {
     case notLoaded
     case notConnected
@@ -14,9 +14,9 @@ public struct MessengerLogIn {
   }
 }
 
-extension MessengerLogIn {
-  public static func live(_ env: MessengerEnvironment) -> MessengerLogIn {
-    MessengerLogIn {
+extension LogIn {
+  public static func live(_ env: Environment) -> LogIn {
+    LogIn {
       guard let cMix = env.cMix() else {
         throw Error.notLoaded
       }
@@ -40,8 +40,8 @@ extension MessengerLogIn {
   }
 }
 
-extension MessengerLogIn {
-  public static let unimplemented = MessengerLogIn(
+extension LogIn {
+  public static let unimplemented = LogIn(
     run: XCTUnimplemented()
   )
 }
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerRegister.swift b/Sources/XXMessengerClient/Functors/Register.swift
similarity index 78%
rename from Sources/XXMessengerClient/Messenger/Functors/MessengerRegister.swift
rename to Sources/XXMessengerClient/Functors/Register.swift
index 6f4296318c4eccf771ccb505cb584db458b74f8b..3608ea93829609d6ff1a4a301925de9100317811 100644
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerRegister.swift
+++ b/Sources/XXMessengerClient/Functors/Register.swift
@@ -1,7 +1,7 @@
 import XXClient
 import XCTestDynamicOverlay
 
-public struct MessengerRegister {
+public struct Register {
   public enum Error: Swift.Error, Equatable {
     case notLoaded
     case notConnected
@@ -16,9 +16,9 @@ public struct MessengerRegister {
   }
 }
 
-extension MessengerRegister {
-  public static func live(_ env: MessengerEnvironment) -> MessengerRegister {
-    MessengerRegister { username in
+extension Register {
+  public static func live(_ env: Environment) -> Register {
+    Register { username in
       guard let cMix = env.cMix() else {
         throw Error.notLoaded
       }
@@ -42,8 +42,8 @@ extension MessengerRegister {
   }
 }
 
-extension MessengerRegister {
-  public static let unimplemented = MessengerRegister(
+extension Register {
+  public static let unimplemented = Register(
     run: XCTUnimplemented()
   )
 }
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerStart.swift b/Sources/XXMessengerClient/Functors/Start.swift
similarity index 68%
rename from Sources/XXMessengerClient/Messenger/Functors/MessengerStart.swift
rename to Sources/XXMessengerClient/Functors/Start.swift
index cc3363ec543ee2c3ed6c2414ac79d1ceaa0ccc33..77e32812e6fdf4d162054b80e1b419be502a6306 100644
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerStart.swift
+++ b/Sources/XXMessengerClient/Functors/Start.swift
@@ -1,7 +1,7 @@
 import XXClient
 import XCTestDynamicOverlay
 
-public struct MessengerStart {
+public struct Start {
   public enum Error: Swift.Error {
     case notLoaded
   }
@@ -15,9 +15,9 @@ public struct MessengerStart {
   }
 }
 
-extension MessengerStart {
-  public static func live(_ env: MessengerEnvironment) -> MessengerStart {
-    MessengerStart { timeoutMS in
+extension Start {
+  public static func live(_ env: Environment) -> Start {
+    Start { timeoutMS in
       guard let cMix = env.cMix() else {
         throw Error.notLoaded
       }
@@ -29,8 +29,8 @@ extension MessengerStart {
   }
 }
 
-extension MessengerStart {
-  public static let unimplemented = MessengerStart(
+extension Start {
+  public static let unimplemented = Start(
     run: XCTUnimplemented("\(Self.self)")
   )
 }
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNetwork.swift b/Sources/XXMessengerClient/Functors/WaitForNetwork.swift
similarity index 62%
rename from Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNetwork.swift
rename to Sources/XXMessengerClient/Functors/WaitForNetwork.swift
index 8fe8cf3e4750f1d3bff8a7191574a143639466c7..976e64233741c6aac98e0031cc47c7898a1eb572 100644
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNetwork.swift
+++ b/Sources/XXMessengerClient/Functors/WaitForNetwork.swift
@@ -1,7 +1,7 @@
 import XXClient
 import XCTestDynamicOverlay
 
-public struct MessengerWaitForNetwork {
+public struct WaitForNetwork {
   public enum Error: Swift.Error {
     case notLoaded
     case timeout
@@ -16,9 +16,9 @@ public struct MessengerWaitForNetwork {
   }
 }
 
-extension MessengerWaitForNetwork {
-  public static func live(_ env: MessengerEnvironment) -> MessengerWaitForNetwork {
-    MessengerWaitForNetwork { timeoutMS in
+extension WaitForNetwork {
+  public static func live(_ env: Environment) -> WaitForNetwork {
+    WaitForNetwork { timeoutMS in
       guard let cMix = env.cMix() else {
         throw Error.notLoaded
       }
@@ -29,8 +29,8 @@ extension MessengerWaitForNetwork {
   }
 }
 
-extension MessengerWaitForNetwork {
-  public static let unimplemented = MessengerWaitForNetwork(
+extension WaitForNetwork {
+  public static let unimplemented = WaitForNetwork(
     run: XCTUnimplemented("\(Self.self)")
   )
 }
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift b/Sources/XXMessengerClient/Functors/WaitForNodes.swift
similarity index 75%
rename from Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift
rename to Sources/XXMessengerClient/Functors/WaitForNodes.swift
index b87acc2f13caf51d2998d3a864a6484f897dc528..f08a29661db38acff406d8b3cba921deddfa9941 100644
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift
+++ b/Sources/XXMessengerClient/Functors/WaitForNodes.swift
@@ -1,7 +1,7 @@
 import XXClient
 import XCTestDynamicOverlay
 
-public struct MessengerWaitForNodes {
+public struct WaitForNodes {
   public typealias Progress = (NodeRegistrationReport) -> Void
 
   public enum Error: Swift.Error {
@@ -21,9 +21,9 @@ public struct MessengerWaitForNodes {
   }
 }
 
-extension MessengerWaitForNodes {
-  public static func live(_ env: MessengerEnvironment) -> MessengerWaitForNodes {
-    MessengerWaitForNodes { targetRatio, sleepMS, retries, onProgress in
+extension WaitForNodes {
+  public static func live(_ env: Environment) -> WaitForNodes {
+    WaitForNodes { targetRatio, sleepMS, retries, onProgress in
       guard let cMix = env.cMix() else {
         throw Error.notLoaded
       }
@@ -46,8 +46,8 @@ extension MessengerWaitForNodes {
   }
 }
 
-extension MessengerWaitForNodes {
-  public static let unimplemented = MessengerWaitForNodes(
+extension WaitForNodes {
+  public static let unimplemented = WaitForNodes(
     run: XCTUnimplemented("\(Self.self)")
   )
 }
diff --git a/Sources/XXMessengerClient/Messenger/Messenger.swift b/Sources/XXMessengerClient/Messenger.swift
similarity index 65%
rename from Sources/XXMessengerClient/Messenger/Messenger.swift
rename to Sources/XXMessengerClient/Messenger.swift
index 30d63efdfac2716a0d3efc7f0a614eafeaf2e852..b3ad9a58c9a1296b492333dfd78a7874b604af97 100644
--- a/Sources/XXMessengerClient/Messenger/Messenger.swift
+++ b/Sources/XXMessengerClient/Messenger.swift
@@ -4,23 +4,23 @@ public struct Messenger {
   public var cMix: Stored<CMix?>
   public var e2e: Stored<E2E?>
   public var ud: Stored<UserDiscovery?>
-  public var isCreated: MessengerIsCreated
-  public var create: MessengerCreate
-  public var isLoaded: MessengerIsLoaded
-  public var load: MessengerLoad
-  public var start: MessengerStart
-  public var isConnected: MessengerIsConnected
-  public var connect: MessengerConnect
-  public var isRegistered: MessengerIsRegistered
-  public var register: MessengerRegister
-  public var isLoggedIn: MessengerIsLoggedIn
-  public var logIn: MessengerLogIn
-  public var waitForNetwork: MessengerWaitForNetwork
-  public var waitForNodes: MessengerWaitForNodes
+  public var isCreated: IsCreated
+  public var create: Create
+  public var isLoaded: IsLoaded
+  public var load: Load
+  public var start: Start
+  public var isConnected: IsConnected
+  public var connect: Connect
+  public var isRegistered: IsRegistered
+  public var register: Register
+  public var isLoggedIn: IsLoggedIn
+  public var logIn: LogIn
+  public var waitForNetwork: WaitForNetwork
+  public var waitForNodes: WaitForNodes
 }
 
 extension Messenger {
-  public static func live(_ env: MessengerEnvironment) -> Messenger {
+  public static func live(_ env: Environment) -> Messenger {
     Messenger(
       cMix: env.cMix,
       e2e: env.e2e,
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsConnected.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsConnected.swift
deleted file mode 100644
index c30437faeb6b4cbc8b0a66df811bc55bd5618e28..0000000000000000000000000000000000000000
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsConnected.swift
+++ /dev/null
@@ -1,25 +0,0 @@
-import XXClient
-import XCTestDynamicOverlay
-
-public struct MessengerIsConnected {
-  public var run: () -> Bool
-
-  public func callAsFunction() -> Bool {
-    run()
-  }
-}
-
-extension MessengerIsConnected {
-  public static func live(_ env: MessengerEnvironment) -> MessengerIsConnected {
-    MessengerIsConnected {
-      env.e2e() != nil
-    }
-  }
-}
-
-extension MessengerIsConnected {
-  public static let unimplemented = MessengerIsConnected(
-    run: XCTUnimplemented()
-  )
-}
-
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsCreated.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsCreated.swift
deleted file mode 100644
index c848518c2483e49acbdbfe3d6d0b9e0c7fc2ce32..0000000000000000000000000000000000000000
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsCreated.swift
+++ /dev/null
@@ -1,24 +0,0 @@
-import XXClient
-import XCTestDynamicOverlay
-
-public struct MessengerIsCreated {
-  public var run: () -> Bool
-
-  public func callAsFunction() -> Bool {
-    run()
-  }
-}
-
-extension MessengerIsCreated {
-  public static func live(_ env: MessengerEnvironment) -> MessengerIsCreated {
-    MessengerIsCreated {
-      env.fileManager.isDirectoryEmpty(env.storageDir) == false
-    }
-  }
-}
-
-extension MessengerIsCreated {
-  public static let unimplemented = MessengerIsCreated(
-    run: XCTUnimplemented()
-  )
-}
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsLoaded.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsLoaded.swift
deleted file mode 100644
index dc0b42165efe5b39071674a5019a7e11860d53f5..0000000000000000000000000000000000000000
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsLoaded.swift
+++ /dev/null
@@ -1,24 +0,0 @@
-import XXClient
-import XCTestDynamicOverlay
-
-public struct MessengerIsLoaded {
-  public var run: () -> Bool
-
-  public func callAsFunction() -> Bool {
-    run()
-  }
-}
-
-extension MessengerIsLoaded {
-  public static func live(_ env: MessengerEnvironment) -> MessengerIsLoaded {
-    MessengerIsLoaded {
-      env.cMix() != nil
-    }
-  }
-}
-
-extension MessengerIsLoaded {
-  public static let unimplemented = MessengerIsLoaded(
-    run: XCTUnimplemented()
-  )
-}
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsLoggedIn.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsLoggedIn.swift
deleted file mode 100644
index 7c54c5785fc472c4815f3a91f626575881cf2dcd..0000000000000000000000000000000000000000
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsLoggedIn.swift
+++ /dev/null
@@ -1,24 +0,0 @@
-import XXClient
-import XCTestDynamicOverlay
-
-public struct MessengerIsLoggedIn {
-  public var run: () -> Bool
-
-  public func callAsFunction() -> Bool {
-    run()
-  }
-}
-
-extension MessengerIsLoggedIn {
-  public static func live(_ env: MessengerEnvironment) -> MessengerIsLoggedIn {
-    MessengerIsLoggedIn {
-      env.ud() != nil
-    }
-  }
-}
-
-extension MessengerIsLoggedIn {
-  public static let unimplemented = MessengerIsLoggedIn(
-    run: XCTUnimplemented()
-  )
-}
diff --git a/Sources/XXMessengerClient/Utils/DirectoryManager.swift b/Sources/XXMessengerClient/Utils/DirectoryManager.swift
new file mode 100644
index 0000000000000000000000000000000000000000..16b9238effdeca0eabc1f235f852b42553f4c3e7
--- /dev/null
+++ b/Sources/XXMessengerClient/Utils/DirectoryManager.swift
@@ -0,0 +1,40 @@
+import Foundation
+import XCTestDynamicOverlay
+
+public struct DirectoryManager {
+  public var isEmpty: (String) -> Bool
+  public var remove: (String) throws -> Void
+  public var create: (String) throws -> Void
+}
+
+extension DirectoryManager {
+  public static func live(
+    fileManager: FileManager = .default
+  ) -> DirectoryManager {
+    DirectoryManager(
+      isEmpty: { path in
+        let contents = try? fileManager.contentsOfDirectory(atPath: path)
+        return contents?.isEmpty ?? true
+      },
+      remove: { path in
+        if fileManager.fileExists(atPath: path) {
+          try fileManager.removeItem(atPath: path)
+        }
+      },
+      create: { path in
+        try fileManager.createDirectory(
+          atPath: path,
+          withIntermediateDirectories: true
+        )
+      }
+    )
+  }
+}
+
+extension DirectoryManager {
+  public static let unimplemented = DirectoryManager(
+    isEmpty: XCTUnimplemented("\(Self.self).isDirectoryEmpty"),
+    remove: XCTUnimplemented("\(Self.self).removeDirectory"),
+    create: XCTUnimplemented("\(Self.self).createDirectory")
+  )
+}
diff --git a/Sources/XXMessengerClient/Utils/MessengerFileManager.swift b/Sources/XXMessengerClient/Utils/MessengerFileManager.swift
deleted file mode 100644
index 4ff49c5fe155e612852860d1d7276124729017d3..0000000000000000000000000000000000000000
--- a/Sources/XXMessengerClient/Utils/MessengerFileManager.swift
+++ /dev/null
@@ -1,40 +0,0 @@
-import Foundation
-import XCTestDynamicOverlay
-
-public struct MessengerFileManager {
-  public var isDirectoryEmpty: (String) -> Bool
-  public var removeDirectory: (String) throws -> Void
-  public var createDirectory: (String) throws -> Void
-}
-
-extension MessengerFileManager {
-  public static func live(
-    fileManager: FileManager = .default
-  ) -> MessengerFileManager {
-    MessengerFileManager(
-      isDirectoryEmpty: { path in
-        let contents = try? fileManager.contentsOfDirectory(atPath: path)
-        return contents?.isEmpty ?? true
-      },
-      removeDirectory: { path in
-        if fileManager.fileExists(atPath: path) {
-          try fileManager.removeItem(atPath: path)
-        }
-      },
-      createDirectory: { path in
-        try fileManager.createDirectory(
-          atPath: path,
-          withIntermediateDirectories: true
-        )
-      }
-    )
-  }
-}
-
-extension MessengerFileManager {
-  public static let unimplemented = MessengerFileManager(
-    isDirectoryEmpty: XCTUnimplemented("\(Self.self).isDirectoryEmpty"),
-    removeDirectory: XCTUnimplemented("\(Self.self).removeDirectory"),
-    createDirectory: XCTUnimplemented("\(Self.self).createDirectory")
-  )
-}
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift b/Tests/XXMessengerClientTests/Functors/ConnectTests.swift
similarity index 83%
rename from Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift
rename to Tests/XXMessengerClientTests/Functors/ConnectTests.swift
index fb780353631b32f3f4bcf686bf60f3c3e38703c3..caac4d6a53865934a814fd2e2c2fbd59d1e8b6a7 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift
+++ b/Tests/XXMessengerClientTests/Functors/ConnectTests.swift
@@ -3,7 +3,7 @@ import XXClient
 import XCTest
 @testable import XXMessengerClient
 
-final class MessengerConnectTests: XCTestCase {
+final class ConnectTests: XCTestCase {
   func testConnect() throws {
     struct DidLogIn: Equatable {
       var ephemeral: Bool
@@ -20,7 +20,7 @@ final class MessengerConnectTests: XCTestCase {
     let receptionId = ReceptionIdentity.stub
     let e2eParams = "e2e-params".data(using: .utf8)!
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.getId.run = { cMixId }
@@ -39,7 +39,7 @@ final class MessengerConnectTests: XCTestCase {
       ))
       return .unimplemented
     }
-    let connect: MessengerConnect = .live(env)
+    let connect: Connect = .live(env)
 
     try connect()
 
@@ -56,14 +56,14 @@ final class MessengerConnectTests: XCTestCase {
   }
 
   func testConnectWithoutCMix() {
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = { nil }
-    let connect: MessengerConnect = .live(env)
+    let connect: Connect = .live(env)
 
     XCTAssertThrowsError(try connect()) { error in
       XCTAssertEqual(
-        error as? MessengerConnect.Error,
-        MessengerConnect.Error.notLoaded
+        error as? Connect.Error,
+        Connect.Error.notLoaded
       )
     }
   }
@@ -72,14 +72,14 @@ final class MessengerConnectTests: XCTestCase {
     struct Error: Swift.Error, Equatable {}
     let error = Error()
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.getId.run = { 1234 }
       cMix.makeLegacyReceptionIdentity.run = { throw error }
       return cMix
     }
-    let connect: MessengerConnect = .live(env)
+    let connect: Connect = .live(env)
 
     XCTAssertThrowsError(try connect()) { err in
       XCTAssertEqual(err as? Error, error)
@@ -90,7 +90,7 @@ final class MessengerConnectTests: XCTestCase {
     struct Error: Swift.Error, Equatable {}
     let error = Error()
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.getId.run = { 1234 }
@@ -99,7 +99,7 @@ final class MessengerConnectTests: XCTestCase {
     }
     env.getE2EParams.run = { "e2e-params".data(using: .utf8)! }
     env.login.run = { _, _, _, _, _ in throw error }
-    let connect: MessengerConnect = .live(env)
+    let connect: Connect = .live(env)
 
     XCTAssertThrowsError(try connect()) { err in
       XCTAssertEqual(err as? Error, error)
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerCreateTests.swift b/Tests/XXMessengerClientTests/Functors/CreateTests.swift
similarity index 80%
rename from Tests/XXMessengerClientTests/Messenger/Functors/MessengerCreateTests.swift
rename to Tests/XXMessengerClientTests/Functors/CreateTests.swift
index 2180dda3db578b74a892b2166e66a9beb20357dd..0ef9e0d7501ae8fb442d80ba36d0203e211a24ca 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerCreateTests.swift
+++ b/Tests/XXMessengerClientTests/Functors/CreateTests.swift
@@ -3,7 +3,7 @@ import XCTest
 import XXClient
 @testable import XXMessengerClient
 
-final class MessengerCreateTests: XCTestCase {
+final class CreateTests: XCTestCase {
   func testCreate() throws {
     struct DidNewCMix: Equatable {
       var ndfJSON: String
@@ -23,7 +23,7 @@ final class MessengerCreateTests: XCTestCase {
     let password = "password".data(using: .utf8)!
     let storageDir = "storage-dir"
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.ndfEnvironment = .unimplemented
     env.downloadNDF.run = { ndfEnvironment in
       didDownloadNDF.append(ndfEnvironment)
@@ -37,10 +37,10 @@ final class MessengerCreateTests: XCTestCase {
       didSavePassword.append(password)
     }
     env.storageDir = storageDir
-    env.fileManager.removeDirectory = { path in
+    env.directoryManager.remove = { path in
       didRemoveDirectory.append(path)
     }
-    env.fileManager.createDirectory = { path in
+    env.directoryManager.create = { path in
       didCreateDirectory.append(path)
     }
     env.newCMix.run = { ndfJSON, storageDir, password, registrationCode in
@@ -51,7 +51,7 @@ final class MessengerCreateTests: XCTestCase {
         registrationCode: registrationCode
       ))
     }
-    let create: MessengerCreate = .live(env)
+    let create: Create = .live(env)
 
     try create()
 
@@ -72,10 +72,10 @@ final class MessengerCreateTests: XCTestCase {
     struct Error: Swift.Error, Equatable {}
     let error = Error()
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.ndfEnvironment = .unimplemented
     env.downloadNDF.run = { _ in throw error }
-    let create: MessengerCreate = .live(env)
+    let create: Create = .live(env)
 
     XCTAssertThrowsError(try create()) { err in
       XCTAssertEqual(err as? Error, error)
@@ -86,12 +86,12 @@ final class MessengerCreateTests: XCTestCase {
     struct Error: Swift.Error, Equatable {}
     let error = Error()
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.ndfEnvironment = .unimplemented
     env.downloadNDF.run = { _ in "ndf".data(using: .utf8)! }
     env.generateSecret.run = { _ in "password".data(using: .utf8)! }
     env.passwordStorage.save = { _ in throw error }
-    let create: MessengerCreate = .live(env)
+    let create: Create = .live(env)
 
     XCTAssertThrowsError(try create()) { err in
       XCTAssertEqual(err as? Error, error)
@@ -102,14 +102,14 @@ final class MessengerCreateTests: XCTestCase {
     struct Error: Swift.Error, Equatable {}
     let error = Error()
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.ndfEnvironment = .unimplemented
     env.downloadNDF.run = { _ in "ndf".data(using: .utf8)! }
     env.generateSecret.run = { _ in "password".data(using: .utf8)! }
     env.passwordStorage.save = { _ in }
     env.storageDir = "storage-dir"
-    env.fileManager.removeDirectory = { _ in throw error }
-    let create: MessengerCreate = .live(env)
+    env.directoryManager.remove = { _ in throw error }
+    let create: Create = .live(env)
 
     XCTAssertThrowsError(try create()) { err in
       XCTAssertEqual(err as? Error, error)
@@ -120,15 +120,15 @@ final class MessengerCreateTests: XCTestCase {
     struct Error: Swift.Error, Equatable {}
     let error = Error()
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.ndfEnvironment = .unimplemented
     env.downloadNDF.run = { _ in "ndf".data(using: .utf8)! }
     env.generateSecret.run = { _ in "password".data(using: .utf8)! }
     env.passwordStorage.save = { _ in }
     env.storageDir = "storage-dir"
-    env.fileManager.removeDirectory = { _ in }
-    env.fileManager.createDirectory = { _ in throw error }
-    let create: MessengerCreate = .live(env)
+    env.directoryManager.remove = { _ in }
+    env.directoryManager.create = { _ in throw error }
+    let create: Create = .live(env)
 
     XCTAssertThrowsError(try create()) { err in
       XCTAssertEqual(err as? Error, error)
@@ -139,16 +139,16 @@ final class MessengerCreateTests: XCTestCase {
     struct Error: Swift.Error, Equatable {}
     let error = Error()
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.ndfEnvironment = .unimplemented
     env.downloadNDF.run = { _ in "ndf".data(using: .utf8)! }
     env.generateSecret.run = { _ in "password".data(using: .utf8)! }
     env.passwordStorage.save = { _ in }
     env.storageDir = "storage-dir"
-    env.fileManager.removeDirectory = { _ in }
-    env.fileManager.createDirectory = { _ in }
+    env.directoryManager.remove = { _ in }
+    env.directoryManager.create = { _ in }
     env.newCMix.run = { _, _, _, _ in throw error }
-    let create: MessengerCreate = .live(env)
+    let create: Create = .live(env)
 
     XCTAssertThrowsError(try create()) { err in
       XCTAssertEqual(err as? Error, error)
diff --git a/Tests/XXMessengerClientTests/Functors/IsConnectedTests.swift b/Tests/XXMessengerClientTests/Functors/IsConnectedTests.swift
new file mode 100644
index 0000000000000000000000000000000000000000..05972e05d07917c6e7fa8ba40c6b0416c5a002f8
--- /dev/null
+++ b/Tests/XXMessengerClientTests/Functors/IsConnectedTests.swift
@@ -0,0 +1,20 @@
+import XCTest
+@testable import XXMessengerClient
+
+final class IsConnectedTests: XCTestCase {
+  func testWithE2E() {
+    var env: Environment = .unimplemented
+    env.e2e.get = { .unimplemented }
+    let isConnected: IsConnected = .live(env)
+
+    XCTAssertTrue(isConnected())
+  }
+
+  func testWithoutE2E() {
+    var env: Environment = .unimplemented
+    env.e2e.get = { nil }
+    let isConnected: IsConnected = .live(env)
+
+    XCTAssertFalse(isConnected())
+  }
+}
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsCreatedTests.swift b/Tests/XXMessengerClientTests/Functors/IsCreatedTests.swift
similarity index 65%
rename from Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsCreatedTests.swift
rename to Tests/XXMessengerClientTests/Functors/IsCreatedTests.swift
index 246be9d3be6c04c58748ce024149da79fa8b63f7..dbdd340702a968abed19b2207083cbc1f7cdbade 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsCreatedTests.swift
+++ b/Tests/XXMessengerClientTests/Functors/IsCreatedTests.swift
@@ -2,18 +2,18 @@ import CustomDump
 import XCTest
 @testable import XXMessengerClient
 
-final class MessengerIsCreatedTests: XCTestCase {
+final class IsCreatedTests: XCTestCase {
   func testStorageDirNotEmpty() {
     var didIsDirectoryEmpty: [String] = []
     let storageDir = "storage-dir"
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.storageDir = storageDir
-    env.fileManager.isDirectoryEmpty = { path in
+    env.directoryManager.isEmpty = { path in
       didIsDirectoryEmpty.append(path)
       return false
     }
-    let isCreated: MessengerIsCreated = .live(env)
+    let isCreated: IsCreated = .live(env)
 
     XCTAssertTrue(isCreated())
     XCTAssertNoDifference(didIsDirectoryEmpty, [storageDir])
@@ -23,13 +23,13 @@ final class MessengerIsCreatedTests: XCTestCase {
     var didIsDirectoryEmpty: [String] = []
     let storageDir = "storage-dir"
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.storageDir = storageDir
-    env.fileManager.isDirectoryEmpty = { path in
+    env.directoryManager.isEmpty = { path in
       didIsDirectoryEmpty.append(path)
       return true
     }
-    let isCreated: MessengerIsCreated = .live(env)
+    let isCreated: IsCreated = .live(env)
 
     XCTAssertFalse(isCreated())
     XCTAssertNoDifference(didIsDirectoryEmpty, [storageDir])
diff --git a/Tests/XXMessengerClientTests/Functors/IsLoadedTests.swift b/Tests/XXMessengerClientTests/Functors/IsLoadedTests.swift
new file mode 100644
index 0000000000000000000000000000000000000000..37adffbe44546cc4b2fbd5baa2560ae337a10ea2
--- /dev/null
+++ b/Tests/XXMessengerClientTests/Functors/IsLoadedTests.swift
@@ -0,0 +1,20 @@
+import XCTest
+@testable import XXMessengerClient
+
+final class IsLoadedTests: XCTestCase {
+  func testWithCMix() {
+    var env: Environment = .unimplemented
+    env.cMix.get = { .unimplemented }
+    let isLoaded: IsLoaded = .live(env)
+
+    XCTAssertTrue(isLoaded())
+  }
+
+  func testWithoutCMix() {
+    var env: Environment = .unimplemented
+    env.cMix.get = { nil }
+    let isLoaded: IsLoaded = .live(env)
+
+    XCTAssertFalse(isLoaded())
+  }
+}
diff --git a/Tests/XXMessengerClientTests/Functors/IsLoggedInTests.swift b/Tests/XXMessengerClientTests/Functors/IsLoggedInTests.swift
new file mode 100644
index 0000000000000000000000000000000000000000..31f6032528ec592da23f65009dc581b2290cecde
--- /dev/null
+++ b/Tests/XXMessengerClientTests/Functors/IsLoggedInTests.swift
@@ -0,0 +1,20 @@
+import XCTest
+@testable import XXMessengerClient
+
+final class IsLoggedInTests: XCTestCase {
+  func testWithUD() {
+    var env: Environment = .unimplemented
+    env.ud.get = { .unimplemented }
+    let isLoggedIn: IsLoggedIn = .live(env)
+
+    XCTAssertTrue(isLoggedIn())
+  }
+
+  func testWithoutUD() {
+    var env: Environment = .unimplemented
+    env.ud.get = { nil }
+    let isLoggedIn: IsLoggedIn = .live(env)
+
+    XCTAssertFalse(isLoggedIn())
+  }
+}
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsRegisteredTests.swift b/Tests/XXMessengerClientTests/Functors/IsRegisteredTests.swift
similarity index 67%
rename from Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsRegisteredTests.swift
rename to Tests/XXMessengerClientTests/Functors/IsRegisteredTests.swift
index b6dca3e9e4a09b5cc78b84b3d9a56ea12b032e3a..1069fb5efbd806a14fbc2522dc4e33bb4838d627 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsRegisteredTests.swift
+++ b/Tests/XXMessengerClientTests/Functors/IsRegisteredTests.swift
@@ -2,11 +2,11 @@ import XCTest
 import XXClient
 @testable import XXMessengerClient
 
-final class MessengerIsRegisteredTests: XCTestCase {
+final class IsRegisteredTests: XCTestCase {
   func testRegistered() throws {
     var didIsRegisteredWithUD: [Int] = []
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.e2e.get = {
       var e2e: E2E = .unimplemented
       e2e.getId.run = { 1234 }
@@ -16,34 +16,34 @@ final class MessengerIsRegisteredTests: XCTestCase {
       didIsRegisteredWithUD.append(e2eId)
       return true
     }
-    let isRegistered: MessengerIsRegistered = .live(env)
+    let isRegistered: IsRegistered = .live(env)
 
     XCTAssertTrue(try isRegistered())
     XCTAssertEqual(didIsRegisteredWithUD, [1234])
   }
 
   func testNotRegistered() throws {
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.e2e.get = {
       var e2e: E2E = .unimplemented
       e2e.getId.run = { 1234 }
       return e2e
     }
     env.isRegisteredWithUD.run = { _ in false }
-    let isRegistered: MessengerIsRegistered = .live(env)
+    let isRegistered: IsRegistered = .live(env)
 
     XCTAssertFalse(try isRegistered())
   }
 
   func testWithoutE2E() {
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.e2e.get = { nil }
-    let isRegistered: MessengerIsRegistered = .live(env)
+    let isRegistered: IsRegistered = .live(env)
 
     XCTAssertThrowsError(try isRegistered()) { err in
       XCTAssertEqual(
-        err as? MessengerIsRegistered.Error,
-        MessengerIsRegistered.Error.notConnected
+        err as? IsRegistered.Error,
+        IsRegistered.Error.notConnected
       )
     }
   }
@@ -52,14 +52,14 @@ final class MessengerIsRegisteredTests: XCTestCase {
     struct Error: Swift.Error, Equatable {}
     let error = Error()
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.e2e.get = {
       var e2e: E2E = .unimplemented
       e2e.getId.run = { 1234 }
       return e2e
     }
     env.isRegisteredWithUD.run = { _ in throw error }
-    let isRegistered: MessengerIsRegistered = .live(env)
+    let isRegistered: IsRegistered = .live(env)
 
     XCTAssertThrowsError(try isRegistered()) { err in
       XCTAssertEqual(err as? Error, error)
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLoadTests.swift b/Tests/XXMessengerClientTests/Functors/LoadTests.swift
similarity index 85%
rename from Tests/XXMessengerClientTests/Messenger/Functors/MessengerLoadTests.swift
rename to Tests/XXMessengerClientTests/Functors/LoadTests.swift
index 5eb90e3ae5379959c4891a5c0b36032827b8eae7..fc07659b62c205ce64932a26cc0eaae984be5929 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLoadTests.swift
+++ b/Tests/XXMessengerClientTests/Functors/LoadTests.swift
@@ -3,7 +3,7 @@ import XCTest
 import XXClient
 @testable import XXMessengerClient
 
-final class MessengerLoadTests: XCTestCase {
+final class LoadTests: XCTestCase {
   func testLoad() throws {
     struct DidLoadCMix: Equatable {
       var storageDir: String
@@ -17,7 +17,7 @@ final class MessengerLoadTests: XCTestCase {
     let password = "password".data(using: .utf8)!
     let cMixParams = "cmix-params".data(using: .utf8)!
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.set = { didSetCMix.append($0) }
     env.storageDir = storageDir
     env.passwordStorage.load = { password }
@@ -30,7 +30,7 @@ final class MessengerLoadTests: XCTestCase {
       ))
       return .unimplemented
     }
-    let load: MessengerLoad = .live(env)
+    let load: Load = .live(env)
 
     try load()
 
@@ -45,10 +45,10 @@ final class MessengerLoadTests: XCTestCase {
   }
 
   func testMissingPassword() {
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.storageDir = "storage-dir"
     env.passwordStorage.load = { throw PasswordStorage.MissingPasswordError() }
-    let load: MessengerLoad = .live(env)
+    let load: Load = .live(env)
 
     XCTAssertThrowsError(try load()) { err in
       XCTAssertEqual(
@@ -62,12 +62,12 @@ final class MessengerLoadTests: XCTestCase {
     struct Error: Swift.Error, Equatable {}
     let error = Error()
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.storageDir = "storage-dir"
     env.passwordStorage.load = { "password".data(using: .utf8)! }
     env.getCMixParams.run = { "cmix-params".data(using: .utf8)! }
     env.loadCMix.run = { _, _, _ in throw error }
-    let load: MessengerLoad = .live(env)
+    let load: Load = .live(env)
 
     XCTAssertThrowsError(try load()) { err in
       XCTAssertEqual(err as? Error, error)
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLogInTests.swift b/Tests/XXMessengerClientTests/Functors/LogInTests.swift
similarity index 85%
rename from Tests/XXMessengerClientTests/Messenger/Functors/MessengerLogInTests.swift
rename to Tests/XXMessengerClientTests/Functors/LogInTests.swift
index 83dd2cd02fc79fcb5d460d244c025d05590a2233..cf8a37080dcf2ab88e7cfbf0a81af2611a0c9bc3 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLogInTests.swift
+++ b/Tests/XXMessengerClientTests/Functors/LogInTests.swift
@@ -3,7 +3,7 @@ import XCTest
 import XXClient
 @testable import XXMessengerClient
 
-final class MessengerLogInTests: XCTestCase {
+final class LogInTests: XCTestCase {
   func testLogin() throws {
     var didNewOrLoadUDWithParams: [NewOrLoadUd.Params] = []
     var didNewOrLoadUDWithFollower: [UdNetworkStatus] = []
@@ -15,7 +15,7 @@ final class MessengerLogInTests: XCTestCase {
     let udContactFromNDF = "ndf-ud-contact".data(using: .utf8)!
     let udAddressFromNDF = "ndf-ud-address"
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.networkFollowerStatus.run = { networkFollowerStatus }
@@ -38,7 +38,7 @@ final class MessengerLogInTests: XCTestCase {
       didNewOrLoadUDWithFollower.append(follower)
       return .unimplemented
     }
-    let logIn: MessengerLogIn = .live(env)
+    let logIn: LogIn = .live(env)
     try logIn()
 
     XCTAssertNoDifference(didNewOrLoadUDWithParams, [.init(
@@ -66,7 +66,7 @@ final class MessengerLogInTests: XCTestCase {
     let altUdContact = "alt-ud-contact".data(using: .utf8)!
     let altUdAddress = "alt-ud-address"
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.networkFollowerStatus.run = { .running }
@@ -85,7 +85,7 @@ final class MessengerLogInTests: XCTestCase {
       didNewOrLoadUDWithParams.append(params)
       return .unimplemented
     }
-    let logIn: MessengerLogIn = .live(env)
+    let logIn: LogIn = .live(env)
     try logIn()
 
     XCTAssertNoDifference(didNewOrLoadUDWithParams, [.init(
@@ -100,28 +100,28 @@ final class MessengerLogInTests: XCTestCase {
   }
 
   func testLoginWithoutCMix() {
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = { nil }
-    let logIn: MessengerLogIn = .live(env)
+    let logIn: LogIn = .live(env)
 
     XCTAssertThrowsError(try logIn()) { error in
       XCTAssertEqual(
-        error as? MessengerLogIn.Error,
-        MessengerLogIn.Error.notLoaded
+        error as? LogIn.Error,
+        LogIn.Error.notLoaded
       )
     }
   }
 
   func testLoginWithoutE2E() {
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = { .unimplemented }
     env.e2e.get = { nil }
-    let logIn: MessengerLogIn = .live(env)
+    let logIn: LogIn = .live(env)
 
     XCTAssertThrowsError(try logIn()) { error in
       XCTAssertEqual(
-        error as? MessengerLogIn.Error,
-        MessengerLogIn.Error.notConnected
+        error as? LogIn.Error,
+        LogIn.Error.notConnected
       )
     }
   }
@@ -130,7 +130,7 @@ final class MessengerLogInTests: XCTestCase {
     struct Error: Swift.Error, Equatable {}
     let error = Error()
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.networkFollowerStatus.run = { .running }
@@ -145,7 +145,7 @@ final class MessengerLogInTests: XCTestCase {
     }
     env.udCert = nil
     env.udContact = nil
-    let logIn: MessengerLogIn = .live(env)
+    let logIn: LogIn = .live(env)
 
     XCTAssertThrowsError(try logIn()) { err in
       XCTAssertEqual(err as? Error, error)
@@ -156,7 +156,7 @@ final class MessengerLogInTests: XCTestCase {
     struct Error: Swift.Error, Equatable {}
     let error = Error()
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.networkFollowerStatus.run = { .running }
@@ -171,7 +171,7 @@ final class MessengerLogInTests: XCTestCase {
     env.udContact = "ud-contact".data(using: .utf8)!
     env.udAddress = "ud-address"
     env.newOrLoadUd.run = { _, _ in throw error }
-    let logIn: MessengerLogIn = .live(env)
+    let logIn: LogIn = .live(env)
 
     XCTAssertThrowsError(try logIn()) { err in
       XCTAssertEqual(err as? Error, error)
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerRegisterTests.swift b/Tests/XXMessengerClientTests/Functors/RegisterTests.swift
similarity index 86%
rename from Tests/XXMessengerClientTests/Messenger/Functors/MessengerRegisterTests.swift
rename to Tests/XXMessengerClientTests/Functors/RegisterTests.swift
index ef96b25197a388e7b258a341638e053cb63ff3ad..b43e967ad5c5d78dabb24d560d66c6097e6b5098 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerRegisterTests.swift
+++ b/Tests/XXMessengerClientTests/Functors/RegisterTests.swift
@@ -3,7 +3,7 @@ import XCTest
 import XXClient
 @testable import XXMessengerClient
 
-final class MessengerRegisterTests: XCTestCase {
+final class RegisterTests: XCTestCase {
   func testRegister() throws {
     var didNewOrLoadUDWithParams: [NewOrLoadUd.Params] = []
     var didNewOrLoadUDWithFollower: [UdNetworkStatus] = []
@@ -17,7 +17,7 @@ final class MessengerRegisterTests: XCTestCase {
     let udAddressFromNDF = "ndf-ud-address"
     let username = "new-user-name"
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.networkFollowerStatus.run = { networkFollowerStatus }
@@ -43,7 +43,7 @@ final class MessengerRegisterTests: XCTestCase {
       didNewOrLoadUDWithFollower.append(follower)
       return .unimplemented
     }
-    let register: MessengerRegister = .live(env)
+    let register: Register = .live(env)
     try register(username: username)
 
     XCTAssertNoDifference(didNewOrLoadUDWithParams, [.init(
@@ -73,7 +73,7 @@ final class MessengerRegisterTests: XCTestCase {
     let altUdAddress = "alt-ud-address"
     let username = "new-user-name"
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.networkFollowerStatus.run = { .running }
@@ -95,7 +95,7 @@ final class MessengerRegisterTests: XCTestCase {
       didNewOrLoadUDWithParams.append(params)
       return .unimplemented
     }
-    let register: MessengerRegister = .live(env)
+    let register: Register = .live(env)
     try register(username: username)
 
     XCTAssertNoDifference(didNewOrLoadUDWithParams, [.init(
@@ -110,28 +110,28 @@ final class MessengerRegisterTests: XCTestCase {
   }
 
   func testRegisterWithoutCMix() {
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = { nil }
-    let register: MessengerRegister = .live(env)
+    let register: Register = .live(env)
 
     XCTAssertThrowsError(try register(username: "new-user-name")) { error in
       XCTAssertEqual(
-        error as? MessengerRegister.Error,
-        MessengerRegister.Error.notLoaded
+        error as? Register.Error,
+        Register.Error.notLoaded
       )
     }
   }
 
   func testRegisterWithoutE2E() {
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = { .unimplemented }
     env.e2e.get = { nil }
-    let register: MessengerRegister = .live(env)
+    let register: Register = .live(env)
 
     XCTAssertThrowsError(try register(username: "new-user-name")) { error in
       XCTAssertEqual(
-        error as? MessengerRegister.Error,
-        MessengerRegister.Error.notConnected
+        error as? Register.Error,
+        Register.Error.notConnected
       )
     }
   }
@@ -140,7 +140,7 @@ final class MessengerRegisterTests: XCTestCase {
     struct Error: Swift.Error, Equatable {}
     let error = Error()
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.networkFollowerStatus.run = { .running }
@@ -158,7 +158,7 @@ final class MessengerRegisterTests: XCTestCase {
     }
     env.udCert = nil
     env.udContact = nil
-    let register: MessengerRegister = .live(env)
+    let register: Register = .live(env)
 
     XCTAssertThrowsError(try register(username: "new-user-name")) { err in
       XCTAssertEqual(err as? Error, error)
@@ -169,7 +169,7 @@ final class MessengerRegisterTests: XCTestCase {
     struct Error: Swift.Error, Equatable {}
     let error = Error()
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.networkFollowerStatus.run = { .running }
@@ -187,7 +187,7 @@ final class MessengerRegisterTests: XCTestCase {
     env.udContact = "ud-contact".data(using: .utf8)!
     env.udAddress = "ud-address"
     env.newOrLoadUd.run = { _, _ in throw error }
-    let register: MessengerRegister = .live(env)
+    let register: Register = .live(env)
 
     XCTAssertThrowsError(try register(username: "new-user-name")) { err in
       XCTAssertEqual(err as? Error, error)
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerStartTests.swift b/Tests/XXMessengerClientTests/Functors/StartTests.swift
similarity index 71%
rename from Tests/XXMessengerClientTests/Messenger/Functors/MessengerStartTests.swift
rename to Tests/XXMessengerClientTests/Functors/StartTests.swift
index 7b3e33af570bd8a522d26091ef551be5fec7b674..f15d6f1d80fb7b20f27836e3ac8269af6433cdfe 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerStartTests.swift
+++ b/Tests/XXMessengerClientTests/Functors/StartTests.swift
@@ -3,11 +3,11 @@ import XCTest
 import XXClient
 @testable import XXMessengerClient
 
-final class MessengerStartTests: XCTestCase {
+final class StartTests: XCTestCase {
   func testStart() throws {
     var didStartNetworkFollower: [Int] = []
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.networkFollowerStatus.run = { .stopped }
@@ -16,7 +16,7 @@ final class MessengerStartTests: XCTestCase {
       }
       return cMix
     }
-    let start: MessengerStart = .live(env)
+    let start: Start = .live(env)
 
     try start(timeoutMS: 123)
 
@@ -24,26 +24,26 @@ final class MessengerStartTests: XCTestCase {
   }
 
   func testStartWhenNotLoaded() {
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = { nil }
-    let start: MessengerStart = .live(env)
+    let start: Start = .live(env)
 
     XCTAssertThrowsError(try start()) { error in
       XCTAssertEqual(
-        error as? MessengerStart.Error,
-        MessengerStart.Error.notLoaded
+        error as? Start.Error,
+        Start.Error.notLoaded
       )
     }
   }
 
   func testStartWhenRunning() throws {
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.networkFollowerStatus.run = { .running }
       return cMix
     }
-    let start: MessengerStart = .live(env)
+    let start: Start = .live(env)
 
     try start()
   }
@@ -52,14 +52,14 @@ final class MessengerStartTests: XCTestCase {
     struct Error: Swift.Error, Equatable {}
     let error = Error()
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.networkFollowerStatus.run = { .stopped }
       cMix.startNetworkFollower.run = { _ in throw error }
       return cMix
     }
-    let start: MessengerStart = .live(env)
+    let start: Start = .live(env)
 
     XCTAssertThrowsError(try start()) { err in
       XCTAssertEqual(err as? Error, error)
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNetworkTests.swift b/Tests/XXMessengerClientTests/Functors/WaitForNetworkTests.swift
similarity index 60%
rename from Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNetworkTests.swift
rename to Tests/XXMessengerClientTests/Functors/WaitForNetworkTests.swift
index 1dbae73528c82a00c4270bf99c759356c7488171..f0d15ca784203bad54b0efdd109fee35622f0ccf 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNetworkTests.swift
+++ b/Tests/XXMessengerClientTests/Functors/WaitForNetworkTests.swift
@@ -3,11 +3,11 @@ import XCTest
 import XXClient
 @testable import XXMessengerClient
 
-final class MessengerWaitForNetworkTests: XCTestCase {
+final class WaitForNetworkTests: XCTestCase {
   func testWaitSuccess() throws {
     var didWaitForNetwork: [Int] = []
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.waitForNetwork.run = { timeoutMS in
@@ -16,7 +16,7 @@ final class MessengerWaitForNetworkTests: XCTestCase {
       }
       return cMix
     }
-    let waitForNetwork: MessengerWaitForNetwork = .live(env)
+    let waitForNetwork: WaitForNetwork = .live(env)
 
     try waitForNetwork(timeoutMS: 123)
 
@@ -24,31 +24,31 @@ final class MessengerWaitForNetworkTests: XCTestCase {
   }
 
   func testWaitWhenNotLoaded() {
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = { nil }
-    let waitForNetwork: MessengerWaitForNetwork = .live(env)
+    let waitForNetwork: WaitForNetwork = .live(env)
 
     XCTAssertThrowsError(try waitForNetwork()) { error in
       XCTAssertEqual(
-        error as? MessengerWaitForNetwork.Error,
-        MessengerWaitForNetwork.Error.notLoaded
+        error as? WaitForNetwork.Error,
+        WaitForNetwork.Error.notLoaded
       )
     }
   }
 
   func testWaitTimeout() {
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.waitForNetwork.run = { _ in false }
       return cMix
     }
-    let waitForNetwork: MessengerWaitForNetwork = .live(env)
+    let waitForNetwork: WaitForNetwork = .live(env)
 
     XCTAssertThrowsError(try waitForNetwork()) { error in
       XCTAssertEqual(
-        error as? MessengerWaitForNetwork.Error,
-        MessengerWaitForNetwork.Error.timeout
+        error as? WaitForNetwork.Error,
+        WaitForNetwork.Error.timeout
       )
     }
   }
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift b/Tests/XXMessengerClientTests/Functors/WaitForNodesTests.swift
similarity index 80%
rename from Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift
rename to Tests/XXMessengerClientTests/Functors/WaitForNodesTests.swift
index bc23afb53c604fd0b737bba5db544edfebdffe68..e001d270aca4cadd3bdfc337b1bf21facbae6247 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift
+++ b/Tests/XXMessengerClientTests/Functors/WaitForNodesTests.swift
@@ -3,16 +3,16 @@ import XCTest
 import XXClient
 @testable import XXMessengerClient
 
-final class MessengerWaitForNodesTests: XCTestCase {
+final class WaitForNodesTests: XCTestCase {
   func testWaitWhenNotLoaded() {
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = { nil }
-    let waitForNodes: MessengerWaitForNodes = .live(env)
+    let waitForNodes: WaitForNodes = .live(env)
 
     XCTAssertThrowsError(try waitForNodes()) { error in
       XCTAssertEqual(
-        error as? MessengerWaitForNodes.Error,
-        MessengerWaitForNodes.Error.notLoaded
+        error as? WaitForNodes.Error,
+        WaitForNodes.Error.notLoaded
       )
     }
   }
@@ -20,7 +20,7 @@ final class MessengerWaitForNodesTests: XCTestCase {
   func testWaitWhenHasTargetRatio() throws {
     var didProgress: [NodeRegistrationReport] = []
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.getNodeRegistrationStatus.run = {
@@ -28,7 +28,7 @@ final class MessengerWaitForNodesTests: XCTestCase {
       }
       return cMix
     }
-    let waitForNodes: MessengerWaitForNodes = .live(env)
+    let waitForNodes: WaitForNodes = .live(env)
 
     try waitForNodes(
       targetRatio: 0.7,
@@ -52,14 +52,14 @@ final class MessengerWaitForNodesTests: XCTestCase {
       .init(registered: 8, total: 10),
     ]
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.getNodeRegistrationStatus.run = { reports.removeFirst() }
       return cMix
     }
     env.sleep = { didSleep.append($0) }
-    let waitForNodes: MessengerWaitForNodes = .live(env)
+    let waitForNodes: WaitForNodes = .live(env)
 
     try waitForNodes(
       targetRatio: 0.7,
@@ -87,14 +87,14 @@ final class MessengerWaitForNodesTests: XCTestCase {
       .init(registered: 6, total: 10),
     ]
 
-    var env: MessengerEnvironment = .unimplemented
+    var env: Environment = .unimplemented
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.getNodeRegistrationStatus.run = { reports.removeFirst() }
       return cMix
     }
     env.sleep = { didSleep.append($0) }
-    let waitForNodes: MessengerWaitForNodes = .live(env)
+    let waitForNodes: WaitForNodes = .live(env)
 
     XCTAssertThrowsError(try waitForNodes(
       targetRatio: 0.7,
@@ -103,8 +103,8 @@ final class MessengerWaitForNodesTests: XCTestCase {
       onProgress: { didProgress.append($0) }
     )) { error in
       XCTAssertEqual(
-        error as? MessengerWaitForNodes.Error,
-        MessengerWaitForNodes.Error.timeout
+        error as? WaitForNodes.Error,
+        WaitForNodes.Error.timeout
       )
     }
 
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsConnectedTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsConnectedTests.swift
deleted file mode 100644
index c7c5de8bc78a79257ce08725a32524a5ce78da50..0000000000000000000000000000000000000000
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsConnectedTests.swift
+++ /dev/null
@@ -1,20 +0,0 @@
-import XCTest
-@testable import XXMessengerClient
-
-final class MessengerIsConnectedTests: XCTestCase {
-  func testWithE2E() {
-    var env: MessengerEnvironment = .unimplemented
-    env.e2e.get = { .unimplemented }
-    let isConnected: MessengerIsConnected = .live(env)
-
-    XCTAssertTrue(isConnected())
-  }
-
-  func testWithoutE2E() {
-    var env: MessengerEnvironment = .unimplemented
-    env.e2e.get = { nil }
-    let isConnected: MessengerIsConnected = .live(env)
-
-    XCTAssertFalse(isConnected())
-  }
-}
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsLoadedTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsLoadedTests.swift
deleted file mode 100644
index 6f0591e264cbac1a12cf707b462b0be12d65aa74..0000000000000000000000000000000000000000
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsLoadedTests.swift
+++ /dev/null
@@ -1,20 +0,0 @@
-import XCTest
-@testable import XXMessengerClient
-
-final class MessengerIsLoadedTests: XCTestCase {
-  func testWithCMix() {
-    var env: MessengerEnvironment = .unimplemented
-    env.cMix.get = { .unimplemented }
-    let isLoaded: MessengerIsLoaded = .live(env)
-
-    XCTAssertTrue(isLoaded())
-  }
-
-  func testWithoutCMix() {
-    var env: MessengerEnvironment = .unimplemented
-    env.cMix.get = { nil }
-    let isLoaded: MessengerIsLoaded = .live(env)
-
-    XCTAssertFalse(isLoaded())
-  }
-}
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsLoggedInTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsLoggedInTests.swift
deleted file mode 100644
index c6ea87e64f2c300f9ab7090b8b56fc7e730ee765..0000000000000000000000000000000000000000
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsLoggedInTests.swift
+++ /dev/null
@@ -1,20 +0,0 @@
-import XCTest
-@testable import XXMessengerClient
-
-final class MessengerIsLoggedInTests: XCTestCase {
-  func testWithUD() {
-    var env: MessengerEnvironment = .unimplemented
-    env.ud.get = { .unimplemented }
-    let isLoggedIn: MessengerIsLoggedIn = .live(env)
-
-    XCTAssertTrue(isLoggedIn())
-  }
-
-  func testWithoutUD() {
-    var env: MessengerEnvironment = .unimplemented
-    env.ud.get = { nil }
-    let isLoggedIn: MessengerIsLoggedIn = .live(env)
-
-    XCTAssertFalse(isLoggedIn())
-  }
-}
diff --git a/Tests/XXMessengerClientTests/Messenger/Utils/StoredTests.swift b/Tests/XXMessengerClientTests/Utils/StoredTests.swift
similarity index 100%
rename from Tests/XXMessengerClientTests/Messenger/Utils/StoredTests.swift
rename to Tests/XXMessengerClientTests/Utils/StoredTests.swift