diff --git a/app/src/main/java/com/futo/polycentric/core/Models.kt b/app/src/main/java/com/futo/polycentric/core/Models.kt
index 53675a84515b9a7cfb6534390d9ab879b624f9cf..5edf9319f351fe9c0b5c42a7aab6f9b36a7c2a0d 100644
--- a/app/src/main/java/com/futo/polycentric/core/Models.kt
+++ b/app/src/main/java/com/futo/polycentric/core/Models.kt
@@ -20,7 +20,8 @@ enum class ContentType(val value: Long) {
     VOUCH(11),
     CLAIM(12),
     BANNER(13),
-    OPINION(14)
+    OPINION(14),
+    STORE(15)
 }
 
 enum class ClaimType(val value: String) {
@@ -881,4 +882,4 @@ class Models {
                 .build();
         }
     }
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/futo/polycentric/core/ProcessHandle.kt b/app/src/main/java/com/futo/polycentric/core/ProcessHandle.kt
index 108e4323b7e490054756766695cb8e5fb496e2ce..1d6fb69c0cfa77f2b8d701cfbc23a9ceb9aea016 100644
--- a/app/src/main/java/com/futo/polycentric/core/ProcessHandle.kt
+++ b/app/src/main/java/com/futo/polycentric/core/ProcessHandle.kt
@@ -40,55 +40,51 @@ class ProcessHandle constructor(
         )
     }
 
-    fun setUsername(username: String): Pointer {
+    fun setCRDTItem(contentType: Long, value: ByteArray): Pointer {
         return publish(
-            ContentType.USERNAME.value,
+            contentType,
             ByteArray(0),
             null,
             LWWElement(
-                username.toByteArray(),
+                value,
                 Date().time
             ),
             mutableListOf()
         )
     }
 
+    fun setUsername(username: String): Pointer {
+        return setCRDTItem(
+            ContentType.USERNAME.value,
+            username.toByteArray()
+        )
+    }
+
     fun setDescription(description: String): Pointer {
-        return publish(
+        return setCRDTItem(
             ContentType.DESCRIPTION.value,
-            ByteArray(0),
-            null,
-            LWWElement(
-                description.toByteArray(),
-                Date().time
-            ),
-            mutableListOf()
+            description.toByteArray(),
+        )
+    }
+
+    fun setStore(storeLink: String): Pointer {
+        return setCRDTItem(
+            ContentType.STORE.value,
+            storeLink.toByteArray(),
         )
     }
 
     fun setBanner(banner: Pointer): Pointer {
-        return publish(
+        return setCRDTItem(
             ContentType.BANNER.value,
-            ByteArray(0),
-            null,
-            LWWElement(
-                banner.toProto().toByteArray(),
-                Date().time
-            ),
-            mutableListOf()
+            banner.toProto().toByteArray(),
         )
     }
 
     fun setAvatar(avatar: Pointer): Pointer {
-        return publish(
+        return setCRDTItem(
             ContentType.AVATAR.value,
-            ByteArray(0),
-            null,
-            LWWElement(
-                avatar.toProto().toByteArray(),
-                Date().time
-            ),
-            mutableListOf()
+            avatar.toProto().toByteArray(),
         )
     }
 
diff --git a/app/src/main/java/com/futo/polycentric/core/SystemState.kt b/app/src/main/java/com/futo/polycentric/core/SystemState.kt
index f58178442e1269d58bcf5805d79ad953c9d0a93e..b0a453fff20045cd8e20b38fb428291f970cacc2 100644
--- a/app/src/main/java/com/futo/polycentric/core/SystemState.kt
+++ b/app/src/main/java/com/futo/polycentric/core/SystemState.kt
@@ -7,11 +7,12 @@ class SystemState(
     val processes: Array<Process>,
     val username: String,
     val description: String,
+    val store: String,
     val avatar: Pointer?,
     val banner: Pointer?
 ) {
     override fun toString(): String {
-        return "(servers: $servers, processes: $processes, username: $username, description: $description, avatar: $avatar, banner: $banner)";
+        return "(servers: $servers, processes: $processes, username: $username, description: $description, store: $store, avatar: $avatar, banner: $banner)";
     }
 
     companion object {
@@ -25,6 +26,7 @@ class SystemState(
 
             var username = ""
             var description = ""
+            var store = ""
             var avatar: Pointer? = null
             var banner: Pointer? = null
             proto.crdtItems.forEach { item ->
@@ -35,6 +37,9 @@ class SystemState(
                     ContentType.DESCRIPTION.value -> {
                         description = item.value.decodeToString()
                     }
+                    ContentType.STORE.value -> {
+                        store = item.value.decodeToString()
+                    }
                     ContentType.AVATAR.value -> {
                         avatar = Pointer.fromProto(Protocol.Pointer.parseFrom(item.value))
                     }
@@ -44,7 +49,7 @@ class SystemState(
                 }
             }
 
-            return SystemState(servers.toTypedArray(), processes.toTypedArray(), username, description, avatar, banner)
+            return SystemState(servers.toTypedArray(), processes.toTypedArray(), username, description, store, avatar, banner)
         }
     }
-}
\ No newline at end of file
+}