diff --git a/core/src/main/java/org/futo/circles/core/feature/select_users/SearchUserDataSource.kt b/core/src/main/java/org/futo/circles/core/feature/select_users/SearchUserDataSource.kt
index 737cb992ec549a87ae365f8fe252a4498b487ea0..7b88ab84931e7d5a92d4fb470a867fa22ff5749f 100644
--- a/core/src/main/java/org/futo/circles/core/feature/select_users/SearchUserDataSource.kt
+++ b/core/src/main/java/org/futo/circles/core/feature/select_users/SearchUserDataSource.kt
@@ -10,8 +10,8 @@ import org.futo.circles.core.extensions.createResult
 import org.futo.circles.core.extensions.getKnownUsersFlow
 import org.futo.circles.core.extensions.getServerDomain
 import org.futo.circles.core.provider.MatrixSessionProvider
+import org.futo.circles.core.utils.getAllCirclesRooms
 import org.matrix.android.sdk.api.session.getRoom
-import org.matrix.android.sdk.api.session.room.roomSummaryQueryParams
 import org.matrix.android.sdk.api.session.user.model.User
 import javax.inject.Inject
 
@@ -20,8 +20,8 @@ class SearchUserDataSource @Inject constructor() {
     private val session = MatrixSessionProvider.currentSession
 
     suspend fun loadAllRoomMembersIfNeeded() {
-        session?.roomService()?.getRoomSummaries(roomSummaryQueryParams())?.forEach {
-            session.getRoom(it.roomId)?.membershipService()?.loadRoomMembersIfNeeded()
+        getAllCirclesRooms().forEach {
+            session?.getRoom(it.roomId)?.membershipService()?.loadRoomMembersIfNeeded()
         }
     }
 
diff --git a/core/src/main/java/org/futo/circles/core/utils/MatrixUtils.kt b/core/src/main/java/org/futo/circles/core/utils/MatrixUtils.kt
index ed01a8875f1e6a7612b6af000542d9edce730595..d6e393c12cd405487d6e56f8083f6276b308b0a6 100644
--- a/core/src/main/java/org/futo/circles/core/utils/MatrixUtils.kt
+++ b/core/src/main/java/org/futo/circles/core/utils/MatrixUtils.kt
@@ -57,23 +57,29 @@ fun getSpacesLiveData(membershipFilter: List<Membership> = Membership.activeMemb
 fun getTimelinesLiveData(membershipFilter: List<Membership> = Membership.activeMemberships()) =
     getRoomsLiveDataWithType(TIMELINE_TYPE, membershipFilter)
 
-fun getAllJoinedCirclesRoomsAndSpaces(session: Session = MatrixSessionProvider.getSessionOrThrow()) =
-    session.roomService().getRoomSummaries(roomSummaryQueryParams {
+private fun getAllRoomsAndSpacesFilter(membershipFilter: List<Membership>) =
+    roomSummaryQueryParams {
         excludeType = listOf(roomType, null)
-        memberships = listOf(Membership.JOIN)
-    })
+        memberships = membershipFilter
+    }
+
+fun getAllJoinedCirclesRoomsAndSpaces(session: Session = MatrixSessionProvider.getSessionOrThrow()) =
+    session.roomService().getRoomSummaries(getAllRoomsAndSpacesFilter(listOf(Membership.JOIN)))
 
 fun getAllJoinedCirclesRoomsAndSpacesLiveData(session: Session = MatrixSessionProvider.getSessionOrThrow()) =
-    session.roomService().getRoomSummariesLive(roomSummaryQueryParams {
-        excludeType = listOf(roomType, null)
-        memberships = listOf(Membership.JOIN)
-    })
+    session.roomService().getRoomSummariesLive(getAllRoomsAndSpacesFilter(listOf(Membership.JOIN)))
+
+private fun getAllRoomsFiler(membershipFilter: List<Membership>) = roomSummaryQueryParams {
+    excludeType = listOf(roomType, spaceType, null)
+    memberships = membershipFilter
+}
 
 fun getAllCirclesRoomsLiveData(membershipFilter: List<Membership> = Membership.activeMemberships()) =
     MatrixSessionProvider.getSessionOrThrow().roomService()
-        .getRoomSummariesLive(roomSummaryQueryParams {
-            excludeType = listOf(roomType, spaceType, null)
-            memberships = membershipFilter
-        })
+        .getRoomSummariesLive(getAllRoomsFiler(membershipFilter))
+
+fun getAllCirclesRooms(membershipFilter: List<Membership> = Membership.activeMemberships()) =
+    MatrixSessionProvider.getSessionOrThrow().roomService()
+        .getRoomSummaries(getAllRoomsFiler(membershipFilter))