diff --git a/Examples/xx-messenger/Sources/AppFeature/AppComponent.swift b/Examples/xx-messenger/Sources/AppFeature/AppComponent.swift
index d092a69e57ac781372297df8de4cdcce02a43d36..d0d37d658c208c4694c68caa0fe8be98871c4858 100644
--- a/Examples/xx-messenger/Sources/AppFeature/AppComponent.swift
+++ b/Examples/xx-messenger/Sources/AppFeature/AppComponent.swift
@@ -41,6 +41,8 @@ struct AppComponent: ReducerProtocol {
   @Dependency(\.app.log) var log: Logger
   @Dependency(\.app.mainQueue) var mainQueue: AnySchedulerOf<DispatchQueue>
   @Dependency(\.app.bgQueue) var bgQueue: AnySchedulerOf<DispatchQueue>
+  @Dependency(\.app.groupRequestHandler) var groupRequestHandler: GroupRequestHandler
+  @Dependency(\.app.groupMessageHandler) var groupMessageHandler: GroupMessageHandler
 
   var body: some ReducerProtocol<State, Action> {
     BindingReducer()
@@ -80,7 +82,12 @@ struct AppComponent: ReducerProtocol {
             cancellables.append(receiveFileHandler(onError: { error in
               log(.error(error as NSError))
             }))
-
+            cancellables.append(groupRequestHandler(onError: { error in
+              log(.error(error as NSError))
+            }))
+            cancellables.append(groupMessageHandler(onError: { error in
+              log(.error(error as NSError))
+            }))
             cancellables.append(messenger.registerBackupCallback(.init { data in
               try? backupStorage.store(data)
             }))
diff --git a/Examples/xx-messenger/Tests/AppFeatureTests/AppComponentTests.swift b/Examples/xx-messenger/Tests/AppFeatureTests/AppComponentTests.swift
index 7533666ecc857876698f0478e688257cb2c501e6..b9c76682c487cabde0d702e71a8f1abf81f9c393 100644
--- a/Examples/xx-messenger/Tests/AppFeatureTests/AppComponentTests.swift
+++ b/Examples/xx-messenger/Tests/AppFeatureTests/AppComponentTests.swift
@@ -64,6 +64,14 @@ final class AppComponentTests: XCTestCase {
       actions.append(.didRegisterBackupCallback)
       return Cancellable {}
     }
+    store.dependencies.app.groupRequestHandler.run = { _ in
+      actions.append(.didStartGroupRequestHandler)
+      return Cancellable {}
+    }
+    store.dependencies.app.groupMessageHandler.run = { _ in
+      actions.append(.didStartGroupMessageHandler)
+      return Cancellable {}
+    }
 
     actions = []
     store.send(.start)
@@ -76,6 +84,8 @@ final class AppComponentTests: XCTestCase {
       .didStartAuthHandler,
       .didStartMessageListener,
       .didStartReceiveFileHandler,
+      .didStartGroupRequestHandler,
+      .didStartGroupMessageHandler,
       .didRegisterBackupCallback,
     ])
 
@@ -117,6 +127,14 @@ final class AppComponentTests: XCTestCase {
       actions.append(.didRegisterBackupCallback)
       return Cancellable {}
     }
+    store.dependencies.app.groupRequestHandler.run = { _ in
+      actions.append(.didStartGroupRequestHandler)
+      return Cancellable {}
+    }
+    store.dependencies.app.groupMessageHandler.run = { _ in
+      actions.append(.didStartGroupMessageHandler)
+      return Cancellable {}
+    }
 
     actions = []
     store.send(.start)
@@ -129,6 +147,8 @@ final class AppComponentTests: XCTestCase {
       .didStartAuthHandler,
       .didStartMessageListener,
       .didStartReceiveFileHandler,
+      .didStartGroupRequestHandler,
+      .didStartGroupMessageHandler,
       .didRegisterBackupCallback,
       .didLoadMessenger,
     ])
@@ -170,6 +190,14 @@ final class AppComponentTests: XCTestCase {
       actions.append(.didRegisterBackupCallback)
       return Cancellable {}
     }
+    store.dependencies.app.groupRequestHandler.run = { _ in
+      actions.append(.didStartGroupRequestHandler)
+      return Cancellable {}
+    }
+    store.dependencies.app.groupMessageHandler.run = { _ in
+      actions.append(.didStartGroupMessageHandler)
+      return Cancellable {}
+    }
 
     actions = []
     store.send(.welcome(.finished)) {
@@ -183,6 +211,8 @@ final class AppComponentTests: XCTestCase {
       .didStartAuthHandler,
       .didStartMessageListener,
       .didStartReceiveFileHandler,
+      .didStartGroupRequestHandler,
+      .didStartGroupMessageHandler,
       .didRegisterBackupCallback,
       .didLoadMessenger,
     ])
@@ -224,6 +254,14 @@ final class AppComponentTests: XCTestCase {
       actions.append(.didRegisterBackupCallback)
       return Cancellable {}
     }
+    store.dependencies.app.groupRequestHandler.run = { _ in
+      actions.append(.didStartGroupRequestHandler)
+      return Cancellable {}
+    }
+    store.dependencies.app.groupMessageHandler.run = { _ in
+      actions.append(.didStartGroupMessageHandler)
+      return Cancellable {}
+    }
 
     actions = []
     store.send(.restore(.finished)) {
@@ -237,6 +275,8 @@ final class AppComponentTests: XCTestCase {
       .didStartAuthHandler,
       .didStartMessageListener,
       .didStartReceiveFileHandler,
+      .didStartGroupRequestHandler,
+      .didStartGroupMessageHandler,
       .didRegisterBackupCallback,
       .didLoadMessenger,
     ])
@@ -275,6 +315,14 @@ final class AppComponentTests: XCTestCase {
       actions.append(.didRegisterBackupCallback)
       return Cancellable {}
     }
+    store.dependencies.app.groupRequestHandler.run = { _ in
+      actions.append(.didStartGroupRequestHandler)
+      return Cancellable {}
+    }
+    store.dependencies.app.groupMessageHandler.run = { _ in
+      actions.append(.didStartGroupMessageHandler)
+      return Cancellable {}
+    }
 
     actions = []
     store.send(.home(.deleteAccount(.success))) {
@@ -288,6 +336,8 @@ final class AppComponentTests: XCTestCase {
       .didStartAuthHandler,
       .didStartMessageListener,
       .didStartReceiveFileHandler,
+      .didStartGroupRequestHandler,
+      .didStartGroupMessageHandler,
       .didRegisterBackupCallback,
     ])
 
@@ -378,6 +428,14 @@ final class AppComponentTests: XCTestCase {
       actions.append(.didRegisterBackupCallback)
       return Cancellable {}
     }
+    store.dependencies.app.groupRequestHandler.run = { _ in
+      actions.append(.didStartGroupRequestHandler)
+      return Cancellable {}
+    }
+    store.dependencies.app.groupMessageHandler.run = { _ in
+      actions.append(.didStartGroupMessageHandler)
+      return Cancellable {}
+    }
 
     actions = []
     store.send(.start)
@@ -390,6 +448,8 @@ final class AppComponentTests: XCTestCase {
       .didStartAuthHandler,
       .didStartMessageListener,
       .didStartReceiveFileHandler,
+      .didStartGroupRequestHandler,
+      .didStartGroupMessageHandler,
       .didRegisterBackupCallback,
     ])
 
