diff --git a/Examples/xx-messenger/Package.swift b/Examples/xx-messenger/Package.swift
index edfeba7e408eb19bf9640f16fbe3a7891aaf739b..484c0112823ac3949e2cf8a24f32ea1af622b832 100644
--- a/Examples/xx-messenger/Package.swift
+++ b/Examples/xx-messenger/Package.swift
@@ -287,6 +287,7 @@ let package = Package(
         .target(name: "AppCore"),
         .target(name: "BackupFeature"),
         .target(name: "ContactsFeature"),
+        .target(name: "GroupsFeature"),
         .target(name: "RegisterFeature"),
         .target(name: "UserSearchFeature"),
         .product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
diff --git a/Examples/xx-messenger/Sources/HomeFeature/HomeComponent.swift b/Examples/xx-messenger/Sources/HomeFeature/HomeComponent.swift
index 1f209ba392b3a22210778221499d6bf567e9484e..91b0acffa31647524cc91e1d9f2eec028768e064 100644
--- a/Examples/xx-messenger/Sources/HomeFeature/HomeComponent.swift
+++ b/Examples/xx-messenger/Sources/HomeFeature/HomeComponent.swift
@@ -5,6 +5,7 @@ import ComposableArchitecture
 import ComposablePresentation
 import ContactsFeature
 import Foundation
+import GroupsFeature
 import RegisterFeature
 import UserSearchFeature
 import XCTestDynamicOverlay
@@ -23,7 +24,8 @@ public struct HomeComponent: ReducerProtocol {
       register: RegisterComponent.State? = nil,
       contacts: ContactsComponent.State? = nil,
       userSearch: UserSearchComponent.State? = nil,
-      backup: BackupComponent.State? = nil
+      backup: BackupComponent.State? = nil,
+      groups: GroupsComponent.State? = nil
     ) {
       self.failure = failure
       self.isNetworkHealthy = isNetworkHealthy
@@ -33,6 +35,7 @@ public struct HomeComponent: ReducerProtocol {
       self.contacts = contacts
       self.userSearch = userSearch
       self.backup = backup
+      self.groups = groups
     }
 
     public var failure: String?
@@ -44,6 +47,7 @@ public struct HomeComponent: ReducerProtocol {
     public var contacts: ContactsComponent.State?
     public var userSearch: UserSearchComponent.State?
     public var backup: BackupComponent.State?
+    public var groups: GroupsComponent.State?
   }
 
   public enum Action: Equatable {
@@ -79,10 +83,13 @@ public struct HomeComponent: ReducerProtocol {
     case didDismissContacts
     case backupButtonTapped
     case didDismissBackup
+    case groupsButtonTapped
+    case didDismissGroups
     case register(RegisterComponent.Action)
     case contacts(ContactsComponent.Action)
     case userSearch(UserSearchComponent.Action)
     case backup(BackupComponent.Action)
+    case groups(GroupsComponent.Action)
   }
 
   public init() {}
@@ -264,7 +271,15 @@ public struct HomeComponent: ReducerProtocol {
         state.backup = nil
         return .none
 
-      case .register(_), .contacts(_), .userSearch(_), .backup(_):
+      case .groupsButtonTapped:
+        state.groups = GroupsComponent.State()
+        return .none
+
+      case .didDismissGroups:
+        state.groups = nil
+        return .none
+
+      case .register(_), .contacts(_), .userSearch(_), .backup(_), .groups(_):
         return .none
       }
     }
@@ -292,5 +307,11 @@ public struct HomeComponent: ReducerProtocol {
       action: /Action.backup,
       presented: { BackupComponent() }
     )
+    .presenting(
+      state: .keyPath(\.groups),
+      id: .notNil(),
+      action: /Action.groups,
+      presented: { GroupsComponent() }
+    )
   }
 }
diff --git a/Examples/xx-messenger/Sources/HomeFeature/HomeView.swift b/Examples/xx-messenger/Sources/HomeFeature/HomeView.swift
index f2fb823ce3772601b24e65bf66063bad2304846f..24465f6e6f3b39344d070660b21fdbaef0310a76 100644
--- a/Examples/xx-messenger/Sources/HomeFeature/HomeView.swift
+++ b/Examples/xx-messenger/Sources/HomeFeature/HomeView.swift
@@ -3,6 +3,7 @@ import BackupFeature
 import ComposableArchitecture
 import ComposablePresentation
 import ContactsFeature
+import GroupsFeature
 import RegisterFeature
 import SwiftUI
 import UserSearchFeature
@@ -109,6 +110,16 @@ public struct HomeView: View {
                 Image(systemName: "chevron.forward")
               }
             }
+
+            Button {
+              viewStore.send(.groupsButtonTapped)
+            } label: {
+              HStack {
+                Text("Groups")
+                Spacer()
+                Image(systemName: "chevron.forward")
+              }
+            }
           } header: {
             Text("Contacts")
           }
@@ -181,6 +192,16 @@ public struct HomeView: View {
           },
           destination: BackupView.init(store:)
         ))
+        .background(NavigationLinkWithStore(
+          store.scope(
+            state: \.groups,
+            action: HomeComponent.Action.groups
+          ),
+          onDeactivate: {
+            viewStore.send(.didDismissGroups)
+          },
+          destination: GroupsView.init(store:)
+        ))
       }
       .navigationViewStyle(.stack)
       .task { viewStore.send(.messenger(.start)) }
diff --git a/Examples/xx-messenger/Tests/HomeFeatureTests/HomeComponentTests.swift b/Examples/xx-messenger/Tests/HomeFeatureTests/HomeComponentTests.swift
index f381d20481b1800fa3ec9f827bc17d6925ee01b8..813a4534da468e32fc31fdde76c21ab4f8f00f33 100644
--- a/Examples/xx-messenger/Tests/HomeFeatureTests/HomeComponentTests.swift
+++ b/Examples/xx-messenger/Tests/HomeFeatureTests/HomeComponentTests.swift
@@ -3,6 +3,7 @@ import BackupFeature
 import ComposableArchitecture
 import ContactsFeature
 import CustomDump
+import GroupsFeature
 import RegisterFeature
 import UserSearchFeature
 import XCTest
@@ -540,4 +541,28 @@ final class HomeComponentTests: XCTestCase {
       $0.backup = nil
     }
   }
+
+  func testGroupsButtonTapped() {
+    let store = TestStore(
+      initialState: HomeComponent.State(),
+      reducer: HomeComponent()
+    )
+
+    store.send(.groupsButtonTapped) {
+      $0.groups = GroupsComponent.State()
+    }
+  }
+
+  func testDidDismissGroups() {
+    let store = TestStore(
+      initialState: HomeComponent.State(
+        groups: GroupsComponent.State()
+      ),
+      reducer: HomeComponent()
+    )
+
+    store.send(.didDismissGroups) {
+      $0.groups = nil
+    }
+  }
 }