diff --git a/core/src/main/java/org/futo/circles/core/extensions/MatrixSessionExtensions.kt b/core/src/main/java/org/futo/circles/core/extensions/MatrixSessionExtensions.kt
index 4f96d07f66db2f4d6b32a15bf89189651a56f1ee..c1f407d144dcee506ce9641b340eda376cd51371 100644
--- a/core/src/main/java/org/futo/circles/core/extensions/MatrixSessionExtensions.kt
+++ b/core/src/main/java/org/futo/circles/core/extensions/MatrixSessionExtensions.kt
@@ -47,15 +47,5 @@ fun Session.getUserIdsToExclude() = mutableListOf(
 
 fun Session.getServerDomain() = myUserId.substringAfter(":")
 
-fun Session.getKnownUsersFlow() =
-    roomService().getRoomSummariesLive(roomSummaryQueryParams { excludeType = null }).asFlow()
-        .mapLatest { roomSummaries ->
-            val knowUsers = mutableSetOf<User>()
-            roomSummaries.forEach { summary ->
-                summary.otherMemberIds.forEach { knowUsers.add(getOrFetchUser(it)) }
-            }
-            knowUsers.toList().filterNot { getUserIdsToExclude().contains(it.userId) }
-        }
-
 suspend fun Session.getOrFetchUser(userId: String): User =
     getUser(userId) ?: userService().resolveUser(userId)
diff --git a/core/src/main/java/org/futo/circles/core/select_users/SearchUserDataSource.kt b/core/src/main/java/org/futo/circles/core/select_users/SearchUserDataSource.kt
index 07c77fb7ab2c1192260f1a2865465285a026ed89..ccb777f32fef15e38a62ba3d1ee9c90416d50491 100644
--- a/core/src/main/java/org/futo/circles/core/select_users/SearchUserDataSource.kt
+++ b/core/src/main/java/org/futo/circles/core/select_users/SearchUserDataSource.kt
@@ -1,15 +1,19 @@
 package org.futo.circles.core.select_users
 
+import androidx.lifecycle.asFlow
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.catch
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.mapLatest
 import org.futo.circles.core.extensions.Response
 import org.futo.circles.core.extensions.createResult
-import org.futo.circles.core.extensions.getKnownUsersFlow
+import org.futo.circles.core.extensions.getOrFetchUser
 import org.futo.circles.core.extensions.getServerDomain
+import org.futo.circles.core.extensions.getUserIdsToExclude
 import org.futo.circles.core.provider.MatrixSessionProvider
+import org.matrix.android.sdk.api.session.Session
 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
@@ -36,6 +40,16 @@ class SearchUserDataSource @Inject constructor() {
                 }
             } ?: flowOf()
 
+    private fun Session.getKnownUsersFlow() =
+        roomService().getRoomSummariesLive(roomSummaryQueryParams { excludeType = null }).asFlow()
+            .mapLatest { roomSummaries ->
+                val knowUsers = mutableSetOf<User>()
+                roomSummaries.forEach { summary ->
+                    summary.otherMemberIds.forEach { knowUsers.add(getOrFetchUser(it)) }
+                }
+                knowUsers.toList().filterNot { getUserIdsToExclude().contains(it.userId) }
+            }
+
     suspend fun searchSuggestions(
         query: String,
         userIdsToExclude: Set<String> = emptySet()
diff --git a/core/src/main/java/org/futo/circles/core/select_users/SelectUsersDataSource.kt b/core/src/main/java/org/futo/circles/core/select_users/SelectUsersDataSource.kt
index 7b604713af9e614c177a4945dfe0a13f9f535beb..0b2eea4690fc54f5202d1bd280fd17ca29cfa68f 100644
--- a/core/src/main/java/org/futo/circles/core/select_users/SelectUsersDataSource.kt
+++ b/core/src/main/java/org/futo/circles/core/select_users/SelectUsersDataSource.kt
@@ -1,12 +1,15 @@
 package org.futo.circles.core.select_users
 
 import androidx.lifecycle.SavedStateHandle
+import androidx.lifecycle.asFlow
 import dagger.hilt.android.scopes.ViewModelScoped
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.mapLatest
+import org.futo.circles.core.extensions.getOrFetchUser
 import org.futo.circles.core.extensions.getUserIdsToExclude
 import org.futo.circles.core.mapping.toUserListItem
 import org.futo.circles.core.model.CirclesUserSummary
@@ -17,9 +20,11 @@ import org.futo.circles.core.model.UserListItem
 import org.futo.circles.core.provider.MatrixSessionProvider
 import org.futo.circles.core.utils.UserUtils
 import org.matrix.android.sdk.api.MatrixPatterns
+import org.matrix.android.sdk.api.session.Session
 import org.matrix.android.sdk.api.session.getRoom
 import org.matrix.android.sdk.api.session.room.members.roomMemberQueryParams
 import org.matrix.android.sdk.api.session.room.model.Membership
+import org.matrix.android.sdk.api.session.room.roomSummaryQueryParams
 import org.matrix.android.sdk.api.session.user.model.User
 import javax.inject.Inject