diff --git a/app/src/main/java/com/futo/circles/provider/MatrixSessionProvider.kt b/app/src/main/java/com/futo/circles/provider/MatrixSessionProvider.kt
index 6344e1e54d7283f630324959debc9dfed2723589..f573de5e6fb7029ab64af58facdf587565fbc81d 100644
--- a/app/src/main/java/com/futo/circles/provider/MatrixSessionProvider.kt
+++ b/app/src/main/java/com/futo/circles/provider/MatrixSessionProvider.kt
@@ -5,12 +5,12 @@ import org.matrix.android.sdk.api.Matrix
 import org.matrix.android.sdk.api.MatrixConfiguration
 import org.matrix.android.sdk.api.session.Session
 
-class MatrixSessionProvider(private val context: Context) {
+object MatrixSessionProvider {
 
     var currentSession: Session? = null
         private set
 
-    fun initSession() {
+    fun initSession(context: Context) {
         Matrix.initialize(
             context = context, matrixConfiguration = MatrixConfiguration(
                 roomDisplayNameFallbackProvider = RoomDisplayNameFallbackProviderImpl()
diff --git a/app/src/main/java/com/futo/circles/ui/groups/GroupsFragment.kt b/app/src/main/java/com/futo/circles/ui/groups/GroupsFragment.kt
index 36620e2708edfe93b2fd835435cbee0d91bd508d..171f830e80599286ff77d45363d6e7477635a79d 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/GroupsFragment.kt
+++ b/app/src/main/java/com/futo/circles/ui/groups/GroupsFragment.kt
@@ -18,12 +18,7 @@ class GroupsFragment : Fragment(R.layout.groups_fragment) {
 
     private val viewModel by viewModel<GroupsViewModel>()
     private val binding by viewBinding(GroupsFragmentBinding::bind)
-    private val listAdapter by lazy {
-        GroupsListAdapter(
-            viewModel.getContentResolver(),
-            ::onGroupListItemClicked
-        )
-    }
+    private val listAdapter by lazy { GroupsListAdapter(::onGroupListItemClicked) }
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
diff --git a/app/src/main/java/com/futo/circles/ui/groups/list/GroupsListAdapter.kt b/app/src/main/java/com/futo/circles/ui/groups/list/GroupsListAdapter.kt
index bd02c75631ce659276e24293654f75f2970227f8..b64f53c517b193cc5b974d6067adb0e85f93c334 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/list/GroupsListAdapter.kt
+++ b/app/src/main/java/com/futo/circles/ui/groups/list/GroupsListAdapter.kt
@@ -4,10 +4,8 @@ import android.view.ViewGroup
 import com.futo.circles.base.BaseRvAdapter
 import com.futo.circles.model.GroupListItem
 import com.futo.circles.model.GroupListItemPayload
-import org.matrix.android.sdk.api.session.content.ContentUrlResolver
 
 class GroupsListAdapter(
-    private val urlResolver: ContentUrlResolver?,
     private val onGroupClicked: (GroupListItem) -> Unit
 ) : BaseRvAdapter<GroupListItem, GroupViewHolder>(PayloadIdEntityCallback { _, new ->
     GroupListItemPayload(
@@ -20,7 +18,6 @@ class GroupsListAdapter(
         viewType: Int
     ): GroupViewHolder = GroupViewHolder(
         parent = parent,
-        urlResolver = urlResolver,
         onGroupClicked = { position -> onGroupClicked(getItem(position)) }
     )
 
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt b/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt
index b4092777cef57b97b76130c8350da88e1cf6a26d..8964599d8764a06c3cea9c9dadcdd23a927cd09a 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt
+++ b/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt
@@ -26,7 +26,7 @@ class GroupTimelineFragment : Fragment(R.layout.group_timeline_fragment), GroupP
     private val binding by viewBinding(GroupTimelineFragmentBinding::bind)
 
     private val listAdapter by lazy {
-        GroupTimelineAdapter(this, viewModel.urlResolver) { viewModel.loadMore() }
+        GroupTimelineAdapter(this) { viewModel.loadMore() }
     }
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineViewModel.kt b/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineViewModel.kt
index 76142252a308820e2a9169f60787441eccd7c217..ae6997c8ba9cad2b82cf9eb30a6261002ba6f812 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineViewModel.kt
+++ b/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineViewModel.kt
@@ -10,7 +10,6 @@ class GroupTimelineViewModel(
 
     val titleLiveData = MutableLiveData(dataSource.getGroupTitle())
     val timelineEventsLiveData = dataSource.timelineEventsLiveData
-    val urlResolver get() = dataSource.getUrlResolver()
 
     init {
         dataSource.startTimeline()
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/ui/groups/timeline/data_source/GroupTimelineDatasource.kt
index 1058d7f783f65223fe634d7a9665e8460d0643fc..ddf9b2fef0f019d82bc1090780302eee45adf458 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/timeline/data_source/GroupTimelineDatasource.kt
+++ b/app/src/main/java/com/futo/circles/ui/groups/timeline/data_source/GroupTimelineDatasource.kt
@@ -10,11 +10,10 @@ import org.matrix.android.sdk.api.session.room.timeline.TimelineSettings
 
 class GroupTimelineDatasource(
     private val roomId: String,
-    private val matrixSessionProvider: MatrixSessionProvider,
     private val timelineBuilder: GroupTimelineBuilder
 ) : Timeline.Listener {
 
-    private val room = matrixSessionProvider.currentSession?.getRoom(roomId)
+    private val room = MatrixSessionProvider.currentSession?.getRoom(roomId)
 
     val timelineEventsLiveData = MutableLiveData<List<Post>>()
 
@@ -53,8 +52,6 @@ class GroupTimelineDatasource(
         timeline?.restartWithEventId(null)
     }
 
-    fun getUrlResolver() = matrixSessionProvider.currentSession?.contentUrlResolver()
-
     companion object {
         private const val MESSAGES_PER_PAGE = 30
     }
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineAdapter.kt b/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineAdapter.kt
index c9245dc13a3243ea9a5e40fe5b7203c462fe9011..0f5d6a1ffff9f14abb1d3d1ce99850547a65f0af 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineAdapter.kt
+++ b/app/src/main/java/com/futo/circles/ui/groups/timeline/list/GroupTimelineAdapter.kt
@@ -11,7 +11,6 @@ import org.matrix.android.sdk.api.session.content.ContentUrlResolver
 
 class GroupTimelineAdapter(
     private val postListener: GroupPostListener,
-    private val urlResolver: ContentUrlResolver?,
     private val onLoadMore: () -> Unit
 ) : BaseRvAdapter<Post, GroupPostViewHolder>(PayloadIdEntityCallback { _, new ->
     (new as? RootPost)?.let { rootPost ->
@@ -30,8 +29,8 @@ class GroupTimelineAdapter(
 
     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GroupPostViewHolder {
         return when (PostContentType.values()[viewType]) {
-            PostContentType.TEXT_CONTENT -> TextPostViewHolder(parent, postListener, urlResolver)
-            PostContentType.IMAGE_CONTENT -> ImagePostViewHolder(parent, postListener, urlResolver)
+            PostContentType.TEXT_CONTENT -> TextPostViewHolder(parent, postListener)
+            PostContentType.IMAGE_CONTENT -> ImagePostViewHolder(parent, postListener)
         }
     }
 
diff --git a/app/src/main/java/com/futo/circles/ui/view/PostLayout.kt b/app/src/main/java/com/futo/circles/ui/view/PostLayout.kt
index 2b8151253ba2c78253c71ad38902797e52e96bcc..973e172eb4870df954688d645fc63180f79a5206 100644
--- a/app/src/main/java/com/futo/circles/ui/view/PostLayout.kt
+++ b/app/src/main/java/com/futo/circles/ui/view/PostLayout.kt
@@ -44,9 +44,9 @@ class PostLayout(
     }
 
 
-    fun setData(data: Post, urlResolver: ContentUrlResolver?) {
+    fun setData(data: Post) {
         post = data
-        setGeneralMessageData(data, urlResolver)
+        setGeneralMessageData(data)
         bindRepliesButton(data)
     }
 
@@ -54,13 +54,10 @@ class PostLayout(
         bindRepliesButton(payload.hasReplies, payload.repliesCount, payload.isRepliesVisible)
     }
 
-    private fun setGeneralMessageData(
-        data: Post,
-        urlResolver: ContentUrlResolver?
-    ) {
+    private fun setGeneralMessageData(data: Post) {
         val isReply = data is ReplyPost
         binding.vReplyMargin.setVisibility(isReply)
-        binding.postHeader.setData(data.postInfo.sender, urlResolver)
+        binding.postHeader.setData(data.postInfo.sender)
         binding.postFooter.setData(data.postInfo, isReply)
     }