@@ -447,6 +507,18 @@ final class AppComponentTests: XCTestCase {
     store.dependencies.app.backupStorage.store = { data in
       actions.append(.didStoreBackup(data))
     }
+    store.dependencies.app.groupRequestHandler.run = { _ in
+      actions.append(.didStartGroupRequestHandler)
+      return Cancellable {
+        actions.append(.didCancelGroupRequestHandler)
+      }
+    }
+    store.dependencies.app.groupMessageHandler.run = { _ in
+      actions.append(.didStartGroupMessageHandler)
+      return Cancellable {
+        actions.append(.didCancelGroupMessageHandler)
+      }
+    }
 
     actions = []
     store.send(.start)
@@ -458,6 +530,8 @@ final class AppComponentTests: XCTestCase {
       .didStartAuthHandler,
       .didStartMessageListener,
       .didStartReceiveFileHandler,
+      .didStartGroupRequestHandler,
+      .didStartGroupMessageHandler,
       .didRegisterBackupCallback,
     ])
 
@@ -473,10 +547,14 @@ final class AppComponentTests: XCTestCase {
       .didCancelAuthHandler,
       .didCancelMessageListener,
       .didCancelReceiveFileHandler,
+      .didCancelGroupRequestHandler,
+      .didCancelGroupMessageHandler,
       .didCancelBackupCallback,
       .didStartAuthHandler,
       .didStartMessageListener,
       .didStartReceiveFileHandler,
+      .didStartGroupRequestHandler,
+      .didStartGroupMessageHandler,
       .didRegisterBackupCallback,
     ])
 
@@ -519,6 +597,8 @@ final class AppComponentTests: XCTestCase {
       .didCancelAuthHandler,
       .didCancelMessageListener,
       .didCancelReceiveFileHandler,
+      .didCancelGroupRequestHandler,
+      .didCancelGroupMessageHandler,
       .didCancelBackupCallback,
     ])
   }
@@ -539,4 +619,8 @@ private enum Action: Equatable {
   case didStoreBackup(Data)
   case didSetLogLevel(LogLevel)
   case didStartLogging
+  case didStartGroupRequestHandler
+  case didCancelGroupRequestHandler
+  case didStartGroupMessageHandler
+  case didCancelGroupMessageHandler
 }