diff --git a/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarSidebar.kt b/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarSidebar.kt
index b87a5d5d83b8701c31c52ac9097af44ec6222b2e..13cddaa33e84c5e98fe1ba0ab9fa5cfff8d4984b 100644
--- a/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarSidebar.kt
+++ b/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarSidebar.kt
@@ -33,7 +33,7 @@ import org.briarproject.briar.desktop.paul.theme.briarBlack
 import org.briarproject.briar.desktop.paul.theme.briarBlue
 
 @Composable
-fun BriarSidebar(uiMode: String, setUiMode: (String) -> Unit) {
+fun BriarSidebar(uiMode: uiModes, setUiMode: (uiModes) -> Unit) {
     Surface(modifier = Modifier.width(56.dp).fillMaxHeight(), color = briarBlue) {
         Column(verticalArrangement = Arrangement.Top) {
             IconButton(
@@ -51,25 +51,25 @@ fun BriarSidebar(uiMode: String, setUiMode: (String) -> Unit) {
             BriarSidebarButton(
                 uiMode = uiMode,
                 setUiMode = setUiMode,
-                "Contacts",
+                uiModes.Contacts,
                 Icons.Filled.Contacts
             )
             BriarSidebarButton(
                 uiMode = uiMode,
                 setUiMode = setUiMode,
-                "Private Groups",
+                uiModes.Groups,
                 Icons.Filled.Group
             )
             BriarSidebarButton(
                 uiMode = uiMode,
                 setUiMode = setUiMode,
-                "Forums",
+                uiModes.Forums,
                 Icons.Filled.Forum
             )
             BriarSidebarButton(
                 uiMode = uiMode,
                 setUiMode = setUiMode,
-                "Blogs",
+                uiModes.Blogs,
                 Icons.Filled.ChromeReaderMode
             )
         }
@@ -77,19 +77,19 @@ fun BriarSidebar(uiMode: String, setUiMode: (String) -> Unit) {
             BriarSidebarButton(
                 uiMode = uiMode,
                 setUiMode = setUiMode,
-                "Transports",
+                uiModes.Transports,
                 Icons.Filled.WifiTethering
             )
             BriarSidebarButton(
                 uiMode = uiMode,
                 setUiMode = setUiMode,
-                "Settings",
+                uiModes.Settings,
                 Icons.Filled.Settings
             )
             BriarSidebarButton(
                 uiMode = uiMode,
                 setUiMode = setUiMode,
-                "Sign Out",
+                uiModes.SignOut,
                 Icons.Filled.Logout
             )
         }
@@ -97,7 +97,7 @@ fun BriarSidebar(uiMode: String, setUiMode: (String) -> Unit) {
 }
 
 @Composable
-fun BriarSidebarButton(uiMode: String, setUiMode: (String) -> Unit, thisMode: String, icon: ImageVector) {
+fun BriarSidebarButton(uiMode: uiModes, setUiMode: (uiModes) -> Unit, thisMode: uiModes, icon: ImageVector) {
     val bg = if (uiMode == thisMode) briarBlack else briarBlue
     Column {
         IconButton(
@@ -105,7 +105,7 @@ fun BriarSidebarButton(uiMode: String, setUiMode: (String) -> Unit, thisMode: St
                 .padding(vertical = 4.dp, horizontal = 12.dp),
             onClick = { setUiMode(thisMode) }
         ) {
-            Icon(icon, thisMode, tint = Color.White, modifier = Modifier.size(30.dp))
+            Icon(icon, thisMode.toString(), tint = Color.White, modifier = Modifier.size(30.dp))
         }
     }
 }
diff --git a/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarUIStateManager.kt b/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarUIStateManager.kt
index 54b00c4f538fcbf603064504378d8d65208fff14..d38405e52b6d98ac91ceec176e15cb59d6df9a89 100644
--- a/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarUIStateManager.kt
+++ b/src/main/kotlin/org/briarproject/briar/desktop/paul/views/BriarUIStateManager.kt
@@ -19,6 +19,16 @@ import org.briarproject.bramble.api.contact.Contact
 import org.briarproject.briar.desktop.paul.theme.briarBlack
 import org.briarproject.briar.desktop.paul.theme.divider
 
+enum class uiModes {
+    Contacts,
+    Groups,
+    Forums,
+    Blogs,
+    Transports,
+    Settings,
+    SignOut
+}
+
 /*
  * This is the root of the tree, all state is held here and passed down to stateless composables, which render the UI
  * Desktop specific kotlin files are found in briarComposeDesktop (possibly briar-compose-desktop project in the future)
@@ -29,10 +39,12 @@ fun BriarUIStateManager(
     contacts: List<Contact>
 ) {
     // current selected mode, changed using the sidebar buttons
-    val (uiMode, setUiMode) = remember { mutableStateOf("Contacts") }
+    val (uiMode, setUiMode) = remember { mutableStateOf(uiModes.Contacts) }
     // TODO Figure out how to handle accounts with 0 contacts
     // current selected contact
     val (contact, setContact) = remember { mutableStateOf(contact(contacts)) }
+    // current selected private group
+    val (group, setGroup) = remember { mutableStateOf(contact(contacts)) }
     // current selected forum
     val (forum, setForum) = remember { mutableStateOf(0) }
     // current blog state
@@ -46,7 +58,7 @@ fun BriarUIStateManager(
         BriarSidebar(uiMode, setUiMode)
         Divider(color = divider, modifier = Modifier.fillMaxHeight().width(1.dp))
         when (uiMode) {
-            "Contacts" -> if (contact != null) PrivateMessageView(
+            uiModes.Contacts -> if (contact != null) PrivateMessageView(
                 contact,
                 contacts,
                 setContact