diff --git a/app/src/main/java/com/futo/circles/di/DataSourceModule.kt b/app/src/main/java/com/futo/circles/di/DataSourceModule.kt
index 4d058aa7dbb5ac391550603c7a4499a865f49f09..c2bf193dad5de6aac81bb6632a037ff13d2a0e81 100644
--- a/app/src/main/java/com/futo/circles/di/DataSourceModule.kt
+++ b/app/src/main/java/com/futo/circles/di/DataSourceModule.kt
@@ -1,9 +1,9 @@
 package com.futo.circles.di
 
-import com.futo.circles.ui.groups.timeline.data_source.GroupTimelineBuilder
-import com.futo.circles.ui.groups.timeline.data_source.GroupTimelineDatasource
-import com.futo.circles.ui.groups.timeline.invite.data_source.InviteMembersDataSource
-import com.futo.circles.ui.log_in.data_source.LoginDataSource
+import com.futo.circles.feature.groups.timeline.data_source.GroupTimelineBuilder
+import com.futo.circles.feature.groups.timeline.data_source.GroupTimelineDatasource
+import com.futo.circles.feature.groups.timeline.invite.data_source.InviteMembersDataSource
+import com.futo.circles.feature.log_in.data_source.LoginDataSource
 import org.koin.dsl.module
 
 val dataSourceModule = module {
diff --git a/app/src/main/java/com/futo/circles/di/UiModule.kt b/app/src/main/java/com/futo/circles/di/UiModule.kt
index ab3497df8a27fbf01a1ba3ea8567dfc09075c816..daf830fd420fca1f77bf370604454d2769500ded 100644
--- a/app/src/main/java/com/futo/circles/di/UiModule.kt
+++ b/app/src/main/java/com/futo/circles/di/UiModule.kt
@@ -1,9 +1,9 @@
 package com.futo.circles.di
 
-import com.futo.circles.ui.groups.GroupsViewModel
-import com.futo.circles.ui.groups.timeline.GroupTimelineViewModel
-import com.futo.circles.ui.groups.timeline.invite.InviteMembersViewModel
-import com.futo.circles.ui.log_in.LogInViewModel
+import com.futo.circles.feature.groups.GroupsViewModel
+import com.futo.circles.feature.groups.timeline.GroupTimelineViewModel
+import com.futo.circles.feature.groups.timeline.invite.InviteMembersViewModel
+import com.futo.circles.feature.log_in.LogInViewModel
 import org.koin.androidx.viewmodel.dsl.viewModel
 import org.koin.core.parameter.parametersOf
 import org.koin.dsl.module
diff --git a/app/src/main/java/com/futo/circles/ui/bottom_navigation/BottomNavigationFragment.kt b/app/src/main/java/com/futo/circles/feature/bottom_navigation/BottomNavigationFragment.kt
similarity index 96%
rename from app/src/main/java/com/futo/circles/ui/bottom_navigation/BottomNavigationFragment.kt
rename to app/src/main/java/com/futo/circles/feature/bottom_navigation/BottomNavigationFragment.kt
index 5a3a49d6dd5b70e1974a4e2ec80e39f04fb45e4f..c12c3ed115ceecb5d529d7f6be29eda151fff003 100644
--- a/app/src/main/java/com/futo/circles/ui/bottom_navigation/BottomNavigationFragment.kt
+++ b/app/src/main/java/com/futo/circles/feature/bottom_navigation/BottomNavigationFragment.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.bottom_navigation
+package com.futo.circles.feature.bottom_navigation
 
 import android.os.Bundle
 import android.view.View
diff --git a/app/src/main/java/com/futo/circles/ui/circles/CirclesFragment.kt b/app/src/main/java/com/futo/circles/feature/circles/CirclesFragment.kt
similarity index 75%
rename from app/src/main/java/com/futo/circles/ui/circles/CirclesFragment.kt
rename to app/src/main/java/com/futo/circles/feature/circles/CirclesFragment.kt
index 794eca6e83a013081f763e581227469ec5f43a2f..c0fd3e045b679b37088e59d015716ffe6a0dbef9 100644
--- a/app/src/main/java/com/futo/circles/ui/circles/CirclesFragment.kt
+++ b/app/src/main/java/com/futo/circles/feature/circles/CirclesFragment.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.circles
+package com.futo.circles.feature.circles
 
 import androidx.fragment.app.Fragment
 import com.futo.circles.R
diff --git a/app/src/main/java/com/futo/circles/ui/groups/GroupsFragment.kt b/app/src/main/java/com/futo/circles/feature/groups/GroupsFragment.kt
similarity index 93%
rename from app/src/main/java/com/futo/circles/ui/groups/GroupsFragment.kt
rename to app/src/main/java/com/futo/circles/feature/groups/GroupsFragment.kt
index 171f830e80599286ff77d45363d6e7477635a79d..cf4983431e9990fb6d8dcbde2bfb85f5b7b0932b 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/GroupsFragment.kt
+++ b/app/src/main/java/com/futo/circles/feature/groups/GroupsFragment.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.groups
+package com.futo.circles.feature.groups
 
 import android.os.Bundle
 import android.view.View
@@ -10,7 +10,7 @@ import com.futo.circles.R
 import com.futo.circles.databinding.GroupsFragmentBinding
 import com.futo.circles.extensions.observeData
 import com.futo.circles.model.GroupListItem
-import com.futo.circles.ui.groups.list.GroupsListAdapter
+import com.futo.circles.feature.groups.list.GroupsListAdapter
 import org.koin.androidx.viewmodel.ext.android.viewModel
 
 
diff --git a/app/src/main/java/com/futo/circles/ui/groups/GroupsViewModel.kt b/app/src/main/java/com/futo/circles/feature/groups/GroupsViewModel.kt
similarity index 92%
rename from app/src/main/java/com/futo/circles/ui/groups/GroupsViewModel.kt
rename to app/src/main/java/com/futo/circles/feature/groups/GroupsViewModel.kt
index 60bd6f9f5171f6d33834ea670bf08cd4233fd6dc..a8fd123bb8c85b0728c0f5c061c898bee54faf68 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/GroupsViewModel.kt
+++ b/app/src/main/java/com/futo/circles/feature/groups/GroupsViewModel.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.groups
+package com.futo.circles.feature.groups
 
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.map
diff --git a/app/src/main/java/com/futo/circles/ui/groups/list/GroupViewHolder.kt b/app/src/main/java/com/futo/circles/feature/groups/list/GroupViewHolder.kt
similarity index 97%
rename from app/src/main/java/com/futo/circles/ui/groups/list/GroupViewHolder.kt
rename to app/src/main/java/com/futo/circles/feature/groups/list/GroupViewHolder.kt
index e0e77770b7f5a892351540b07a1d61a14ea834b7..aeea2aeb839d52003d4fb489e83d8bbcf779c72d 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/list/GroupViewHolder.kt
+++ b/app/src/main/java/com/futo/circles/feature/groups/list/GroupViewHolder.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.groups.list
+package com.futo.circles.feature.groups.list
 
 import android.text.format.DateUtils
 import android.util.Size
diff --git a/app/src/main/java/com/futo/circles/ui/groups/list/GroupsListAdapter.kt b/app/src/main/java/com/futo/circles/feature/groups/list/GroupsListAdapter.kt
similarity index 96%
rename from app/src/main/java/com/futo/circles/ui/groups/list/GroupsListAdapter.kt
rename to app/src/main/java/com/futo/circles/feature/groups/list/GroupsListAdapter.kt
index b64f53c517b193cc5b974d6067adb0e85f93c334..4862a3f05e593feca8c0c0f65de93eb948349851 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/list/GroupsListAdapter.kt
+++ b/app/src/main/java/com/futo/circles/feature/groups/list/GroupsListAdapter.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.groups.list
+package com.futo.circles.feature.groups.list
 
 import android.view.ViewGroup
 import com.futo.circles.base.BaseRvAdapter
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt b/app/src/main/java/com/futo/circles/feature/groups/timeline/GroupTimelineFragment.kt
similarity index 92%
rename from app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt
rename to app/src/main/java/com/futo/circles/feature/groups/timeline/GroupTimelineFragment.kt
index b679d05c2ae118ce34804cff0a9922358fb4b7cf..b721b89abea03310b4e5e43fe72d3f328c4befba 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt
+++ b/app/src/main/java/com/futo/circles/feature/groups/timeline/GroupTimelineFragment.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.groups.timeline
+package com.futo.circles.feature.groups.timeline
 
 import android.annotation.SuppressLint
 import android.os.Bundle
@@ -19,9 +19,9 @@ import com.futo.circles.extensions.dimen
 import com.futo.circles.extensions.observeData
 import com.futo.circles.extensions.setToolbarTitle
 import com.futo.circles.model.Post
-import com.futo.circles.ui.groups.timeline.list.GroupPostViewHolder
-import com.futo.circles.ui.groups.timeline.list.GroupTimelineAdapter
-import com.futo.circles.ui.view.GroupPostListener
+import com.futo.circles.feature.groups.timeline.list.GroupPostViewHolder
+import com.futo.circles.feature.groups.timeline.list.GroupTimelineAdapter
+import com.futo.circles.feature.view.GroupPostListener
 import org.koin.androidx.viewmodel.ext.android.viewModel
 import org.koin.core.parameter.parametersOf
 
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineViewModel.kt b/app/src/main/java/com/futo/circles/feature/groups/timeline/GroupTimelineViewModel.kt
similarity index 82%
rename from app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineViewModel.kt
rename to app/src/main/java/com/futo/circles/feature/groups/timeline/GroupTimelineViewModel.kt
index ae6997c8ba9cad2b82cf9eb30a6261002ba6f812..4f0e90b19c831a94b5144a166c82347fa25492be 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineViewModel.kt
+++ b/app/src/main/java/com/futo/circles/feature/groups/timeline/GroupTimelineViewModel.kt
@@ -1,8 +1,8 @@
-package com.futo.circles.ui.groups.timeline
+package com.futo.circles.feature.groups.timeline
 
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
-import com.futo.circles.ui.groups.timeline.data_source.GroupTimelineDatasource
+import com.futo.circles.feature.groups.timeline.data_source.GroupTimelineDatasource
 
 class GroupTimelineViewModel(
     private val dataSource: GroupTimelineDatasource
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/data_source/GroupTimelineBuilder.kt b/app/src/main/java/com/futo/circles/feature/groups/timeline/data_source/GroupTimelineBuilder.kt
similarity index 98%
rename from app/src/main/java/com/futo/circles/ui/groups/timeline/data_source/GroupTimelineBuilder.kt
rename to app/src/main/java/com/futo/circles/feature/groups/timeline/data_source/GroupTimelineBuilder.kt
index 0a51eb62da5acc095a207aadd14e13c2b9675581..8cdbd2171181665067ba553b61ced1e1c639adc1 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/timeline/data_source/GroupTimelineBuilder.kt
+++ b/app/src/main/java/com/futo/circles/feature/groups/timeline/data_source/GroupTimelineBuilder.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.groups.timeline.data_source
+package com.futo.circles.feature.groups.timeline.data_source
 
 import com.futo.circles.mapping.toPost
 import com.futo.circles.model.Post
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/data_source/GroupTimelineDatasource.kt b/app/src/main/java/com/futo/circles/feature/groups/timeline/data_source/GroupTimelineDatasource.kt
similarity index 96%
rename from app/src/main/java/com/futo/circles/ui/groups/timeline/data_source/GroupTimelineDatasource.kt
rename to app/src/main/java/com/futo/circles/feature/groups/timeline/data_source/GroupTimelineDatasource.kt
index ddf9b2fef0f019d82bc1090780302eee45adf458..c1c63574a97b7ceceda4c501aa78752779ffae4b 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/timeline/data_source/GroupTimelineDatasource.kt
+++ b/app/src/main/java/com/futo/circles/feature/groups/timeline/data_source/GroupTimelineDatasource.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.groups.timeline.data_source
+package com.futo.circles.feature.groups.timeline.data_source
 
 import androidx.lifecycle.MutableLiveData
 import com.futo.circles.extensions.nameOrId
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/invite/InviteMembersDialogFragment.kt b/app/src/main/java/com/futo/circles/feature/groups/timeline/invite/InviteMembersDialogFragment.kt
similarity index 91%
rename from app/src/main/java/com/futo/circles/ui/groups/timeline/invite/InviteMembersDialogFragment.kt
rename to app/src/main/java/com/futo/circles/feature/groups/timeline/invite/InviteMembersDialogFragment.kt
index 6381b4cb8d3323055a4563b1dad22766810e4fc3..268ff2d9da3089ebf99383e008d6ccfe02a269be 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/timeline/invite/InviteMembersDialogFragment.kt
+++ b/app/src/main/java/com/futo/circles/feature/groups/timeline/invite/InviteMembersDialogFragment.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.groups.timeline.invite
+package com.futo.circles.feature.groups.timeline.invite
 
 import android.os.Bundle
 import android.view.View
@@ -7,7 +7,7 @@ import com.futo.circles.R
 import com.futo.circles.base.BaseFullscreenDialogFragment
 import com.futo.circles.databinding.InviteMembersDialogFragmentBinding
 import com.futo.circles.extensions.observeData
-import com.futo.circles.ui.groups.timeline.GroupTimelineFragmentArgs
+import com.futo.circles.feature.groups.timeline.GroupTimelineFragmentArgs
 import org.koin.androidx.viewmodel.ext.android.viewModel
 import org.koin.core.parameter.parametersOf
 
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/invite/InviteMembersViewModel.kt b/app/src/main/java/com/futo/circles/feature/groups/timeline/invite/InviteMembersViewModel.kt
similarity index 63%
rename from app/src/main/java/com/futo/circles/ui/groups/timeline/invite/InviteMembersViewModel.kt
rename to app/src/main/java/com/futo/circles/feature/groups/timeline/invite/InviteMembersViewModel.kt
index 60ceb2d1aca11cb8af8c8a75814005c903cb428e..edbc0ee33cde2868978be8509921d0f24aadea82 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/timeline/invite/InviteMembersViewModel.kt
+++ b/app/src/main/java/com/futo/circles/feature/groups/timeline/invite/InviteMembersViewModel.kt
@@ -1,8 +1,8 @@
-package com.futo.circles.ui.groups.timeline.invite
+package com.futo.circles.feature.groups.timeline.invite
 
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
-import com.futo.circles.ui.groups.timeline.invite.data_source.InviteMembersDataSource
+import com.futo.circles.feature.groups.timeline.invite.data_source.InviteMembersDataSource
 
 class InviteMembersViewModel(
     private val dataSource: InviteMembersDataSource
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/invite/data_source/InviteMembersDataSource.kt b/app/src/main/java/com/futo/circles/feature/groups/timeline/invite/data_source/InviteMembersDataSource.kt
similarity index 89%
rename from app/src/main/java/com/futo/circles/ui/groups/timeline/invite/data_source/InviteMembersDataSource.kt
rename to app/src/main/java/com/futo/circles/feature/groups/timeline/invite/data_source/InviteMembersDataSource.kt
index 4073535e8a9e7ee303a2020115bc2ea4bdd397e7..1d44a6e82341d3fc870f6b7f7d7a452d99e098a6 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/timeline/invite/data_source/InviteMembersDataSource.kt
+++ b/app/src/main/java/com/futo/circles/feature/groups/timeline/invite/data_source/InviteMembersDataSource.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.groups.timeline.invite.data_source
+package com.futo.circles.feature.groups.timeline.invite.data_source
 
 import android.content.Context
 import com.futo.circles.R
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineAdapter.kt b/app/src/main/java/com/futo/circles/feature/groups/timeline/list/GroupTimelineAdapter.kt
similarity index 91%
rename from app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineAdapter.kt
rename to app/src/main/java/com/futo/circles/feature/groups/timeline/list/GroupTimelineAdapter.kt
index 0f5d6a1ffff9f14abb1d3d1ce99850547a65f0af..f3e933048d606c824026d05df866a59cee829d99 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineAdapter.kt
+++ b/app/src/main/java/com/futo/circles/feature/groups/timeline/list/GroupTimelineAdapter.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.groups.timeline.list
+package com.futo.circles.feature.groups.timeline.list
 
 import android.view.ViewGroup
 import com.futo.circles.base.BaseRvAdapter
@@ -6,8 +6,7 @@ import com.futo.circles.model.Post
 import com.futo.circles.model.PostContentType
 import com.futo.circles.model.PostItemPayload
 import com.futo.circles.model.RootPost
-import com.futo.circles.ui.view.GroupPostListener
-import org.matrix.android.sdk.api.session.content.ContentUrlResolver
+import com.futo.circles.feature.view.GroupPostListener
 
 class GroupTimelineAdapter(
     private val postListener: GroupPostListener,
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineViewHolder.kt b/app/src/main/java/com/futo/circles/feature/groups/timeline/list/GroupTimelineViewHolder.kt
similarity index 93%
rename from app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineViewHolder.kt
rename to app/src/main/java/com/futo/circles/feature/groups/timeline/list/GroupTimelineViewHolder.kt
index 36cf47c6c6936f94a92c4a2be76842c5872c387d..521217943c83294bb5a2dd0aa0b26460bbf08859 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineViewHolder.kt
+++ b/app/src/main/java/com/futo/circles/feature/groups/timeline/list/GroupTimelineViewHolder.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.groups.timeline.list
+package com.futo.circles.feature.groups.timeline.list
 
 import android.util.Size
 import android.view.View
@@ -12,8 +12,8 @@ import com.futo.circles.model.ImageContent
 import com.futo.circles.model.Post
 import com.futo.circles.model.PostItemPayload
 import com.futo.circles.model.TextContent
-import com.futo.circles.ui.view.GroupPostListener
-import com.futo.circles.ui.view.PostLayout
+import com.futo.circles.feature.view.GroupPostListener
+import com.futo.circles.feature.view.PostLayout
 
 sealed class GroupPostViewHolder(view: View) :
     RecyclerView.ViewHolder(view) {
diff --git a/app/src/main/java/com/futo/circles/ui/home/HomeFragment.kt b/app/src/main/java/com/futo/circles/feature/home/HomeFragment.kt
similarity index 75%
rename from app/src/main/java/com/futo/circles/ui/home/HomeFragment.kt
rename to app/src/main/java/com/futo/circles/feature/home/HomeFragment.kt
index db01f7099dcf6efbf74251eaa049bbae5d9531fa..608fac8503201a00bb9ccab50c234e2ca99373d2 100644
--- a/app/src/main/java/com/futo/circles/ui/home/HomeFragment.kt
+++ b/app/src/main/java/com/futo/circles/feature/home/HomeFragment.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.home
+package com.futo.circles.feature.home
 
 import androidx.fragment.app.Fragment
 import com.futo.circles.R
diff --git a/app/src/main/java/com/futo/circles/ui/log_in/LogInFragment.kt b/app/src/main/java/com/futo/circles/feature/log_in/LogInFragment.kt
similarity index 98%
rename from app/src/main/java/com/futo/circles/ui/log_in/LogInFragment.kt
rename to app/src/main/java/com/futo/circles/feature/log_in/LogInFragment.kt
index 691fc43213e28f8f268cd551d117b3730489858d..40abd4034605030a2a79e6ab76d67e74c21cefce 100644
--- a/app/src/main/java/com/futo/circles/ui/log_in/LogInFragment.kt
+++ b/app/src/main/java/com/futo/circles/feature/log_in/LogInFragment.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.log_in
+package com.futo.circles.feature.log_in
 
 import android.os.Bundle
 import android.view.View
diff --git a/app/src/main/java/com/futo/circles/ui/log_in/LogInViewModel.kt b/app/src/main/java/com/futo/circles/feature/log_in/LogInViewModel.kt
similarity index 85%
rename from app/src/main/java/com/futo/circles/ui/log_in/LogInViewModel.kt
rename to app/src/main/java/com/futo/circles/feature/log_in/LogInViewModel.kt
index 3e21b610a1a689280b6619c8d6676e40359bf58e..fe58c19476b1ac21b809b47c0c6eed5d0c17cf70 100644
--- a/app/src/main/java/com/futo/circles/ui/log_in/LogInViewModel.kt
+++ b/app/src/main/java/com/futo/circles/feature/log_in/LogInViewModel.kt
@@ -1,10 +1,10 @@
-package com.futo.circles.ui.log_in
+package com.futo.circles.feature.log_in
 
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
 import com.futo.circles.extensions.Response
 import com.futo.circles.extensions.launchBg
-import com.futo.circles.ui.log_in.data_source.LoginDataSource
+import com.futo.circles.feature.log_in.data_source.LoginDataSource
 import org.matrix.android.sdk.api.session.Session
 
 class LogInViewModel(
diff --git a/app/src/main/java/com/futo/circles/ui/log_in/data_source/LoginDataSource.kt b/app/src/main/java/com/futo/circles/feature/log_in/data_source/LoginDataSource.kt
similarity index 95%
rename from app/src/main/java/com/futo/circles/ui/log_in/data_source/LoginDataSource.kt
rename to app/src/main/java/com/futo/circles/feature/log_in/data_source/LoginDataSource.kt
index 45bb6609b7f882a949a574b44c2e9a5e0e84ce4d..86a0403d6caac3613b893b64d72fc974bd66fe89 100644
--- a/app/src/main/java/com/futo/circles/ui/log_in/data_source/LoginDataSource.kt
+++ b/app/src/main/java/com/futo/circles/feature/log_in/data_source/LoginDataSource.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.log_in.data_source
+package com.futo.circles.feature.log_in.data_source
 
 import android.content.Context
 import android.net.Uri
diff --git a/app/src/main/java/com/futo/circles/ui/people/PeopleFragment.kt b/app/src/main/java/com/futo/circles/feature/people/PeopleFragment.kt
similarity index 75%
rename from app/src/main/java/com/futo/circles/ui/people/PeopleFragment.kt
rename to app/src/main/java/com/futo/circles/feature/people/PeopleFragment.kt
index fd27cb846d8cf8c8bb03c7c1ba3183e36bcf5ce0..fa5969c9917a3f7d227e2ca5e3479741e20a745a 100644
--- a/app/src/main/java/com/futo/circles/ui/people/PeopleFragment.kt
+++ b/app/src/main/java/com/futo/circles/feature/people/PeopleFragment.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.people
+package com.futo.circles.feature.people
 
 import androidx.fragment.app.Fragment
 import com.futo.circles.R
diff --git a/app/src/main/java/com/futo/circles/ui/photos/PhotosFragment.kt b/app/src/main/java/com/futo/circles/feature/photos/PhotosFragment.kt
similarity index 75%
rename from app/src/main/java/com/futo/circles/ui/photos/PhotosFragment.kt
rename to app/src/main/java/com/futo/circles/feature/photos/PhotosFragment.kt
index 7f1d4afdafc2ccd12ac9c97e2f335a1ad722366c..60fd9e1e3b53299375b225709240d3312935fc3f 100644
--- a/app/src/main/java/com/futo/circles/ui/photos/PhotosFragment.kt
+++ b/app/src/main/java/com/futo/circles/feature/photos/PhotosFragment.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.photos
+package com.futo.circles.feature.photos
 
 import androidx.fragment.app.Fragment
 import com.futo.circles.R
diff --git a/app/src/main/java/com/futo/circles/ui/sign_up/SignUpFragment.kt b/app/src/main/java/com/futo/circles/feature/sign_up/SignUpFragment.kt
similarity index 90%
rename from app/src/main/java/com/futo/circles/ui/sign_up/SignUpFragment.kt
rename to app/src/main/java/com/futo/circles/feature/sign_up/SignUpFragment.kt
index 5a060f2b081e40360ab3a4b87097caa51850154e..1868e4912ea3ffc39b5436c89a7991966d69e89e 100644
--- a/app/src/main/java/com/futo/circles/ui/sign_up/SignUpFragment.kt
+++ b/app/src/main/java/com/futo/circles/feature/sign_up/SignUpFragment.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.sign_up
+package com.futo.circles.feature.sign_up
 
 import android.os.Bundle
 import android.view.View
diff --git a/app/src/main/java/com/futo/circles/ui/view/AdvancedOptionsView.kt b/app/src/main/java/com/futo/circles/feature/view/AdvancedOptionsView.kt
similarity index 84%
rename from app/src/main/java/com/futo/circles/ui/view/AdvancedOptionsView.kt
rename to app/src/main/java/com/futo/circles/feature/view/AdvancedOptionsView.kt
index b4a5fa6f3a876be2b20e3b3071a8b957527bd1a8..c47b3700e070b2fc7678f7a1136ea1e1f5aefbca 100644
--- a/app/src/main/java/com/futo/circles/ui/view/AdvancedOptionsView.kt
+++ b/app/src/main/java/com/futo/circles/feature/view/AdvancedOptionsView.kt
@@ -1,15 +1,11 @@
-package com.futo.circles.ui.view
+package com.futo.circles.feature.view
 
 import android.content.Context
 import android.util.AttributeSet
 import android.view.LayoutInflater
 import androidx.constraintlayout.widget.ConstraintLayout
-import androidx.core.view.isVisible
-import com.futo.circles.R
 import com.futo.circles.databinding.AdvancedOptionsViewBinding
-import com.futo.circles.extensions.gone
 import com.futo.circles.extensions.setVisibility
-import com.futo.circles.extensions.visible
 
 class AdvancedOptionsView(
     context: Context,
diff --git a/app/src/main/java/com/futo/circles/ui/view/CirclesLogoView.kt b/app/src/main/java/com/futo/circles/feature/view/CirclesLogoView.kt
similarity index 98%
rename from app/src/main/java/com/futo/circles/ui/view/CirclesLogoView.kt
rename to app/src/main/java/com/futo/circles/feature/view/CirclesLogoView.kt
index 75eecb2a50a9c49f251734bf236126fe3e56179f..240ce5400d87e9cd49bb307925befe4ad7f4f0c9 100644
--- a/app/src/main/java/com/futo/circles/ui/view/CirclesLogoView.kt
+++ b/app/src/main/java/com/futo/circles/feature/view/CirclesLogoView.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.view
+package com.futo.circles.feature.view
 
 import android.content.Context
 import android.graphics.*
diff --git a/app/src/main/java/com/futo/circles/ui/view/ExpandContentButton.kt b/app/src/main/java/com/futo/circles/feature/view/ExpandContentButton.kt
similarity index 97%
rename from app/src/main/java/com/futo/circles/ui/view/ExpandContentButton.kt
rename to app/src/main/java/com/futo/circles/feature/view/ExpandContentButton.kt
index 0e126b9e3cef5a8e55d3640611395f6e62f804a6..df4d97746f5a98d72a2722eddd0b4c849a1f56fa 100644
--- a/app/src/main/java/com/futo/circles/ui/view/ExpandContentButton.kt
+++ b/app/src/main/java/com/futo/circles/feature/view/ExpandContentButton.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.view
+package com.futo.circles.feature.view
 
 import android.content.Context
 import android.graphics.drawable.Drawable
diff --git a/app/src/main/java/com/futo/circles/ui/view/GroupPostFooterView.kt b/app/src/main/java/com/futo/circles/feature/view/GroupPostFooterView.kt
similarity index 96%
rename from app/src/main/java/com/futo/circles/ui/view/GroupPostFooterView.kt
rename to app/src/main/java/com/futo/circles/feature/view/GroupPostFooterView.kt
index 71d4e9e399bcc16af638cbf4cb4eb946435bc60f..618291185d98c68ff6e20b1c13ee1d64feb439f3 100644
--- a/app/src/main/java/com/futo/circles/ui/view/GroupPostFooterView.kt
+++ b/app/src/main/java/com/futo/circles/feature/view/GroupPostFooterView.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.view
+package com.futo.circles.feature.view
 
 import android.content.Context
 import android.util.AttributeSet
diff --git a/app/src/main/java/com/futo/circles/ui/view/GroupPostHeaderView.kt b/app/src/main/java/com/futo/circles/feature/view/GroupPostHeaderView.kt
similarity index 96%
rename from app/src/main/java/com/futo/circles/ui/view/GroupPostHeaderView.kt
rename to app/src/main/java/com/futo/circles/feature/view/GroupPostHeaderView.kt
index 99c87416b609ac3d39f0176ac75f0d61beba2c01..15d8cd1db44228d6d32f2624b9ce3148a44568d2 100644
--- a/app/src/main/java/com/futo/circles/ui/view/GroupPostHeaderView.kt
+++ b/app/src/main/java/com/futo/circles/feature/view/GroupPostHeaderView.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.view
+package com.futo.circles.feature.view
 
 import android.content.Context
 import android.util.AttributeSet
diff --git a/app/src/main/java/com/futo/circles/ui/view/LoadingButton.kt b/app/src/main/java/com/futo/circles/feature/view/LoadingButton.kt
similarity index 97%
rename from app/src/main/java/com/futo/circles/ui/view/LoadingButton.kt
rename to app/src/main/java/com/futo/circles/feature/view/LoadingButton.kt
index 14bb59eb126bd93222914322e27f65957f85969c..31e8f8bd505039ffa769ddac83ccb919dba62579 100644
--- a/app/src/main/java/com/futo/circles/ui/view/LoadingButton.kt
+++ b/app/src/main/java/com/futo/circles/feature/view/LoadingButton.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.view
+package com.futo.circles.feature.view
 
 import android.content.Context
 import android.util.AttributeSet
diff --git a/app/src/main/java/com/futo/circles/ui/view/PostLayout.kt b/app/src/main/java/com/futo/circles/feature/view/PostLayout.kt
similarity index 96%
rename from app/src/main/java/com/futo/circles/ui/view/PostLayout.kt
rename to app/src/main/java/com/futo/circles/feature/view/PostLayout.kt
index 973e172eb4870df954688d645fc63180f79a5206..5a41293e500b195431762c3cb1b7ebd763bd869d 100644
--- a/app/src/main/java/com/futo/circles/ui/view/PostLayout.kt
+++ b/app/src/main/java/com/futo/circles/feature/view/PostLayout.kt
@@ -1,4 +1,4 @@
-package com.futo.circles.ui.view
+package com.futo.circles.feature.view
 
 import android.content.Context
 import android.util.AttributeSet
@@ -15,7 +15,6 @@ import com.futo.circles.model.Post
 import com.futo.circles.model.PostItemPayload
 import com.futo.circles.model.ReplyPost
 import com.futo.circles.model.RootPost
-import org.matrix.android.sdk.api.session.content.ContentUrlResolver
 
 
 interface GroupPostListener {
diff --git a/app/src/main/res/layout/advanced_options_view.xml b/app/src/main/res/layout/advanced_options_view.xml
index f3870d3292f204786e92d3a3afa8ba9f815ddf49..3ecea53b453371177f305c3a4074694002b709d1 100644
--- a/app/src/main/res/layout/advanced_options_view.xml
+++ b/app/src/main/res/layout/advanced_options_view.xml
@@ -6,7 +6,7 @@
     android:layout_height="wrap_content"
     tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
 
-    <com.futo.circles.ui.view.ExpandContentButton
+    <com.futo.circles.feature.view.ExpandContentButton
         android:id="@+id/btnAdvanced"
         style="@style/Widget.MaterialComponents.Button.TextButton.Icon"
         android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/circles_fragment.xml b/app/src/main/res/layout/circles_fragment.xml
index 12924d0b3533385ce878a4fe564b00d66123d6a8..2ef611ae381962fcc86a1c7fa08cd9d87e3e3458 100644
--- a/app/src/main/res/layout/circles_fragment.xml
+++ b/app/src/main/res/layout/circles_fragment.xml
@@ -3,7 +3,7 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    tools:context=".ui.circles.CirclesFragment">
+    tools:context=".feature.circles.CirclesFragment">
 
 
 
diff --git a/app/src/main/res/layout/image_post_view.xml b/app/src/main/res/layout/image_post_view.xml
index 460a022b54cc3cae37bca66c625f8d0adc73502e..23af4547e519b02e995fc395ee33ad725d40dad3 100644
--- a/app/src/main/res/layout/image_post_view.xml
+++ b/app/src/main/res/layout/image_post_view.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<com.futo.circles.ui.view.PostLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<com.futo.circles.feature.view.PostLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/lImagePost"
     android:layout_width="match_parent"
     android:layout_height="wrap_content">
@@ -9,4 +9,4 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content" />
 
-</com.futo.circles.ui.view.PostLayout>
\ No newline at end of file
+</com.futo.circles.feature.view.PostLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/invite_members_dialog_fragment.xml b/app/src/main/res/layout/invite_members_dialog_fragment.xml
index 726033e6da8fd5e2155ccd2de05c203788daa2e6..a753615e52cd55715d671bdc5c46f2f8da819ceb 100644
--- a/app/src/main/res/layout/invite_members_dialog_fragment.xml
+++ b/app/src/main/res/layout/invite_members_dialog_fragment.xml
@@ -24,17 +24,37 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@id/toolbar" />
 
-
-    <TextView
-        style="@style/title0"
-        android:layout_width="wrap_content"
+    <com.google.android.material.textfield.TextInputLayout
+        android:id="@+id/tilSearch"
+        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
+        android:layout_width="0dp"
         android:layout_height="wrap_content"
-        android:text="@string/invite_members"
-        app:layout_constraintBottom_toBottomOf="parent"
+        android:layout_margin="8dp"
+        android:hint="@string/search_by_name_or_id"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@id/toolbarDivider">
+
+        <com.google.android.material.textfield.TextInputEditText
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:imeOptions="actionDone"
+            android:inputType="text"
+            android:maxLines="1"
+            android:padding="12dp" />
+
+    </com.google.android.material.textfield.TextInputLayout>
 
-        app:layout_constraintTop_toTopOf="parent" />
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/rvUsers"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:layout_marginTop="8dp"
+        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@id/tilSearch" />
 
 
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/log_in_fragment.xml b/app/src/main/res/layout/log_in_fragment.xml
index 58059dd5c4aa96502fa827b4d8b9383744f0eb30..dbe6798df8de764d18ee3d2f2a3a054192548666 100644
--- a/app/src/main/res/layout/log_in_fragment.xml
+++ b/app/src/main/res/layout/log_in_fragment.xml
@@ -5,7 +5,7 @@
     android:layout_width="match_parent"
     android:animateLayoutChanges="true"
     android:layout_height="match_parent"
-    tools:context=".ui.log_in.LogInFragment">
+    tools:context=".feature.log_in.LogInFragment">
 
     <androidx.constraintlayout.widget.Guideline
         android:id="@+id/guidelineStart"
@@ -42,7 +42,7 @@
         android:orientation="horizontal"
         app:layout_constraintGuide_percent="0.3" />
 
-    <com.futo.circles.ui.view.CirclesLogoView
+    <com.futo.circles.feature.view.CirclesLogoView
         android:id="@+id/ivLogo"
         android:layout_width="0dp"
         android:layout_height="0dp"
@@ -120,7 +120,7 @@
 
     </com.google.android.material.textfield.TextInputLayout>
 
-    <com.futo.circles.ui.view.AdvancedOptionsView
+    <com.futo.circles.feature.view.AdvancedOptionsView
         android:id="@+id/tvAdvancedOptions"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
@@ -130,7 +130,7 @@
         app:layout_constraintStart_toStartOf="@id/guidelineStart"
         app:layout_constraintTop_toBottomOf="@id/tilPassword" />
 
-    <com.futo.circles.ui.view.LoadingButton
+    <com.futo.circles.feature.view.LoadingButton
         android:id="@+id/btnLogin"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/post_layout.xml b/app/src/main/res/layout/post_layout.xml
index 74f47e39c5a97792baa25d0e1137fa01003d08fc..0bceb6f1561062b165b2c420426018bb8580d95b 100644
--- a/app/src/main/res/layout/post_layout.xml
+++ b/app/src/main/res/layout/post_layout.xml
@@ -51,7 +51,7 @@
                 android:orientation="horizontal"
                 app:layout_constraintGuide_begin="8dp" />
 
-            <com.futo.circles.ui.view.GroupPostHeaderView
+            <com.futo.circles.feature.view.GroupPostHeaderView
                 android:id="@+id/postHeader"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
@@ -70,7 +70,7 @@
                 app:layout_constraintTop_toBottomOf="@id/postHeader" />
 
 
-            <com.futo.circles.ui.view.GroupPostFooterView
+            <com.futo.circles.feature.view.GroupPostFooterView
                 android:id="@+id/postFooter"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
@@ -84,7 +84,7 @@
 
     </androidx.cardview.widget.CardView>
 
-    <com.futo.circles.ui.view.ExpandContentButton
+    <com.futo.circles.feature.view.ExpandContentButton
         android:id="@+id/btnShowReplies"
         style="@style/Widget.MaterialComponents.Button.TextButton.Icon"
         android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/text_post_view.xml b/app/src/main/res/layout/text_post_view.xml
index c11aade96b932a5d1d33e47e7e8a803f752f046a..48d973dcaac91655821289d339ad4b7c659f57b4 100644
--- a/app/src/main/res/layout/text_post_view.xml
+++ b/app/src/main/res/layout/text_post_view.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<com.futo.circles.ui.view.PostLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<com.futo.circles.feature.view.PostLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/lTextPost"
     android:layout_width="match_parent"
     android:layout_height="wrap_content">
@@ -11,4 +11,4 @@
         android:layout_height="wrap_content"
         android:layout_marginHorizontal="@dimen/post_text_side_margin" />
 
-</com.futo.circles.ui.view.PostLayout>
\ No newline at end of file
+</com.futo.circles.feature.view.PostLayout>
\ No newline at end of file
diff --git a/app/src/main/res/navigation/groups_nav_graph.xml b/app/src/main/res/navigation/groups_nav_graph.xml
index 452706ed6a0b0a024c5b12059f6ab42a62a6af3a..dc40641107409ce1ebf82e0c00cc02e3665b21e1 100644
--- a/app/src/main/res/navigation/groups_nav_graph.xml
+++ b/app/src/main/res/navigation/groups_nav_graph.xml
@@ -7,7 +7,7 @@
 
     <fragment
         android:id="@+id/groupsFragment"
-        android:name="com.futo.circles.ui.groups.GroupsFragment"
+        android:name="com.futo.circles.feature.groups.GroupsFragment"
         android:label="@string/my_groups"
         tools:layout="@layout/groups_fragment">
         <action
@@ -23,7 +23,7 @@
     </fragment>
     <fragment
         android:id="@+id/groupTimelineFragment"
-        android:name="com.futo.circles.ui.groups.timeline.GroupTimelineFragment"
+        android:name="com.futo.circles.feature.groups.timeline.GroupTimelineFragment"
         tools:layout="@layout/group_timeline_fragment">
 
         <argument
@@ -46,7 +46,7 @@
 
     <dialog
         android:id="@+id/inviteMembersDialogFragment"
-        android:name="com.futo.circles.ui.groups.timeline.invite.InviteMembersDialogFragment"
+        android:name="com.futo.circles.feature.groups.timeline.invite.InviteMembersDialogFragment"
         tools:layout="@layout/invite_members_dialog_fragment">
 
         <argument
diff --git a/app/src/main/res/navigation/nav_graph_bottom_menu.xml b/app/src/main/res/navigation/nav_graph_bottom_menu.xml
index 5e7ce4402d51c6833a0a15e6c95115fe5b157616..35185805043ebad7af02c4c9198800331d329cc6 100644
--- a/app/src/main/res/navigation/nav_graph_bottom_menu.xml
+++ b/app/src/main/res/navigation/nav_graph_bottom_menu.xml
@@ -7,12 +7,12 @@
 
     <fragment
         android:id="@+id/homeFragment"
-        android:name="com.futo.circles.ui.home.HomeFragment"
+        android:name="com.futo.circles.feature.home.HomeFragment"
         android:label="@string/welcome"
         tools:layout="@layout/home_fragment" />
     <fragment
         android:id="@+id/circlesFragment"
-        android:name="com.futo.circles.ui.circles.CirclesFragment"
+        android:name="com.futo.circles.feature.circles.CirclesFragment"
         android:label="@string/my_circles"
         tools:layout="@layout/circles_fragment" />
 
@@ -20,12 +20,12 @@
 
     <fragment
         android:id="@+id/peopleFragment"
-        android:name="com.futo.circles.ui.people.PeopleFragment"
+        android:name="com.futo.circles.feature.people.PeopleFragment"
         android:label="@string/my_people"
         tools:layout="@layout/people_fragment" />
     <fragment
         android:id="@+id/photosFragment"
-        android:name="com.futo.circles.ui.photos.PhotosFragment"
+        android:name="com.futo.circles.feature.photos.PhotosFragment"
         android:label="@string/photo_galleries"
         tools:layout="@layout/photos_fragment" />
 
diff --git a/app/src/main/res/navigation/nav_graph_start_host.xml b/app/src/main/res/navigation/nav_graph_start_host.xml
index 308d495abe59b6153f0ec28c929e4b1d6aecbc56..2f58d0faed2c38a1df4957c0159ab4f9d6279703 100644
--- a/app/src/main/res/navigation/nav_graph_start_host.xml
+++ b/app/src/main/res/navigation/nav_graph_start_host.xml
@@ -7,7 +7,7 @@
 
     <fragment
         android:id="@+id/logInFragment"
-        android:name="com.futo.circles.ui.log_in.LogInFragment"
+        android:name="com.futo.circles.feature.log_in.LogInFragment"
         android:label="Log In"
         tools:layout="@layout/log_in_fragment">
         <action
@@ -22,7 +22,7 @@
 
     <fragment
         android:id="@+id/signUpFragment"
-        android:name="com.futo.circles.ui.sign_up.SignUpFragment"
+        android:name="com.futo.circles.feature.sign_up.SignUpFragment"
         android:label="Log In"
         tools:layout="@layout/sign_up_fragment">
         <action
@@ -34,7 +34,7 @@
 
     <fragment
         android:id="@+id/bottomNavigationFragment"
-        android:name="com.futo.circles.ui.bottom_navigation.BottomNavigationFragment"
+        android:name="com.futo.circles.feature.bottom_navigation.BottomNavigationFragment"
         android:label="Bottom Navigation"
         tools:layout="@layout/bottom_navigation_fragment" />
 
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d7fa7a453a980c3889ba8a1d57b318fc9556c998..15530f2ebc5100e7cefe96332eadfe26da10408b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -26,9 +26,9 @@
     <string name="reply">Reply</string>
     <string name="share">Share</string>
     <string name="hide_replies">Hide replies</string>
-
     <string name="invite_members">Invite members</string>
     <string name="invite_members_to_format">Invite members to %s</string>
+    <string name="search_by_name_or_id">Search by name or id</string>
 
     <plurals name="member_plurals">
         <item quantity="one">%d member</item>