diff --git a/.idea/.name b/.idea/.name
deleted file mode 100644
index d2977f17643b9f3c5633d2d202a10818309e62b5..0000000000000000000000000000000000000000
--- a/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-Elixxir dApps SDK Kotlin
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 87661f1a8d2ef94de076d3fbe07df8ea24519988..8df5c6f8c92e611466f8a96b19c77202e159bb24 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -1,20 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="GradleMigrationSettings" migrationVersion="1" />
   <component name="GradleSettings">
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>
         <option name="testRunner" value="GRADLE" />
         <option name="distributionType" value="DEFAULT_WRAPPED" />
         <option name="externalProjectPath" value="$PROJECT_DIR$" />
-        <option name="gradleJvm" value="11" />
         <option name="modules">
           <set>
             <option value="$PROJECT_DIR$" />
-            <option value="$PROJECT_DIR$/app" />
-            <option value="$PROJECT_DIR$/buildSrc" />
             <option value="$PROJECT_DIR$/cmix" />
-            <option value="$PROJECT_DIR$/depconstraints" />
             <option value="$PROJECT_DIR$/xxclient" />
           </set>
         </option>
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7f4cb416c083d265558da75d457237d671..35eb1ddfbbc029bcab630581847471d7f238ec53 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="VcsDirectoryMappings">
-    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+    <mapping directory="" vcs="Git" />
   </component>
 </project>
\ No newline at end of file
diff --git a/app/.gitignore b/app/.gitignore
deleted file mode 100644
index 42afabfd2abebf31384ca7797186a27a4b7dbee8..0000000000000000000000000000000000000000
--- a/app/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
\ No newline at end of file
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
deleted file mode 100644
index f743aa5b102586b6b100fde7f485ca1c59fa940d..0000000000000000000000000000000000000000
--- a/app/build.gradle.kts
+++ /dev/null
@@ -1,52 +0,0 @@
-plugins {
-    id("com.android.library")
-    kotlin("android")
-    kotlin("kapt")
-}
-
-android {
-    compileSdk = Config.COMPILE_SDK
-
-    defaultConfig {
-        minSdk = Config.MIN_SDK
-        targetSdk = Config.TARGET_SDK
-
-        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
-    }
-
-    buildTypes {
-        release {
-            isMinifyEnabled = false
-            proguardFiles(
-                getDefaultProguardFile("proguard-android-optimize.txt"),
-                "proguard-rules.pro"
-            )
-        }
-    }
-    compileOptions {
-        sourceCompatibility = JavaVersion.VERSION_1_8
-        targetCompatibility = JavaVersion.VERSION_1_8
-    }
-    kotlinOptions {
-        jvmTarget = "1.8"
-    }
-}
-
-dependencies {
-    implementation(fileTree(mapOf("include" to listOf("*.jar"), "dir" to "libs")))
-    implementation((project(":cmix")))
-
-    api(platform(project(":depconstraints")))
-    kapt(platform(project(":depconstraints")))
-    androidTestApi(platform(project(":depconstraints")))
-
-    implementation(Libs.CORE_KTX)
-    implementation(Libs.COROUTINES)
-    implementation(Libs.TIMBER)
-
-    testImplementation(Libs.JUNIT)
-    testImplementation(Libs.TRUTH)
-
-    androidTestImplementation(Libs.ESPRESSO_CORE)
-    androidTestImplementation(Libs.EXT_JUNIT)
-}
\ No newline at end of file
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
deleted file mode 100644
index ff59496d81a770a6b7632f753f0e526b5eeffd13..0000000000000000000000000000000000000000
--- a/app/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.kts.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/app/src/androidTest/java/io/elixxir/dapp/ExampleInstrumentedTest.kt b/app/src/androidTest/java/io/elixxir/dapp/ExampleInstrumentedTest.kt
deleted file mode 100644
index ed82cb2247ee0560717445dfbc212c90e28188c7..0000000000000000000000000000000000000000
--- a/app/src/androidTest/java/io/elixxir/dapp/ExampleInstrumentedTest.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-package io.elixxir.dapp
-
-import androidx.test.platform.app.InstrumentationRegistry
-import androidx.test.ext.junit.runners.AndroidJUnit4
-
-import org.junit.Test
-import org.junit.runner.RunWith
-
-import org.junit.Assert.*
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-@RunWith(AndroidJUnit4::class)
-class ExampleInstrumentedTest {
-    @Test
-    fun useAppContext() {
-        // Context of the app under test.
-        val appContext = InstrumentationRegistry.getInstrumentation().targetContext
-        assertEquals("io.elixxir.dapp", appContext.packageName)
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
deleted file mode 100644
index a923d86e3e4f194d0795e71efbb75826bc2cb809..0000000000000000000000000000000000000000
--- a/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    package="io.elixxir.dapp">
-
-    <application
-        android:allowBackup="true"
-        android:dataExtractionRules="@xml/data_extraction_rules"
-        android:fullBackupContent="@xml/backup_rules"
-        android:icon="@mipmap/ic_launcher"
-        android:roundIcon="@mipmap/ic_launcher_round"
-        android:supportsRtl="true"
-        tools:targetApi="31" />
-
-</manifest>
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/DappModule.kt b/app/src/main/java/io/elixxir/dapp/DappModule.kt
deleted file mode 100644
index 392a4e138c8801fd4a8fbcf560c172b3b14cbd24..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/DappModule.kt
+++ /dev/null
@@ -1,43 +0,0 @@
-package io.elixxir.dapp
-
-import io.elixxir.dapp.android.model.AndroidConfig
-import io.elixxir.dapp.api.model.*
-import io.elixxir.dapp.logger.data.Logger
-import io.elixxir.dapp.api.model.CommonProperties
-import io.elixxir.dapp.api.model.DappConfig
-
-/**
- * Singleton entry point to modules provided by the dApp SDK.
- */
-class DappModule private constructor(
-    config: DappConfig,
-    logger: Logger = Logger.newInstance(config.loggerConfig)
-) : DappApi,
-    AndroidConfig by config.androidConfig,
-    Logger by logger,
-    CommonProperties
-{
-    override val accountApi: AccountApi
-        get() = TODO("Not yet implemented")
-    override val directoryApi: DirectoryApi
-        get() = TODO("Not yet implemented")
-    override val messagesApi: MessagesApi
-        get() = TODO("Not yet implemented")
-    override val networkApi: NetworkApi
-        get() = TODO("Not yet implemented")
-    override val requestsApi: RequestsApi
-        get() = TODO("Not yet implemented")
-    override val groupsApi: GroupsApi
-        get() = TODO("Not yet implemented")
-
-    companion object {
-        @Volatile
-        private var instance: DappModule? = null
-
-        fun getInstance(config: DappConfig): DappModule {
-            return instance ?: DappModule(config).apply {
-                instance = this
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/android/data/DefaultAndroidConfig.kt b/app/src/main/java/io/elixxir/dapp/android/data/DefaultAndroidConfig.kt
deleted file mode 100644
index 62a36d55c9c6ac48014a0bb470a8dc78b530ac2b..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/android/data/DefaultAndroidConfig.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package io.elixxir.dapp.android.data
-
-import android.content.Context
-import io.elixxir.dapp.android.model.AndroidConfig
-import kotlinx.coroutines.CoroutineDispatcher
-import kotlinx.coroutines.Dispatchers
-
-data class DefaultAndroidConfig(
-    override val context: () -> Context,
-    override val dispatcher: CoroutineDispatcher = Dispatchers.IO,
-) : AndroidConfig
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/android/model/AndroidConfig.kt b/app/src/main/java/io/elixxir/dapp/android/model/AndroidConfig.kt
deleted file mode 100644
index e31adddda82f68e0d92abac2931cf8587ff907f4..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/android/model/AndroidConfig.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package io.elixxir.dapp.android.model
-
-import android.content.Context
-import kotlinx.coroutines.CoroutineDispatcher
-
-/**
- * Android-specific properties used at runtime.
- */
-interface AndroidConfig {
-    val context: () -> Context
-    val dispatcher: CoroutineDispatcher
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/api/data/AccountModule.kt b/app/src/main/java/io/elixxir/dapp/api/data/AccountModule.kt
deleted file mode 100644
index b6e0c2ada41f78220bb78f7fe29ea30cf5e3acd0..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/api/data/AccountModule.kt
+++ /dev/null
@@ -1,42 +0,0 @@
-package io.elixxir.dapp.api.data
-
-import io.elixxir.dapp.api.model.AccountApi
-import io.elixxir.dapp.backup.model.Backup
-import io.elixxir.dapp.session.repository.SessionDataSource
-import io.elixxir.dapp.user.model.User
-import io.elixxir.dapp.user.model.UserUpdateData
-import kotlinx.coroutines.*
-
-internal class AccountModule(
-    private val sessionManager: SessionDataSource
-) : AccountApi {
-    private val scope: CoroutineScope = CoroutineScope(
-        CoroutineName("AccountModule")
-                + Job()
-                + Dispatchers.Default
-    )
-
-    override fun getCurrentUser(): User {
-        TODO("Not yet implemented")
-    }
-
-    override fun createAccount(username: String) {
-        scope.launch {
-            sessionManager.createSession()
-        }
-    }
-
-    override fun restoreAccount(backup: Backup) {
-        TODO("Not yet implemented")
-    }
-
-    override fun updateAccount(updateData: UserUpdateData) {
-        TODO("Not yet implemented")
-    }
-
-    override fun deleteAccount() {
-        scope.launch {
-            sessionManager.deleteSession()
-        }
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/api/data/NetworkModule.kt b/app/src/main/java/io/elixxir/dapp/api/data/NetworkModule.kt
deleted file mode 100644
index 7a0e356035c5ffe383f84e43874074fc274b17f3..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/api/data/NetworkModule.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-package io.elixxir.dapp.api.data
-
-import io.elixxir.dapp.api.model.NetworkApi
-import io.elixxir.dapp.network.model.ConnectionStatus
-import io.elixxir.dapp.network.data.NetworkManager
-import kotlinx.coroutines.CoroutineName
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.Job
-import kotlinx.coroutines.flow.Flow
-
-internal class NetworkModule(
-    private val networkManager: NetworkManager
-) : NetworkApi {
-    private val scope: CoroutineScope = CoroutineScope(
-        CoroutineName("AccountModule")
-                + Job()
-                + Dispatchers.Default
-    )
-
-    override val connectionStatus: Flow<ConnectionStatus> by networkManager::connectionStatus
-
-    override fun connect(): Result<ConnectionStatus> {
-        TODO("Not yet implemented")
-    }
-
-    override fun disconnect(): Result<ConnectionStatus> {
-        TODO("Not yet implemented")
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/api/model/AccountApi.kt b/app/src/main/java/io/elixxir/dapp/api/model/AccountApi.kt
deleted file mode 100644
index 8b231f83ef9ddeb4aefe7a63f7b9266d938f93e2..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/api/model/AccountApi.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-package io.elixxir.dapp.api.model
-
-import io.elixxir.dapp.backup.model.Backup
-import io.elixxir.dapp.user.model.User
-import io.elixxir.dapp.user.model.UserUpdateData
-
-interface AccountApi {
-    fun getCurrentUser(): User
-    fun createAccount(username: String)
-    fun restoreAccount(backup: Backup)
-    fun updateAccount(updateData: UserUpdateData)
-    fun deleteAccount()
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/api/model/CommonProperties.kt b/app/src/main/java/io/elixxir/dapp/api/model/CommonProperties.kt
deleted file mode 100644
index ced9abdb6078976c3d4b926ced42177f47fbb6a4..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/api/model/CommonProperties.kt
+++ /dev/null
@@ -1,6 +0,0 @@
-package io.elixxir.dapp.api.model
-
-import io.elixxir.dapp.android.model.AndroidConfig
-import io.elixxir.dapp.logger.data.Logger
-
-internal interface CommonProperties : Logger, AndroidConfig
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/api/model/DappApi.kt b/app/src/main/java/io/elixxir/dapp/api/model/DappApi.kt
deleted file mode 100644
index e6998cad67d8104c89cf580211247446c419ebc8..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/api/model/DappApi.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package io.elixxir.dapp.api.model
-
-interface DappApi {
-    val accountApi: AccountApi
-    val directoryApi: DirectoryApi
-    val messagesApi: MessagesApi
-    val networkApi: NetworkApi
-    val requestsApi: RequestsApi
-    val groupsApi: GroupsApi
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/api/model/DappConfig.kt b/app/src/main/java/io/elixxir/dapp/api/model/DappConfig.kt
deleted file mode 100644
index 6b56f69920fb0acda678828b3e76e654f6004b46..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/api/model/DappConfig.kt
+++ /dev/null
@@ -1,15 +0,0 @@
-package io.elixxir.dapp.api.model
-
-import io.elixxir.dapp.android.model.AndroidConfig
-import io.elixxir.dapp.logger.model.LoggerConfig
-import io.elixxir.dapp.network.model.NetworkConfig
-
-/**
- * Describes configurable options, and satisfies dependencies for,
- * modules exposed by the dApps Kotlin SDK.
- */
-interface DappConfig {
-    val androidConfig: AndroidConfig
-    val loggerConfig: LoggerConfig
-    val networkConfig: NetworkConfig
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/api/model/DirectoryApi.kt b/app/src/main/java/io/elixxir/dapp/api/model/DirectoryApi.kt
deleted file mode 100644
index 6ff493985951db5c1b246c0e1d6ecdad4e079dcf..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/api/model/DirectoryApi.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package io.elixxir.dapp.api.model
-
-import io.elixxir.dapp.user.model.User
-import io.elixxir.dapp.user.model.UserQuery
-
-interface DirectoryApi {
-    fun getContacts(): List<User>
-    fun findUser(params: UserQuery): User?
-    fun blockUser(user: User)
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/api/model/GroupsApi.kt b/app/src/main/java/io/elixxir/dapp/api/model/GroupsApi.kt
deleted file mode 100644
index 8cbccf2ab4afc5fa70f24307cbfdeef64ef5a5a7..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/api/model/GroupsApi.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-package io.elixxir.dapp.api.model
-
-import io.elixxir.dapp.group.model.Group
-import io.elixxir.dapp.messaging.model.Message
-import io.elixxir.dapp.user.model.User
-import kotlinx.coroutines.flow.Flow
-
-interface GroupsApi {
-    val groupMessages: Flow<Message>
-    fun sendInvitation(group: Group)
-    fun resendInvitation(member: User)
-    fun joinGroup(group: Group)
-    fun leaveGroup(group: Group)
-    fun sendMessage(message: Message, group: Group)
-    fun retryMessage(message: Message, group: Group)
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/api/model/MessagesApi.kt b/app/src/main/java/io/elixxir/dapp/api/model/MessagesApi.kt
deleted file mode 100644
index 0e7c76b6c46aefc635dc87eac9cbdcb462296cf3..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/api/model/MessagesApi.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package io.elixxir.dapp.api.model
-
-import io.elixxir.dapp.messaging.model.Message
-import io.elixxir.dapp.user.model.User
-import kotlinx.coroutines.flow.Flow
-
-interface MessagesApi {
-    val messages: Flow<Message>
-    fun sendMessage(message: Message, recipient: User)
-    fun retryMessage(message: Message, recipient: User)
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/api/model/NetworkApi.kt b/app/src/main/java/io/elixxir/dapp/api/model/NetworkApi.kt
deleted file mode 100644
index 7313681e02fa1b707a261648a85efbe5ff1545e2..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/api/model/NetworkApi.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package io.elixxir.dapp.api.model
-
-import io.elixxir.dapp.network.model.ConnectionStatus
-import kotlinx.coroutines.flow.Flow
-
-interface NetworkApi {
-    val connectionStatus: Flow<ConnectionStatus>
-    fun connect(): Result<ConnectionStatus>
-    fun disconnect(): Result<ConnectionStatus>
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/api/model/RequestsApi.kt b/app/src/main/java/io/elixxir/dapp/api/model/RequestsApi.kt
deleted file mode 100644
index 154bc8b86fe01b0ca7031e88ccb3224094b9ad47..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/api/model/RequestsApi.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-package io.elixxir.dapp.api.model
-
-import io.elixxir.dapp.request.model.IncomingRequest
-import io.elixxir.dapp.request.model.Request
-import io.elixxir.dapp.request.model.OutgoingRequest
-import kotlinx.coroutines.flow.Flow
-
-interface RequestsApi {
-    val requests: Flow<Request>
-    fun sendRequest(request: OutgoingRequest)
-    fun acceptRequest(request: IncomingRequest)
-    fun retryRequest(request: Request)
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/api/model/RetryStrategy.kt b/app/src/main/java/io/elixxir/dapp/api/model/RetryStrategy.kt
deleted file mode 100644
index 91fa23967c74f6af58bf657c8aa01ba5257d03f4..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/api/model/RetryStrategy.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-package io.elixxir.dapp.api.model
-
-interface RetryStrategy {
-    val maxRetries: Int
-    val retryDelayMs: Long
-}
-
-/**
- * Remote data that is critical to the function of the SDK.
- * Generally means many retries and reasonable delay to not
- * overwhelm network resources.
- */
-data class CriticalRemoteDataStrategy(
-    override val maxRetries: Int = 29,
-    override val retryDelayMs: Long = 1000L
-) : RetryStrategy
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/backup/model/Backup.kt b/app/src/main/java/io/elixxir/dapp/backup/model/Backup.kt
deleted file mode 100644
index 72bd8329420d7c2489fd5324f58cf9d1e776eb48..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/backup/model/Backup.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.backup.model
-
-interface Backup {
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/AuthEventListener.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/AuthEventListener.kt
deleted file mode 100644
index 4eca68a8c98c453bff18b1d3f8a00209e5f1d5a2..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/AuthEventListener.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-import bindings.AuthCallbacks
-
-interface AuthEventListener {
-    fun onConfirm(var1: ByteArray?, var2: ByteArray?, var3: Long, var5: Long)
-
-    fun onRequest(var1: ByteArray?, var2: ByteArray?, var3: Long, var5: Long)
-
-    fun onReset(var1: ByteArray?, var2: ByteArray?, var3: Long, var5: Long)
-}
-
-@JvmInline
-internal value class AuthCallbacksAdapter(val value: AuthCallbacks)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/Backup.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/Backup.kt
deleted file mode 100644
index 547cebe85f6d67b8b96a3e2a9e0e1d9529b474d1..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/Backup.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-internal interface Backup {
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/BackupAdapter.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/BackupAdapter.kt
deleted file mode 100644
index 2a3af5d63808070f60609eeb22f604cdfa429401..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/BackupAdapter.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-@JvmInline
-internal value class BackupAdapter(val backup: bindings.Backup) : Backup
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/Bindings.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/Bindings.kt
deleted file mode 100644
index 6083e320e48cde159bdaeae4d771a6ed8e98c677..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/Bindings.kt
+++ /dev/null
@@ -1,68 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-import io.elixxir.dapp.bindings.model.*
-import io.elixxir.dapp.bindings.model.E2eParams
-import io.elixxir.dapp.logger.model.LoggerConfig
-import io.elixxir.dapp.network.repository.Ndf
-import io.elixxir.dapp.session.model.SessionPassword
-
-internal interface Bindings {
-    val defaultE2eParams: E2eParams
-    val defaultCmixParams: CmixParams
-    val defaultFileTransferParams: FileTransferParams
-    val gitVersion: String
-
-    fun generateSecret(byteLength: Long): SessionPassword
-
-    fun loadCmix(
-        sessionFileDirectory: String,
-        sessionPassword: SessionPassword,
-        cmixParams: CmixParams
-    ): Cmix
-
-    fun login(
-        cmixId: CmixId,
-        authCallbacks: AuthCallbacksAdapter,
-        receptionIdentity: ReceptionIdentity,
-        e2eParams: E2eParams
-    ): E2e
-
-    fun getOrCreateUd(
-        e2eId: E2eId,
-        networkFollowerStatus: NetworkFollowerStatus,
-        username: String,
-        signature: RegistrationValidationSignature,
-        udCert: UdCertificate,
-        contact: Contact,
-        udIpAddress: UdIpAddress
-    ): UserDiscovery
-
-    fun newUdFromBackup(
-        e2eId: E2eId,
-        networkFollowerStatus: NetworkFollowerStatus,
-        emailFact: Fact,
-        phoneFact: Fact,
-        udCert: UdCertificate,
-        contact: Contact,
-        udAddress: UdIpAddress
-    ): UserDiscovery
-
-    fun newDummyTrafficManager(): DummyTrafficManager
-
-    fun registerLogger(loggerConfig: LoggerConfig)
-
-    fun initializeBackup(): Backup
-
-    fun resumeBackup(): Backup
-
-    fun fetchSignedNdf(
-        url: String,
-        cert: String
-    ): Ndf
-
-    fun getReceptionIdentity(
-        key: SessionPassword,
-        cmixId: CmixId
-    ): ReceptionIdentity
-}
-
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/BindingsAdapter.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/BindingsAdapter.kt
deleted file mode 100644
index 3cdfe670515414b94a50af68e78a97be7cd879b7..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/BindingsAdapter.kt
+++ /dev/null
@@ -1,140 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-import io.elixxir.dapp.bindings.model.*
-import io.elixxir.dapp.bindings.model.E2eParams
-import io.elixxir.dapp.bindings.model.ReceptionIdentity
-import io.elixxir.dapp.logger.model.LoggerConfig
-import io.elixxir.dapp.network.repository.Ndf
-import io.elixxir.dapp.session.model.SessionPassword
-import io.elixxir.dapp.util.toBase64String
-import bindings.Bindings as CoreBindings
-
-internal class BindingsAdapter: Bindings {
-    override val defaultE2eParams: E2eParams
-        get() = E2eParams(CoreBindings.getDefaultE2EParams())
-    override val defaultCmixParams: CmixParams
-        get() = CmixParams(CoreBindings.getDefaultCMixParams())
-    override val defaultFileTransferParams: FileTransferParams
-        get() = FileTransferParams(CoreBindings.getDefaultFileTransferParams())
-    override val gitVersion: String
-        get() = CoreBindings.getGitVersion()
-
-    override fun generateSecret(byteLength: Long): SessionPassword {
-        return SessionPassword(CoreBindings.generateSecret(byteLength))
-    }
-
-    override fun loadCmix(
-        sessionFileDirectory: String,
-        sessionPassword: SessionPassword,
-        cmixParams: CmixParams
-    ): Cmix {
-        return CmixAdapter(
-            CoreBindings.loadCmix(
-                sessionFileDirectory,
-                sessionPassword.value,
-                cmixParams.value
-            )
-        )
-    }
-
-    override fun login(
-        cmixId: CmixId,
-        authCallbacks: AuthCallbacksAdapter,
-        receptionIdentity: ReceptionIdentity,
-        e2eParams: E2eParams
-    ): E2e {
-        // TODO: Use factory method to get E2E implementation
-        return E2eAdapter(
-            CoreBindings.login(
-                cmixId.value,
-                authCallbacks.value,
-                receptionIdentity.value,
-                e2eParams.value
-            )
-        )
-    }
-
-    override fun getOrCreateUd(
-        e2eId: E2eId,
-        networkFollowerStatus: NetworkFollowerStatus,
-        username: String,
-        signature: RegistrationValidationSignature,
-        udCert: UdCertificate,
-        contact: Contact,
-        udIpAddress: UdIpAddress
-    ): UserDiscovery {
-        // TODO: Use factory method to get UD implementation
-        return UserDiscoveryAdapter(
-            CoreBindings.newOrLoadUd(
-                e2eId.value,
-                { networkFollowerStatus.code },
-                username,
-                signature.value,
-                udCert.value,
-                contact.value,
-                udIpAddress.value
-            )
-        )
-    }
-
-    override fun newUdFromBackup(
-        e2eId: E2eId,
-        networkFollowerStatus: NetworkFollowerStatus,
-        emailFact: Fact,
-        phoneFact: Fact,
-        udCert: UdCertificate,
-        contact: Contact,
-        udIpAddress: UdIpAddress
-    ): UserDiscovery {
-        // TODO: Use factory method to get UD implementation
-        return UserDiscoveryAdapter(
-            CoreBindings.newUdManagerFromBackup(
-                e2eId.value,
-                { networkFollowerStatus.code },
-                emailFact.value,
-                phoneFact.value,
-                udCert.value,
-                contact.value,
-                udIpAddress.value
-            )
-        )
-    }
-
-    override fun newDummyTrafficManager(): DummyTrafficManager {
-        TODO("Not yet implemented")
-    }
-
-    override fun registerLogger(loggerConfig: LoggerConfig) {
-        with (loggerConfig) {
-            CoreBindings.logLevel(logLevel.code)
-            CoreBindings.registerLogWriter(logWriter)
-        }
-    }
-
-    override fun initializeBackup(): Backup {
-        TODO("Not yet implemented")
-    }
-
-    override fun resumeBackup(): Backup {
-        TODO("Not yet implemented")
-    }
-
-    override fun fetchSignedNdf(
-        url: String,
-        cert: String
-    ): Ndf {
-        return CoreBindings.downloadAndVerifySignedNdfWithUrl(url, cert).toBase64String()
-    }
-
-    override fun getReceptionIdentity(
-        key: SessionPassword,
-        cmixId: CmixId
-    ): ReceptionIdentity {
-        return ReceptionIdentity(
-            CoreBindings.loadReceptionIdentity(
-                key.value.toBase64String(),
-                cmixId.value
-            )
-        )
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/Cmix.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/Cmix.kt
deleted file mode 100644
index ef91c1f5b20cf25aeb691f2a3826d611cb664be9..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/Cmix.kt
+++ /dev/null
@@ -1,31 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-import io.elixxir.dapp.bindings.model.*
-import io.elixxir.dapp.bindings.model.Contact
-import io.elixxir.dapp.bindings.model.E2eId
-import io.elixxir.dapp.bindings.model.NetworkFollowerStatus
-
-internal interface Cmix {
-    fun connect(
-        e2eId: E2eId,
-        recipientContact: Contact,
-        e2eParams: E2eParams
-    ): Connection
-
-    fun startNetworkFollower(timeoutMs: Long)
-
-    fun stopNetworkFollower()
-
-    fun isNetworkHealthy(): Boolean
-
-    fun registerHealthListener(listener: NetworkHealthListener): HealthListenerId
-
-    fun unregisterHealthListener(id: HealthListenerId)
-
-    fun getNodeRegistrationStatus(): NodeRegistrationStatus
-
-    fun makeReceptionIdentity(): ReceptionIdentity
-
-    fun getNetworkFollowerStatus(): NetworkFollowerStatus
-}
-
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/CmixAdapter.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/CmixAdapter.kt
deleted file mode 100644
index 7c7203b420eee201f6b19c9062adf296b788f253..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/CmixAdapter.kt
+++ /dev/null
@@ -1,62 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-import io.elixxir.dapp.bindings.model.*
-import io.elixxir.dapp.bindings.model.Connection
-import io.elixxir.dapp.bindings.model.Contact
-import io.elixxir.dapp.bindings.model.E2eId
-import io.elixxir.dapp.bindings.model.E2eParams
-import io.elixxir.dapp.bindings.model.NetworkFollowerStatus
-import bindings.Cmix as CoreCmix
-
-@JvmInline
-internal value class CmixAdapter(private val cmix: CoreCmix) : Cmix {
-
-    override fun connect(
-        e2eId: E2eId,
-        recipientContact: Contact,
-        e2eParams: E2eParams
-    ): Connection {
-        // TODO: Use factory method to get Connection implementation
-        return ConnectionAdapter(
-            cmix.connect(
-                e2eId.value,
-                recipientContact.value,
-                e2eParams.value
-            )
-        )
-    }
-
-    override fun startNetworkFollower(timeoutMs: Long) {
-        cmix.startNetworkFollower(timeoutMs)
-    }
-
-    override fun stopNetworkFollower() {
-        cmix.stopNetworkFollower()
-    }
-
-    override fun isNetworkHealthy(): Boolean {
-        return cmix.isHealthy
-    }
-
-    override fun registerHealthListener(listener: NetworkHealthListener): HealthListenerId {
-        return HealthListenerId(
-            cmix.addHealthCallback(HealthCallbackAdapter.placeholder)
-        )
-    }
-
-    override fun unregisterHealthListener(id: HealthListenerId) {
-        cmix.removeHealthCallback(id.value)
-    }
-
-    override fun getNodeRegistrationStatus(): NodeRegistrationStatus {
-        return NodeRegistrationStatus(cmix.nodeRegistrationStatus)
-    }
-
-    override fun makeReceptionIdentity(): ReceptionIdentity {
-        return ReceptionIdentity(cmix.makeReceptionIdentity())
-    }
-
-    override fun getNetworkFollowerStatus(): NetworkFollowerStatus {
-        return NetworkFollowerStatus.from(cmix.networkFollowerStatus())
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/DummyTrafficManager.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/DummyTrafficManager.kt
deleted file mode 100644
index 4939e23eafb11a2ecfdbc0cef9f848f02b735392..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/DummyTrafficManager.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-interface DummyTrafficManager {
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/E2e.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/E2e.kt
deleted file mode 100644
index ce271d3af252c4e1e45d76a9b8edae8c2d85ceed..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/E2e.kt
+++ /dev/null
@@ -1,49 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-import io.elixxir.dapp.bindings.model.*
-import io.elixxir.dapp.bindings.model.E2eParams
-import io.elixxir.dapp.bindings.model.ReceptionIdentity
-import io.elixxir.dapp.user.model.UserId
-
-internal interface E2e {
-    val payloadSize: Long
-
-    fun getReceptionId(): ReceptionIdentity
-    fun getContact(): Contact
-    fun callAllReceivedRequests()
-    fun confirmRequest(userId: UserId)
-    fun deleteAllRequests()
-    fun deleteRequest(request: Request)
-    fun deleteSentRequests()
-
-    fun getAllPartnerIds(): PartnersList
-
-    fun hasAuthenticatedChannel(contact: Contact): Boolean
-
-    fun registerListener(
-        senderId: UserId,
-        messageType: MessageType,
-        e2eListener: E2eListener
-    )
-
-    fun reset(contact: Contact): RoundId
-
-    fun sendRequest(
-        contact: Contact,
-        myFactsList: FactsList
-    ): RoundId
-
-    fun verifyOwnership(
-        receivedUserId: UserId,
-        verifiedContact: Contact,
-        e2eHandler: E2eHandler
-    ): Boolean
-
-    fun sendE2e(
-        messageType: MessageType,
-        receiverId: UserId,
-        payload: Payload,
-        params: E2eParams
-    ): SendReport
-}
-
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/E2eAdapter.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/E2eAdapter.kt
deleted file mode 100644
index 588f8e95c68c54335da1ea389459fa8cab67f9e6..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/E2eAdapter.kt
+++ /dev/null
@@ -1,104 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-import io.elixxir.dapp.bindings.model.*
-import io.elixxir.dapp.bindings.model.E2eParams
-import io.elixxir.dapp.bindings.model.ReceptionIdentity
-import bindings.E2e as CoreE2e
-import io.elixxir.dapp.user.model.UserId
-
-@JvmInline
-internal value class E2eAdapter(private val e2e: CoreE2e) : E2e {
-    override val payloadSize: Long
-        get() = e2e.payloadSize()
-
-    override fun getReceptionId(): ReceptionIdentity {
-        return ReceptionIdentity(e2e.receptionID)
-    }
-
-    override fun getContact(): Contact {
-        return Contact(e2e.contact)
-    }
-
-    override fun callAllReceivedRequests() {
-        e2e.callAllReceivedRequests()
-    }
-
-    override fun confirmRequest(userId: UserId) {
-        e2e.confirm(userId.value)
-    }
-
-    override fun deleteAllRequests() {
-        e2e.deleteAllRequests()
-    }
-
-    override fun deleteRequest(request: Request) {
-        e2e.deleteRequest(request.value)
-    }
-
-    override fun deleteSentRequests() {
-        e2e.deleteSentRequests()
-    }
-
-    override fun getAllPartnerIds(): PartnersList {
-        return PartnersList(e2e.allPartnerIDs)
-    }
-
-    override fun hasAuthenticatedChannel(contact: Contact): Boolean {
-        return e2e.hasAuthenticatedChannel(contact.value)
-    }
-
-    override fun registerListener(
-        senderId: UserId,
-        messageType: MessageType,
-        e2eListener: E2eListener
-    ) {
-        e2e.registerListener(
-            senderId.value,
-            messageType.code,
-            e2eListener
-        )
-    }
-
-    override fun reset(contact: Contact): RoundId {
-        return RoundId(
-            e2e.reset(contact.value)
-        )
-    }
-
-    override fun sendRequest(
-        contact: Contact,
-        myFactsList: FactsList
-    ): RoundId {
-        return RoundId(
-            e2e.request(contact.value, myFactsList.value)
-        )
-    }
-
-    override fun verifyOwnership(
-        receivedUserId: UserId,
-        verifiedContact: Contact,
-        e2eHandler: E2eHandler
-    ): Boolean {
-        return e2e.verifyOwnership(
-            receivedUserId.value,
-            verifiedContact.value,
-            e2eHandler.value
-        )
-    }
-
-    override fun sendE2e(
-        messageType: MessageType,
-        receiverId: UserId,
-        payload: Payload,
-        params: E2eParams
-    ): SendReport {
-        return SendReport(
-            e2e.sendE2E(
-                messageType.code,
-                receiverId.value,
-                payload.value,
-                params.value
-            )
-        )
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/GroupChat.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/GroupChat.kt
deleted file mode 100644
index ff2d4d85dc13963b169eca4d310649f2f3daa343..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/GroupChat.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-import io.elixxir.dapp.bindings.model.GroupInfo
-import io.elixxir.dapp.bindings.model.GroupReport
-import io.elixxir.dapp.group.model.Group
-import io.elixxir.dapp.group.model.GroupId
-
-internal interface GroupChat {
-    fun getGroup(groupId: GroupId): Group
-    fun joinGroup(trackedGroupId: Long)
-    fun leaveGroup(groupId: GroupId)
-    fun makeGroup(info: GroupInfo): GroupReport
-    fun resendInvitations(group: Group): GroupReport
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/GroupChatAdapter.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/GroupChatAdapter.kt
deleted file mode 100644
index 277bc79934ddb01b67f6d5fcafd91a4b67483845..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/GroupChatAdapter.kt
+++ /dev/null
@@ -1,37 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-import io.elixxir.dapp.bindings.model.GroupAdapter
-import io.elixxir.dapp.bindings.model.GroupInfo
-import io.elixxir.dapp.bindings.model.GroupReport
-import io.elixxir.dapp.group.model.Group
-import io.elixxir.dapp.group.model.GroupId
-import bindings.GroupChat as CoreGroupChat
-
-internal class GroupChatAdapter(private val groupChat: CoreGroupChat) : GroupChat {
-    override fun getGroup(groupId: GroupId): Group {
-         return GroupAdapter(groupChat.getGroup(groupId.value))
-    }
-
-    override fun joinGroup(trackedGroupId: Long) {
-        groupChat.joinGroup(trackedGroupId)
-    }
-
-    override fun leaveGroup(groupId: GroupId) {
-        groupChat.leaveGroup(groupId.value)
-    }
-
-    override fun makeGroup(info: GroupInfo): GroupReport {
-        return GroupReport(
-            groupChat.makeGroup(
-                info.membershipData.value,
-                info.description.toByteArray(),
-                info.name.toByteArray())
-        )
-    }
-
-    override fun resendInvitations(group: Group): GroupReport {
-        return GroupReport(
-            groupChat.resendRequest(group.groupId.value)
-        )
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/UdListener.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/UdListener.kt
deleted file mode 100644
index 5a5132de556ea0fca521f2d32b9921922e29a81d..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/UdListener.kt
+++ /dev/null
@@ -1,35 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-import io.elixxir.dapp.bindings.model.Contact
-
-internal interface UdListener {
-    val onComplete: (Contact?, Exception?) -> Unit
-}
-
-internal class UdSearchResultListener(
-    private val listener: UdListener
-) : bindings.UdSearchCallback,
-    bindings.UdLookupCallback,
-    UdListener by listener
-{
-
-    override fun callback(
-        contactData: ByteArray?,
-        error: java.lang.Exception?
-    ) {
-        onComplete(
-            Contact(contactData ?: byteArrayOf()),
-            error
-        )
-    }
-
-    companion object {
-        val placeholder: UdSearchResultListener =
-            UdSearchResultListener(
-                object : UdListener {
-                    override val onComplete: (Contact?, Exception?) -> Unit
-                            = { _, _, -> }
-                }
-            )
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/UserDiscovery.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/UserDiscovery.kt
deleted file mode 100644
index 124a9bb25130f0e64f3d1bc8cc1f5a60a85a5138..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/UserDiscovery.kt
+++ /dev/null
@@ -1,38 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-import io.elixxir.dapp.bindings.model.ConfirmationCode
-import io.elixxir.dapp.bindings.model.ConfirmationId
-import io.elixxir.dapp.bindings.model.Contact
-import io.elixxir.dapp.bindings.model.FactsList
-import io.elixxir.dapp.user.model.UserId
-
-internal interface UserDiscovery {
-    fun getContact(): Contact
-
-    fun getFacts(): FactsList
-
-    fun registerUsername(username: String)
-
-    fun registerEmail(email: String): ConfirmationId
-
-    fun registerPhone(phone: String): ConfirmationId
-
-    fun confirmTwoFactorAuth(
-        confirmationId: ConfirmationId,
-        confirmationCode: ConfirmationCode
-    )
-
-    fun removeEmail()
-
-    fun removePhone()
-
-    fun deleteUser()
-
-    fun findUserById(userId: UserId): Result<Contact>
-
-    fun usernameSearch(username: String): Result<Contact>
-
-    fun phoneSearch(phone: String): Result<Contact>
-
-    fun emailSearch(email: String): Result<Contact>
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/data/UserDiscoveryAdapter.kt b/app/src/main/java/io/elixxir/dapp/bindings/data/UserDiscoveryAdapter.kt
deleted file mode 100644
index 9b1161b1a18f3c94af299ef92649e38d98006382..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/data/UserDiscoveryAdapter.kt
+++ /dev/null
@@ -1,103 +0,0 @@
-package io.elixxir.dapp.bindings.data
-
-import bindings.Bindings
-import io.elixxir.dapp.bindings.model.*
-import io.elixxir.dapp.bindings.model.Contact
-import io.elixxir.dapp.bindings.model.Fact
-import io.elixxir.dapp.bindings.model.FactsList
-import io.elixxir.dapp.user.model.UserId
-import bindings.UserDiscovery as CoreUserDiscovery
-
-@JvmInline
-internal value class UserDiscoveryAdapter(private val ud: CoreUserDiscovery) : UserDiscovery {
-
-    override fun getContact(): Contact {
-        return Contact(ud.contact)
-    }
-
-    override fun getFacts(): FactsList {
-        return FactsList(ud.facts)
-    }
-
-    override fun registerUsername(username: String) {
-        TODO("Not yet implemented")
-    }
-
-    override fun registerEmail(email: String): ConfirmationId{
-        return ConfirmationId(
-            ud.sendRegisterFact(Fact.placeholder)
-        )
-    }
-
-    override fun registerPhone(phone: String): ConfirmationId {
-        return ConfirmationId(
-            ud.sendRegisterFact(Fact.placeholder)
-        )
-    }
-
-    override fun confirmTwoFactorAuth(
-        confirmationId: ConfirmationId,
-        confirmationCode: ConfirmationCode
-    ) {
-        ud.confirmFact(
-            confirmationId.value,
-            confirmationCode.value
-        )
-    }
-
-    override fun removeEmail() {
-        ud.removeFact(Fact.placeholder)
-    }
-
-    override fun removePhone() {
-        ud.removeFact(Fact.placeholder)
-    }
-
-    override fun deleteUser() {
-        ud.permanentDeleteAccount(ud.contact)
-    }
-
-    override fun findUserById(userId: UserId): Result<Contact> {
-        Bindings.lookupUD(
-            E2eId.placeholder,
-            userId.value,
-            UdSearchResultListener.placeholder,
-            LookupId.placeholder,
-            SearchParams.placeholder
-        )
-        return Result.success(Contact(byteArrayOf()))
-    }
-
-    override fun usernameSearch(username: String): Result<Contact> {
-        Bindings.searchUD(
-            E2eId.placeholder,
-            Contact.placeholder,
-            UdSearchResultListener.placeholder,
-            FactsList.placeholder,
-            SearchParams.placeholder,
-        )
-        return Result.success(Contact(byteArrayOf()))
-    }
-
-    override fun phoneSearch(phone: String): Result<Contact> {
-        Bindings.searchUD(
-            E2eId.placeholder,
-            Contact.placeholder,
-            UdSearchResultListener.placeholder,
-            FactsList.placeholder,
-            SearchParams.placeholder,
-        )
-        return Result.success(Contact(byteArrayOf()))
-    }
-
-    override fun emailSearch(email: String): Result<Contact> {
-        Bindings.searchUD(
-            E2eId.placeholder,
-            Contact.placeholder,
-            UdSearchResultListener.placeholder,
-            FactsList.placeholder,
-            SearchParams.placeholder,
-        )
-        return Result.success(Contact(byteArrayOf()))
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/AuthenticatedConnection.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/AuthenticatedConnection.kt
deleted file mode 100644
index 72b5c6ae5e9791c035fa9e11b4260836416aa066..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/AuthenticatedConnection.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-internal interface AuthenticatedConnection : Connection {
-    fun isAuthenticated()
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/CmixId.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/CmixId.kt
deleted file mode 100644
index 4978a8f2da2e36bf6d08590829bed89fd01248a0..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/CmixId.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-value class CmixId(val value: Long) {
-
-    companion object {
-        val placeholder: Long = 0
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/CmixParams.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/CmixParams.kt
deleted file mode 100644
index 9667fd5b108437f3b42c14ba256694d1149ce8a0..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/CmixParams.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-value class CmixParams(val value: ByteArray) {
-
-    companion object {
-        val placeholder = byteArrayOf()
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/ConfirmationCode.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/ConfirmationCode.kt
deleted file mode 100644
index 1ba08f6e9674a1fe1d074cd0f29cfa636f9314e3..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/ConfirmationCode.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-value class ConfirmationCode(val value: String)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/ConfirmationId.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/ConfirmationId.kt
deleted file mode 100644
index dee10cb12ab517d2de7313bb00202fd811c09186..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/ConfirmationId.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-value class ConfirmationId(val value: String)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/Connection.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/Connection.kt
deleted file mode 100644
index de4edff39b2bd0a1bf8d9ee45fc690c3da892e77..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/Connection.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-internal interface Connection {
-    fun getId(): Long
-    fun getPartner(): ByteArray
-    fun registerListener()
-    fun sendE2e()
-    fun close()
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/ConnectionAdapter.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/ConnectionAdapter.kt
deleted file mode 100644
index 28342c5b161a910f20dd4e1ac89d43662f180f3b..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/ConnectionAdapter.kt
+++ /dev/null
@@ -1,26 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-import bindings.Connection as CoreConnection
-
-@JvmInline
-value class ConnectionAdapter(private val connection: CoreConnection) : Connection {
-    override fun getId(): Long {
-        TODO("Not yet implemented")
-    }
-
-    override fun getPartner(): ByteArray {
-        TODO("Not yet implemented")
-    }
-
-    override fun registerListener() {
-        TODO("Not yet implemented")
-    }
-
-    override fun sendE2e() {
-        TODO("Not yet implemented")
-    }
-
-    override fun close() {
-        TODO("Not yet implemented")
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/Contact.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/Contact.kt
deleted file mode 100644
index 86b5a5c6e978ba3d028bde03d307e5edfa48fac3..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/Contact.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class Contact(val value: ByteArray) {
-
-    companion object {
-        val placeholder: ByteArray = byteArrayOf()
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/E2eHandler.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/E2eHandler.kt
deleted file mode 100644
index c184ee9a20eb07a1dea3bcf49099191fc1fb540f..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/E2eHandler.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class E2eHandler(val value: Long)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/E2eId.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/E2eId.kt
deleted file mode 100644
index 2810ce3867490c0a0aad4f41086f0bb684237fe1..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/E2eId.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class E2eId(val value: Long) {
-
-    companion object {
-        val placeholder: Long = 0
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/E2eListener.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/E2eListener.kt
deleted file mode 100644
index 07f58d8c6cd8fbb571f56da39d57f1269fea8254..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/E2eListener.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-import bindings.Listener
-
-internal interface E2eListener : Listener
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/E2eParams.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/E2eParams.kt
deleted file mode 100644
index cd0fc1c3f6bffe109eb57f7c2fc1328691fdb7b3..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/E2eParams.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class E2eParams(val value: ByteArray)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/Fact.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/Fact.kt
deleted file mode 100644
index 86b9b915f506d762c0cc7c254a7025b33e9784ab..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/Fact.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class Fact(val value: ByteArray) {
-
-    companion object {
-        val placeholder: ByteArray = Fact(byteArrayOf()).value
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/FactsList.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/FactsList.kt
deleted file mode 100644
index fa3a49c24bc4a1e79f9885f26ddbb2528b08e5c9..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/FactsList.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class FactsList(val value: ByteArray) {
-
-    companion object {
-        val placeholder: ByteArray = byteArrayOf()
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/FileTransferParams.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/FileTransferParams.kt
deleted file mode 100644
index fc7cf4d6ebab8f04b69400d980eea505dbe3583e..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/FileTransferParams.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-value class FileTransferParams(val value: ByteArray) {
-
-    companion object {
-        val plaeholder = byteArrayOf()
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/GroupAdapter.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/GroupAdapter.kt
deleted file mode 100644
index 07a97a7dd461756db4966f651cd4f6e2f5ed3908..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/GroupAdapter.kt
+++ /dev/null
@@ -1,20 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-import io.elixxir.dapp.group.model.Group
-import io.elixxir.dapp.group.model.GroupId
-import io.elixxir.dapp.user.model.User
-import bindings.Group as CoreGroup
-
-@JvmInline
-internal value class GroupAdapter(val value: CoreGroup): Group {
-    override val groupId: GroupId
-        get() = GroupId(value.id)
-    override val name: String
-        get() = String(value.name)
-    override val description: String
-        get() = String(value.initMessage)
-    override val members: List<User>
-        get() = listOf()
-    override val creator: User
-        get() = User.placeholder
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/GroupInfo.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/GroupInfo.kt
deleted file mode 100644
index 84b84ddc462d0d106fa3540432617f7529acdae0..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/GroupInfo.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-internal data class GroupInfo(
-    val membershipData: GroupMembership,
-    val description: String,
-    val name: String
-)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/GroupMembership.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/GroupMembership.kt
deleted file mode 100644
index 04c32bf12a8c43c125e569625d0256a9e3c00238..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/GroupMembership.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class GroupMembership(val value: ByteArray)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/GroupReport.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/GroupReport.kt
deleted file mode 100644
index c70edbb833711757ee5d25fbcb4cec8cef6abc2c..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/GroupReport.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class GroupReport(val value: ByteArray)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/HealthCallback.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/HealthCallback.kt
deleted file mode 100644
index bc5aec42b9d98577f51da4b26cdc19228eaac4d3..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/HealthCallback.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-internal interface NetworkHealthListener {
-    fun onHealthChanged(isHealthy: Boolean)
-}
-
-internal class HealthCallbackAdapter(
-    private val listener: NetworkHealthListener
-) : NetworkHealthListener by listener,
-    bindings.NetworkHealthCallback
-{
-    override fun callback(isHealthy: Boolean) {
-        onHealthChanged(isHealthy)
-    }
-
-    companion object {
-        val placeholder: HealthCallbackAdapter =
-            HealthCallbackAdapter(
-                object : NetworkHealthListener {
-                    override fun onHealthChanged(isHealthy: Boolean) { }
-                }
-            )
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/HealthListenerId.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/HealthListenerId.kt
deleted file mode 100644
index 5034d6810b296e4fb05643409eb1b3c8fafc07c9..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/HealthListenerId.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class HealthListenerId(val value: Long)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/LookupId.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/LookupId.kt
deleted file mode 100644
index 928bf0491d37544a3550318cfabdf704126824cb..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/LookupId.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-value class LookupId(val value: ByteArray) {
-
-    companion object {
-        val placeholder: ByteArray = byteArrayOf()
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/MessageType.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/MessageType.kt
deleted file mode 100644
index c72785377958e613dba8694708ffaf9a796d0c03..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/MessageType.kt
+++ /dev/null
@@ -1,23 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-internal enum class MessageType(val code: Long) {
-    NoType(0),
-    XxMessage(2),
-    KeyExchangeTrigger(30),
-    KeyExchangeConfirm(31),
-    KeyExchangeTriggerEphemeral(32),
-    KeyExchangeConfirmEphemeral(33),
-    E2eClose(34),
-    GroupCreationRequest(40),
-    NewFileTransfer(50),
-    EndFileTransfer(51),
-    ConnectionAuthenticationRequest(60);
-
-    companion object {
-        fun from(code: Long): MessageType {
-            return values().firstOrNull {
-                it.code == code
-            } ?: throw(IllegalArgumentException("Invalid code"))
-        }
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/NetworkFollowerStatus.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/NetworkFollowerStatus.kt
deleted file mode 100644
index fdc5058d5782df2f9c14a203dc6a379f5afb4f04..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/NetworkFollowerStatus.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-internal enum class NetworkFollowerStatus(val code: Long) {
-    STOPPED(0),
-    STARTING(1000),
-    RUNNING(2000),
-    STOPPING(3000);
-
-    companion object {
-        fun from(code: Long) = values().first { it.code == code }
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/NodeRegistrationStatus.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/NodeRegistrationStatus.kt
deleted file mode 100644
index 620eee54a3914d7de4577827aa5882f7f6a01ee7..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/NodeRegistrationStatus.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class NodeRegistrationStatus(val value: ByteArray)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/PartnersList.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/PartnersList.kt
deleted file mode 100644
index c040838a3ecf90d655185b1fb5205a54891501b2..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/PartnersList.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class PartnersList(val value: ByteArray)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/Payload.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/Payload.kt
deleted file mode 100644
index 1901047bd5ceb496bcbf16374a8bd8bdd85206f6..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/Payload.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class Payload(val value: ByteArray)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/ReceptionIdentity.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/ReceptionIdentity.kt
deleted file mode 100644
index 313a564aaf07e932da7ea052cb3160e3f8a2dc1e..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/ReceptionIdentity.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class ReceptionIdentity(val value: ByteArray)
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/RegistrationValidationSignature.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/RegistrationValidationSignature.kt
deleted file mode 100644
index 5609b0185dfde3ba9dca9cd3e96a0101f9ed340b..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/RegistrationValidationSignature.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-value class RegistrationValidationSignature(val value: ByteArray)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/Request.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/Request.kt
deleted file mode 100644
index b1bc8a67e0c28e17f69407d63bc174316f992dc1..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/Request.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class Request(val value: ByteArray)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/RoundId.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/RoundId.kt
deleted file mode 100644
index e88ff523684c705974bbf21696564551243c70a7..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/RoundId.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-value class RoundId(val value: Long)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/SearchParams.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/SearchParams.kt
deleted file mode 100644
index 90cd95dc520e947d4e3d57cdfaf7aa6955bf6d97..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/SearchParams.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class SearchParams(val value: ByteArray) {
-
-    companion object {
-        val placeholder: ByteArray = byteArrayOf()
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/SendReport.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/SendReport.kt
deleted file mode 100644
index 8226a6664132985184a07368cc19854c2d6d1042..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/SendReport.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-internal value class SendReport(val value: ByteArray)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/UdAddress.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/UdAddress.kt
deleted file mode 100644
index c0f1b03d7ca22458cc3988bcf93a12eeceefadcf..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/UdAddress.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-value class UdIpAddress(val value: String)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/bindings/model/UdCertificate.kt b/app/src/main/java/io/elixxir/dapp/bindings/model/UdCertificate.kt
deleted file mode 100644
index f4b9aa8f64ac56913a3d2dacfb4187709d3ba5f3..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/bindings/model/UdCertificate.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.bindings.model
-
-@JvmInline
-value class UdCertificate(val value: ByteArray)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/group/model/Group.kt b/app/src/main/java/io/elixxir/dapp/group/model/Group.kt
deleted file mode 100644
index 6e97e6a94ce0c84a2d9c1cba75e7c31f8029a9bc..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/group/model/Group.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package io.elixxir.dapp.group.model
-
-import io.elixxir.dapp.user.model.User
-
-interface Group {
-    val groupId: GroupId
-    val name: String
-    val description: String
-    val members: List<User>
-    val creator: User
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/group/model/GroupId.kt b/app/src/main/java/io/elixxir/dapp/group/model/GroupId.kt
deleted file mode 100644
index 8cd1a184f4d5ae548a42e32238e292575ff1c39b..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/group/model/GroupId.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.group.model
-
-@JvmInline
-value class GroupId(val value: ByteArray)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/logger/data/Logger.kt b/app/src/main/java/io/elixxir/dapp/logger/data/Logger.kt
deleted file mode 100644
index c2dd325844c7ade7fb7a03a358266dac4fb11e69..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/logger/data/Logger.kt
+++ /dev/null
@@ -1,23 +0,0 @@
-package io.elixxir.dapp.logger.data
-
-import io.elixxir.dapp.logger.model.LoggerConfig
-import io.elixxir.dapp.logger.model.LogLevel
-
-internal interface Logger {
-    val config: LoggerConfig
-
-    fun logFatal(message: String) = log(message, LogLevel.Fatal)
-    fun logError(message: String) = log(message, LogLevel.Error)
-    fun logWarn(message: String) = log(message, LogLevel.Warn)
-    fun log(message: String, level: LogLevel = LogLevel.Debug): () -> Unit = {
-        if (config.logLevel <= level) {
-            config.logWriter(message)
-        }
-    }
-
-    companion object {
-        fun newInstance(config: LoggerConfig) = object : Logger {
-            override val config: LoggerConfig = config
-        }
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/logger/data/NoLogging.kt b/app/src/main/java/io/elixxir/dapp/logger/data/NoLogging.kt
deleted file mode 100644
index 064485546ec7380173bdb81b54609b38c4fd9561..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/logger/data/NoLogging.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-package io.elixxir.dapp.logger.data
-
-import io.elixxir.dapp.logger.model.LogLevel
-import io.elixxir.dapp.logger.model.LoggerConfig
-
-data class NoLogging(
-    override val logLevel: LogLevel = LogLevel.None,
-    override val logWriter: (String) -> Unit = {}
-) : LoggerConfig
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/logger/data/Timber.kt b/app/src/main/java/io/elixxir/dapp/logger/data/Timber.kt
deleted file mode 100644
index cc1eb579fc360df1ed21976d42dcae289c31ce70..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/logger/data/Timber.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package io.elixxir.dapp.logger.data
-
-import io.elixxir.dapp.logger.model.LoggerConfig
-import io.elixxir.dapp.logger.model.LogLevel
-import timber.log.Timber
-
-internal data class Timber(
-    override val logLevel: LogLevel = LogLevel.Debug,
-    override val logWriter: (String) -> Unit = { Timber.v(it) }
-) : LoggerConfig
diff --git a/app/src/main/java/io/elixxir/dapp/logger/model/LoggerConfig.kt b/app/src/main/java/io/elixxir/dapp/logger/model/LoggerConfig.kt
deleted file mode 100644
index ee5b449e77f1c6152394697ed546032cdcf0e3c9..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/logger/model/LoggerConfig.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package io.elixxir.dapp.logger.model
-
-/**
- * Responsible for routing helpful output of [logLevel] severity or greater
- * to the provided [logWriter].
- */
-interface LoggerConfig {
-    val logLevel: LogLevel
-    val logWriter: (String) -> Unit
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/messaging/model/Message.kt b/app/src/main/java/io/elixxir/dapp/messaging/model/Message.kt
deleted file mode 100644
index 964cb63562895b09215faefe4d616ff62301c649..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/messaging/model/Message.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.messaging.model
-
-interface Message {
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/network/data/NetworkManager.kt b/app/src/main/java/io/elixxir/dapp/network/data/NetworkManager.kt
deleted file mode 100644
index 7bdcf4d1e28ddc440563e5bfdde6a113893959a6..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/network/data/NetworkManager.kt
+++ /dev/null
@@ -1,94 +0,0 @@
-package io.elixxir.dapp.network.data
-
-import bindings.Bindings
-import bindings.Cmix
-import io.elixxir.dapp.bindings.data.AuthCallbacksAdapter
-import io.elixxir.dapp.bindings.data.CmixAdapter
-import io.elixxir.dapp.bindings.data.E2e
-import io.elixxir.dapp.bindings.data.E2eAdapter
-import io.elixxir.dapp.bindings.model.E2eParams
-import io.elixxir.dapp.bindings.model.ReceptionIdentity
-import io.elixxir.dapp.api.model.CommonProperties
-import io.elixxir.dapp.network.model.*
-import io.elixxir.dapp.network.repository.NdfDataSource
-import io.elixxir.dapp.session.model.*
-import io.elixxir.dapp.session.repository.SessionKeyStore
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.withContext
-
-internal interface NetworkManager {
-    val connectionStatus: Flow<ConnectionStatus>
-}
-
-internal class DappNetworkManager private constructor(
-    properties: CommonProperties,
-    keyStore: SessionKeyStore,
-    ndfSource: NdfDataSource
-): NetworkManager, CommonProperties by properties {
-
-    override val connectionStatus: Flow<ConnectionStatus> by ::_connectionStatus
-    private val _connectionStatus: MutableStateFlow<ConnectionStatus> =
-        MutableStateFlow(ConnectionStatus.DISCONNECTED)
-
-    fun login(
-        cmixId: Long,
-        authCallbacks: AuthCallbacksAdapter,
-        identity: ReceptionIdentity,
-        e2eParamsJson: E2eParams
-    ): E2e {
-        return E2eAdapter(
-            Bindings.login(cmixId, authCallbacks.value, identity.value, e2eParamsJson.value)
-        )
-    }
-
-    fun newCmix(
-        ndfJson: String,
-        sessionFolderPath: String,
-        sessionPassword: SessionPassword,
-        registrationCode: String
-    ) {
-        Bindings.newCmix(
-            ndfJson,
-            sessionFolderPath,
-            sessionPassword.value,
-            registrationCode
-        )
-    }
-
-    suspend fun loadCmix(
-        sessionFolderPath: String,
-        sessionPassword: SessionPassword,
-        cmixParamsJson: E2eParams
-    ): CmixAdapter = withContext(dispatcher) {
-        CmixAdapter(
-            Bindings.loadCmix(sessionFolderPath, sessionPassword.value, cmixParamsJson.value)
-        )
-    }
-
-    fun createIdentity(): ReceptionIdentity {
-        return ReceptionIdentity(
-            Cmix().makeReceptionIdentity()
-        )
-    }
-
-    fun initNetworkFollower() {
-
-    }
-
-    fun stopNetworkFollower() {
-
-    }
-
-    fun initUserDiscovery() {
-
-    }
-
-    companion object {
-        internal fun newInstance(
-            properties: CommonProperties,
-            keyStore: SessionKeyStore,
-            ndfSource: NdfDataSource
-        ) = DappNetworkManager(properties, keyStore, ndfSource)
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/network/model/ConnectionStatus.kt b/app/src/main/java/io/elixxir/dapp/network/model/ConnectionStatus.kt
deleted file mode 100644
index 39e8f6061b41f12b97efd6610d9877c3c1da9507..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/network/model/ConnectionStatus.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package io.elixxir.dapp.network.model
-
-enum class ConnectionStatus {
-    DISCONNECTED, CONNECTING, CONNECTED
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/network/model/NetworkConfig.kt b/app/src/main/java/io/elixxir/dapp/network/model/NetworkConfig.kt
deleted file mode 100644
index 849714c06433d21bd316f5351e25e4457d0fa086..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/network/model/NetworkConfig.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-package io.elixxir.dapp.network.model
-
-import androidx.annotation.RawRes
-import io.elixxir.dapp.R
-import io.elixxir.dapp.api.model.CriticalRemoteDataStrategy
-import io.elixxir.dapp.api.model.RetryStrategy
-
-interface NetworkConfig {
-    val environment: Environment get() = Environment.MainNet
-    val retryStrategy: RetryStrategy get() = CriticalRemoteDataStrategy()
-}
-
-internal abstract class NdfSettings : NetworkConfig {
-    abstract val ndfUrl: String
-    abstract val certificateRef: Int
-
-    companion object {
-        fun create(config: NetworkConfig): NdfSettings {
-            return when (config.environment) {
-                Environment.MainNet -> MainNet(config.retryStrategy)
-                Environment.ReleaseNet -> ReleaseNet(config.retryStrategy)
-            }
-        }
-    }
-}
-
-internal data class MainNet(
-    override val retryStrategy: RetryStrategy,
-    override val ndfUrl: String =
-        "https://elixxir-bins.s3.us-west-1.amazonaws.com/ndf/mainnet.json",
-    @RawRes
-    override val certificateRef: Int = R.raw.mainnet,
-) : NdfSettings()
-
-internal data class ReleaseNet(
-    override val retryStrategy: RetryStrategy,
-    override val ndfUrl: String =
-        "https://elixxir-bins.s3.us-west-1.amazonaws.com/ndf/release.json",
-    @RawRes
-    override val certificateRef: Int = R.raw.release
-) : NdfSettings()
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/network/repository/NdfDataSource.kt b/app/src/main/java/io/elixxir/dapp/network/repository/NdfDataSource.kt
deleted file mode 100644
index d62d49d2fa95999033ee896c036518966ac761fb..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/network/repository/NdfDataSource.kt
+++ /dev/null
@@ -1,61 +0,0 @@
-package io.elixxir.dapp.network.repository
-
-import androidx.annotation.RawRes
-import io.elixxir.dapp.api.model.CommonProperties
-import io.elixxir.dapp.api.model.RetryStrategy
-import io.elixxir.dapp.bindings.data.Bindings
-import io.elixxir.dapp.network.model.NdfSettings
-import kotlinx.coroutines.*
-typealias Ndf = String
-
-internal interface NdfDataSource {
-    suspend fun fetchNdf(): Ndf
-}
-
-internal class RemoteNdfDataSource private constructor(
-    properties: CommonProperties,
-    private val settings: NdfSettings,
-    private val bindings: Bindings
-) : NdfDataSource,
-    CommonProperties by properties,
-    RetryStrategy by settings.retryStrategy
-{
-
-    override suspend fun fetchNdf(): Ndf {
-        return retryFetchNdf()
-    }
-
-    private suspend fun retryFetchNdf(retries: Int = 0): Ndf = withContext(dispatcher) {
-        val ndf = downloadAndVerifySignedNdfWithUrl(
-            settings.ndfUrl,
-            readCertificate(settings.certificateRef)
-        )
-
-        if (ndf.isEmpty() && retries <= maxRetries) {
-            ensureActive()
-            delay(retryDelayMs)
-            retryFetchNdf(retries + 1)
-        } else {
-            ndf
-        }
-    }
-
-    private fun downloadAndVerifySignedNdfWithUrl(
-        url: String,
-        certificate: String
-    ): Ndf = bindings.fetchSignedNdf(url, certificate)
-
-    private fun readCertificate(@RawRes certRef: Int): String {
-        val reader= context().resources.openRawResource(certRef)
-            .bufferedReader()
-        return reader.use { reader.readText() }
-    }
-
-    companion object {
-        internal fun newInstance(
-            properties: CommonProperties,
-            settings: NdfSettings,
-            bindings: Bindings
-        ) = RemoteNdfDataSource(properties, settings, bindings)
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/preferences/KeyStorePreferences.kt b/app/src/main/java/io/elixxir/dapp/preferences/KeyStorePreferences.kt
deleted file mode 100644
index 6ab3d5799d7bcb80bb2d7fda00321012cbbac567..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/preferences/KeyStorePreferences.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package io.elixxir.dapp.preferences
-
-interface KeyStorePreferences {
-    var password: String
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/request/model/Request.kt b/app/src/main/java/io/elixxir/dapp/request/model/Request.kt
deleted file mode 100644
index 2d6ca6ef3e8588793ef2cf2883f48dbcd968621f..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/request/model/Request.kt
+++ /dev/null
@@ -1,8 +0,0 @@
-package io.elixxir.dapp.request.model
-
-interface Request {
-}
-
-interface OutgoingRequest : Request
-interface IncomingRequest: Request
-interface RequestConfirmation: Request
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/session/model/SecureHardwareException.kt b/app/src/main/java/io/elixxir/dapp/session/model/SecureHardwareException.kt
deleted file mode 100644
index 2475ec6abf4643bc691cb4d040a0937d74b6aed2..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/session/model/SecureHardwareException.kt
+++ /dev/null
@@ -1,6 +0,0 @@
-package io.elixxir.dapp.session.model
-
-class SecureHardwareException : Exception() {
-    override val message: String
-        get() = "OS is not hardware-backed and require secure hardware is enabled."
-}
diff --git a/app/src/main/java/io/elixxir/dapp/session/model/SessionPassword.kt b/app/src/main/java/io/elixxir/dapp/session/model/SessionPassword.kt
deleted file mode 100644
index 8dfddc9fee4259416d3ffe3e1fde7cdabbdc655b..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/session/model/SessionPassword.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.session.model
-
-@JvmInline
-value class SessionPassword(val value: ByteArray)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/session/repository/SessionDataSource.kt b/app/src/main/java/io/elixxir/dapp/session/repository/SessionDataSource.kt
deleted file mode 100644
index 3f316d7f3800ed962dc298ed1081d614dd7d521e..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/session/repository/SessionDataSource.kt
+++ /dev/null
@@ -1,88 +0,0 @@
-package io.elixxir.dapp.session.repository
-
-import java.io.File
-import io.elixxir.dapp.api.model.CommonProperties
-import kotlinx.coroutines.*
-
-/**
- * Responsible for creation, deletion & storage of folder used to persist
- * Cmix session.
- */
-internal interface SessionDataSource {
-    val sessionFolder: File
-
-    fun doesSessionExist(): Boolean
-
-    /**
-     * Only needs to be created once per app installation.
-     * Return the [sessionFolder] if successful.
-     */
-    suspend fun createSession(): Result<File>
-
-    /**
-     * Should be called during account deletion.
-     */
-    suspend fun deleteSession(): Result<Unit>
-
-    /**
-     * Restore session
-     */
-    suspend fun restoreSession(): Result<Unit>
-}
-
-internal class LocalSessionDataSource private constructor(
-    properties: CommonProperties
-) : SessionDataSource, CommonProperties by properties {
-
-    override val sessionFolder: File get() {
-        return try {
-            File(context().filesDir, "cmix/session")
-        } catch (e: Exception) {
-            logFatal(e.message ?: "Couldn't access filesDir.")
-            throw e
-        }
-    }
-
-    override fun doesSessionExist(): Boolean = sessionFolder.exists()
-
-    override suspend fun createSession(): Result<File> = withContext(dispatcher) {
-        try {
-            Result.success(createSessionFolder())
-        } catch (e: Exception) {
-            Result.failure(e)
-        }
-    }
-
-    private fun createSessionFolder(): File {
-        return sessionFolder.apply {
-            if (exists()) {
-                log("Session folder from previous installation was found.")
-                log("It contains ${listFiles()?.size ?: 0} files.")
-                log("Deleting!")
-                deleteRecursively()
-            }
-            mkdir()
-            log("Session folder successfully created at: $absolutePath")
-        }
-    }
-
-    override suspend fun deleteSession(): Result<Unit> = withContext(dispatcher) {
-        try {
-            if (sessionFolder.deleteRecursively()) {
-                Result.success(Unit)
-            } else {
-                Result.failure(Exception("Failed to delete all files."))
-            }
-        } catch (e: Exception) {
-            Result.failure(e)
-        }
-    }
-
-    override suspend fun restoreSession(): Result<Unit> {
-        TODO("Not yet implemented")
-    }
-
-    companion object {
-        internal fun newInstance(properties: CommonProperties) = LocalSessionDataSource(properties)
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/session/repository/SessionKeyStore.kt b/app/src/main/java/io/elixxir/dapp/session/repository/SessionKeyStore.kt
deleted file mode 100644
index 0607c31fb2eb2b86c84347e4cc86a2b4bfc5dc64..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/session/repository/SessionKeyStore.kt
+++ /dev/null
@@ -1,238 +0,0 @@
-package io.elixxir.dapp.session.repository
-
-import android.os.Build
-import android.security.keystore.KeyGenParameterSpec
-import android.security.keystore.KeyInfo
-import android.security.keystore.KeyProperties
-import io.elixxir.dapp.api.model.CommonProperties
-import io.elixxir.dapp.bindings.data.Bindings
-import io.elixxir.dapp.preferences.KeyStorePreferences
-import io.elixxir.dapp.session.model.SecureHardwareException
-import io.elixxir.dapp.session.model.SessionPassword
-import io.elixxir.dapp.util.fromBase64toByteArray
-import io.elixxir.dapp.util.toBase64String
-import kotlinx.coroutines.withContext
-import java.security.*
-import java.security.spec.MGF1ParameterSpec
-import java.security.spec.RSAKeyGenParameterSpec
-import javax.crypto.BadPaddingException
-import javax.crypto.Cipher
-import javax.crypto.IllegalBlockSizeException
-import javax.crypto.NoSuchPaddingException
-import javax.crypto.spec.OAEPParameterSpec
-import javax.crypto.spec.PSource
-import kotlin.system.measureTimeMillis
-
-internal interface SessionKeyStore {
-    suspend fun createSessionPassword(requireSecureHardware: Boolean): Result<Unit>
-    suspend fun rsaDecryptPassword(): SessionPassword
-}
-
-internal class DappSessionKeystore private constructor(
-    properties: CommonProperties,
-    private val preferences: KeyStorePreferences,
-    private val bindings: Bindings
-) : SessionKeyStore, CommonProperties by properties {
-
-    override suspend fun createSessionPassword(requireSecureHardware: Boolean): Result<Unit> =
-        withContext(dispatcher) {
-            if (requireSecureHardware && !isHardwareBackedKeyStore()) {
-                return@withContext Result.failure(SecureHardwareException())
-            }
-
-            try {
-                deletePreviousKeys()
-                generateKeys()
-                generatePassword()
-                Result.success(Unit)
-            } catch (e: Exception) {
-                logError(e.message ?: "An error occured while creating session password.")
-                Result.failure(e)
-            }
-    }
-
-    private fun generatePassword() {
-        val encryptionTime = measureTimeMillis {
-            val passwordLength = PASSWORD_LENGTH
-            log("Generating a password...")
-            log("Generating a password with $passwordLength bytes")
-
-            var secret: SessionPassword
-            val generationTime = measureTimeMillis {
-                do {
-                    secret = bindings.generateSecret(passwordLength)
-                    log("Password (Bytearray): $secret")
-                    log("Password (String64): ${secret.value.toBase64String()}")
-
-                    val isAllZeroes = byteArrayOf(passwordLength.toByte()).contentEquals(secret.value)
-                    log("IsAllZeroes: $isAllZeroes")
-                } while (isAllZeroes)
-            }
-            log("Total generation time: $generationTime ms")
-            rsaEncryptPwd(secret.value)
-        }
-        log("Total encryption time: $encryptionTime ms")
-    }
-
-    private fun deletePreviousKeys() {
-        val keystore = getKeystore()
-        if (keystore.containsAlias(KEY_ALIAS)) {
-            log("Deleting key alias")
-            keystore.deleteEntry(KEY_ALIAS)
-        }
-    }
-
-    private fun checkGenerateKeys(): Boolean {
-        return try {
-            val areKeysGenerated = generateKeys()
-            if (areKeysGenerated) {
-                log("Keystore keys successfully generated")
-                true
-            } else {
-                log("Error generating keystore keys")
-                false
-            }
-        } catch (err: Exception) {
-            log("An error occured while generating keys.")
-            false
-        }
-    }
-
-    private fun generateKeys(): Boolean {
-        val keystore = getKeystore()
-        if (!keystore.containsAlias(KEY_ALIAS)) {
-            log("Keystore alias does not exist, credentials")
-            val keyGenerator = getKeyPairGenerator()
-            keyGenerator.genKeyPair()
-        } else {
-            log("Keystore alias already exist")
-        }
-
-        return true
-    }
-
-    private fun getKeyPairGenerator(): KeyPairGenerator {
-        val keyGenerator = KeyPairGenerator.getInstance(
-            KeyProperties.KEY_ALGORITHM_RSA, "AndroidKeyStore"
-        )
-        val keyGenParameterSpec = getKeygenParamSpec()
-        keyGenerator.initialize(keyGenParameterSpec)
-        return keyGenerator
-    }
-
-    private fun getPrivateKey(): PrivateKey? {
-        val keyStore: KeyStore = getKeystore()
-        return keyStore.getKey(KEY_ALIAS, null) as PrivateKey?
-    }
-
-    private fun getPublicKey(): PublicKey {
-        return getKeystore().getCertificate(KEY_ALIAS).publicKey
-    }
-
-    private fun getKeystore(): KeyStore {
-        val keyStore = KeyStore.getInstance(ANDROID_KEYSTORE)
-        keyStore.load(null)
-        return keyStore
-    }
-
-    private fun getKeygenParamSpec(): KeyGenParameterSpec {
-        val keyGenSpec = KeyGenParameterSpec.Builder(
-            KEY_ALIAS,
-            KEY_PURPOSE
-        ).setAlgorithmParameterSpec(RSAKeyGenParameterSpec(KEY_SIZE, RSAKeyGenParameterSpec.F4))
-            .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_RSA_OAEP)
-            .setBlockModes(KeyProperties.BLOCK_MODE_ECB)
-            .setDigests(KeyProperties.DIGEST_SHA1)
-            .setRandomizedEncryptionRequired(true)
-
-
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
-            keyGenSpec.setUserAuthenticationParameters(
-                1000,
-                KeyProperties.AUTH_BIOMETRIC_STRONG or KeyProperties.AUTH_DEVICE_CREDENTIAL
-            )
-        } else {
-            keyGenSpec.setUserAuthenticationValidityDurationSeconds(1000)
-        }
-
-        return keyGenSpec.build()
-    }
-
-    @Throws(
-        NoSuchAlgorithmException::class,
-        NoSuchPaddingException::class,
-        InvalidKeyException::class,
-        IllegalBlockSizeException::class,
-        BadPaddingException::class
-    )
-    private fun rsaEncryptPwd(pwd: ByteArray): ByteArray {
-        log("Bytecount: ${pwd.size}")
-        log("Before encryption: ${pwd.toBase64String()}")
-        val secretKey = getPublicKey()
-
-        val cipher = Cipher.getInstance(KEYSTORE_ALGORITHM)
-        cipher.init(Cipher.ENCRYPT_MODE, secretKey, cipherMode)
-        val encryptedBytes = cipher.doFinal(pwd)
-        log("Encrypted: ${encryptedBytes.toBase64String()}")
-        preferences.password = encryptedBytes.toBase64String()
-
-        return encryptedBytes
-    }
-
-    @Throws(
-        NoSuchAlgorithmException::class,
-        NoSuchPaddingException::class,
-        InvalidKeyException::class,
-        IllegalBlockSizeException::class,
-        BadPaddingException::class
-    )
-    override suspend fun rsaDecryptPassword(): SessionPassword = withContext(dispatcher) {
-        val encryptedBytes = preferences.password.fromBase64toByteArray()
-        val key = getPrivateKey()
-        val cipher1 = Cipher.getInstance(KEYSTORE_ALGORITHM)
-        println("Initializing Decrypt")
-        cipher1.init(Cipher.DECRYPT_MODE, key, cipherMode)
-        val decryptedBytes = cipher1.doFinal(encryptedBytes)
-        println("Decrypted: ${decryptedBytes.toBase64String()}")
-
-        SessionPassword(decryptedBytes)
-    }
-
-    private fun isHardwareBackedKeyStore(): Boolean {
-        return try {
-            val privateKey = getPrivateKey()
-            val keyFactory = KeyFactory.getInstance(privateKey?.algorithm, ANDROID_KEYSTORE)
-            val keyInfo: KeyInfo = keyFactory.getKeySpec(privateKey, KeyInfo::class.java)
-            val securityLevel = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
-                (keyInfo.securityLevel == KeyProperties.SECURITY_LEVEL_TRUSTED_ENVIRONMENT ||
-                        keyInfo.securityLevel == KeyProperties.SECURITY_LEVEL_STRONGBOX)
-            } else {
-                keyInfo.isInsideSecureHardware
-            }
-            return securityLevel
-        } catch (e: Exception) {
-            logError(e.message ?: "An error occured while checking hardware backed key store.")
-            false
-        }
-    }
-
-    companion object {
-        private const val KEY_ALIAS = "dAppSession"
-        private const val ANDROID_KEYSTORE = "AndroidKeyStore"
-        private const val KEY_PURPOSE =
-            KeyProperties.PURPOSE_SIGN or KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT
-        private const val KEYSTORE_ALGORITHM = "RSA/ECB/OAEPWithSHA-1AndMGF1Padding"
-        private const val KEY_SIZE = 2048
-        private val cipherMode = OAEPParameterSpec(
-            "SHA-1", "MGF1",
-            MGF1ParameterSpec.SHA1, PSource.PSpecified.DEFAULT
-        )
-        private const val PASSWORD_LENGTH = 64L
-
-        internal fun newInstance(
-            properties: CommonProperties,
-            preferences: KeyStorePreferences,
-            bindings: Bindings
-        ) = DappSessionKeystore(properties, preferences, bindings)
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/user/model/User.kt b/app/src/main/java/io/elixxir/dapp/user/model/User.kt
deleted file mode 100644
index c24e22376e3aca42596669f4387cc917c91789d2..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/user/model/User.kt
+++ /dev/null
@@ -1,18 +0,0 @@
-package io.elixxir.dapp.user.model
-
-interface User {
-    val userId: Long
-    val username: String
-    val phone: String?
-    val email: String?
-
-    companion object {
-        val placeholder = object : User {
-            override val userId: Long = 0
-            override val username: String = ""
-            override val phone: String? = null
-            override val email: String? = null
-
-        }
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/user/model/UserId.kt b/app/src/main/java/io/elixxir/dapp/user/model/UserId.kt
deleted file mode 100644
index 92d92772ac1ef0ea51548c1cd2d53feec78c5436..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/user/model/UserId.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package io.elixxir.dapp.user.model
-
-@JvmInline
-value class UserId(val value: ByteArray)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/user/model/UserQuery.kt b/app/src/main/java/io/elixxir/dapp/user/model/UserQuery.kt
deleted file mode 100644
index 0debdfb23fcd0d389c3c21fc4b2322e5018551b9..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/user/model/UserQuery.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package io.elixxir.dapp.user.model
-
-interface UserQuery {
-    val query: String
-    val queryType: QueryType
-
-    enum class QueryType {
-        USERNAME, USERID, PHONE, EMAIL
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/user/model/UserUpdateData.kt b/app/src/main/java/io/elixxir/dapp/user/model/UserUpdateData.kt
deleted file mode 100644
index 0df45d32dc36cf7d20e9667e28d19b09916ac154..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/user/model/UserUpdateData.kt
+++ /dev/null
@@ -1,6 +0,0 @@
-package io.elixxir.dapp.user.model
-
-data class UserUpdateData(
-    val newPhone: String?,
-    val newEmail: String?
-)
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/user/repository/UserDataSource.kt b/app/src/main/java/io/elixxir/dapp/user/repository/UserDataSource.kt
deleted file mode 100644
index 037e4f40c06759d7da7c7c66f8448449c3a5f751..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/user/repository/UserDataSource.kt
+++ /dev/null
@@ -1,36 +0,0 @@
-package io.elixxir.dapp.user.repository
-
-import io.elixxir.dapp.bindings.data.UserDiscovery
-import io.elixxir.dapp.api.model.CommonProperties
-import io.elixxir.dapp.user.model.User
-
-interface UserDataSource {
-    suspend fun createUser(username: String): Result<User>
-    suspend fun updateProfile(): Result<User>
-    suspend fun deleteProfile(): Result<Unit>
-}
-
-internal class RemoteUserDataSource private constructor(
-    properties: CommonProperties,
-    private val ud: UserDiscovery
-) : UserDataSource, CommonProperties by properties {
-
-    override suspend fun createUser(username: String): Result<User> {
-        TODO("Not yet implemented")
-    }
-
-    override suspend fun updateProfile(): Result<User> {
-        TODO("Not yet implemented")
-    }
-
-    override suspend fun deleteProfile(): Result<Unit> {
-        TODO("Not yet implemented")
-    }
-
-    companion object {
-        internal fun newInstance(
-            properties: CommonProperties,
-            ud: UserDiscovery
-        ) = RemoteUserDataSource(properties, ud)
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/util/ByteArray.kt b/app/src/main/java/io/elixxir/dapp/util/ByteArray.kt
deleted file mode 100644
index a7cd66b8448698fd37a215414766aebd25a9f02e..0000000000000000000000000000000000000000
--- a/app/src/main/java/io/elixxir/dapp/util/ByteArray.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package io.elixxir.dapp.util
-
-import android.util.Base64
-
-fun ByteArray.toBase64String(): String {
-    return Base64.encodeToString(this, Base64.NO_WRAP)
-}
-
-fun String.fromBase64toByteArray(): ByteArray {
-    return Base64.decode(this, Base64.NO_WRAP)
-}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
deleted file mode 100644
index 2b068d11462a4b96669193de13a711a3a36220a0..0000000000000000000000000000000000000000
--- a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:aapt="http://schemas.android.com/aapt"
-    android:width="108dp"
-    android:height="108dp"
-    android:viewportWidth="108"
-    android:viewportHeight="108">
-    <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
-        <aapt:attr name="android:fillColor">
-            <gradient
-                android:endX="85.84757"
-                android:endY="92.4963"
-                android:startX="42.9492"
-                android:startY="49.59793"
-                android:type="linear">
-                <item
-                    android:color="#44000000"
-                    android:offset="0.0" />
-                <item
-                    android:color="#00000000"
-                    android:offset="1.0" />
-            </gradient>
-        </aapt:attr>
-    </path>
-    <path
-        android:fillColor="#FFFFFF"
-        android:fillType="nonZero"
-        android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
-        android:strokeWidth="1"
-        android:strokeColor="#00000000" />
-</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
deleted file mode 100644
index 07d5da9cbf141911847041df5d7b87f0dd5ef9d4..0000000000000000000000000000000000000000
--- a/app/src/main/res/drawable/ic_launcher_background.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="108dp"
-    android:height="108dp"
-    android:viewportWidth="108"
-    android:viewportHeight="108">
-    <path
-        android:fillColor="#3DDC84"
-        android:pathData="M0,0h108v108h-108z" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M9,0L9,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,0L19,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M29,0L29,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M39,0L39,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M49,0L49,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M59,0L59,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M69,0L69,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M79,0L79,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M89,0L89,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M99,0L99,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,9L108,9"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,19L108,19"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,29L108,29"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,39L108,39"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,49L108,49"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,59L108,59"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,69L108,69"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,79L108,79"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,89L108,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,99L108,99"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,29L89,29"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,39L89,39"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,49L89,49"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,59L89,59"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,69L89,69"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,79L89,79"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M29,19L29,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M39,19L39,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M49,19L49,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M59,19L59,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M69,19L69,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M79,19L79,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-</vector>
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
deleted file mode 100644
index eca70cfe52eac1ba66ba280a68ca7be8fcf88a16..0000000000000000000000000000000000000000
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
-    <background android:drawable="@drawable/ic_launcher_background" />
-    <foreground android:drawable="@drawable/ic_launcher_foreground" />
-</adaptive-icon>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
deleted file mode 100644
index eca70cfe52eac1ba66ba280a68ca7be8fcf88a16..0000000000000000000000000000000000000000
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
-    <background android:drawable="@drawable/ic_launcher_background" />
-    <foreground android:drawable="@drawable/ic_launcher_foreground" />
-</adaptive-icon>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp
deleted file mode 100644
index c209e78ecd372343283f4157dcfd918ec5165bb3..0000000000000000000000000000000000000000
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
deleted file mode 100644
index b2dfe3d1ba5cf3ee31b3ecc1ced89044a1f3b7a9..0000000000000000000000000000000000000000
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp
deleted file mode 100644
index 4f0f1d64e58ba64d180ce43ee13bf9a17835fbca..0000000000000000000000000000000000000000
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
deleted file mode 100644
index 62b611da081676d42f6c3f78a2c91e7bcedddedb..0000000000000000000000000000000000000000
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
deleted file mode 100644
index 948a3070fe34c611c42c0d3ad3013a0dce358be0..0000000000000000000000000000000000000000
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
deleted file mode 100644
index 1b9a6956b3acdc11f40ce2bb3f6efbd845cc243f..0000000000000000000000000000000000000000
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
deleted file mode 100644
index 28d4b77f9f036a47549d47db79c16788749dca10..0000000000000000000000000000000000000000
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
deleted file mode 100644
index 9287f5083623b375139afb391af71cc533a7dd37..0000000000000000000000000000000000000000
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
deleted file mode 100644
index aa7d6427e6fa1074b79ccd52ef67ac15c5637e85..0000000000000000000000000000000000000000
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and /dev/null differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
deleted file mode 100644
index 9126ae37cbc3587421d6889eadd1d91fbf1994d4..0000000000000000000000000000000000000000
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/app/src/main/res/raw/mainnet.crt b/app/src/main/res/raw/mainnet.crt
deleted file mode 100644
index 096e3b5cda98b012d892d6531ab1a4696d13a457..0000000000000000000000000000000000000000
--- a/app/src/main/res/raw/mainnet.crt
+++ /dev/null
@@ -1,33 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFqTCCA5GgAwIBAgIUO0qHXSeKrOMucO+Zz82Mf1Zlq4gwDQYJKoZIhvcNAQEL
-BQAwgYAxCzAJBgNVBAYTAktZMRQwEgYDVQQHDAtHZW9yZ2UgVG93bjETMBEGA1UE
-CgwKeHggbmV0d29yazEPMA0GA1UECwwGRGV2T3BzMRMwEQYDVQQDDAp4eC5uZXR3
-b3JrMSAwHgYJKoZIhvcNAQkBFhFhZG1pbnNAeHgubmV0d29yazAeFw0yMTEwMzAy
-MjI5MjZaFw0zMTEwMjgyMjI5MjZaMIGAMQswCQYDVQQGEwJLWTEUMBIGA1UEBwwL
-R2VvcmdlIFRvd24xEzARBgNVBAoMCnh4IG5ldHdvcmsxDzANBgNVBAsMBkRldk9w
-czETMBEGA1UEAwwKeHgubmV0d29yazEgMB4GCSqGSIb3DQEJARYRYWRtaW5zQHh4
-Lm5ldHdvcmswggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQD08ixnPWwz
-FtBIEWx2SnFjBsdrSWCp9NcWXRtGWeq3ACz+ixiflj/U9U4b57aULeOAvcoC7bwU
-j5w3oYxRmXIV40QSevx1z9mNcW3xbbacQ+yCgPPhhj3/c285gVVOUzURLBTNAi9I
-EA59zAb8Vy0E6zfq4HRAhH11Q/10QgDjEXuGXra1k3IlemVsouiJGNAtKojNDE1N
-x9HnraSEiXzdnV2GDplEvMHaLd3s9vs4XsiLB3VwKyHv7EH9+LOIra6pr5BWw+kD
-2qHKGmQMOQe0a7nCirW/k9axH0WiA0XWuQu3U1WfcMEfdC/xn1vtubrdYjtzpXUy
-oUEX5eHfu4OlA/zoH+trocfARDyBmTVbDy0P9imH//a6GUKDui9r3fXwEy5YPMhb
-dKaNc7QWLPHMh1n25h559z6PqxxPT6UqFFbZD2gTw1sbbpjyqhLbnYguurkxY3jZ
-ztW337hROzQ1/abbg/P59JA95Pmhkl8nqqDEf0buOmvMazq3Lwg92nuZ8gsdMKXB
-xaEtTTpxhTPOqzc1/XQgScZnc+092MBDh3C2GMxzylOIdk+yF2Gyb+VWPUe29dSa
-azzxsDXzRy8y8jaOjdSUWaLa/MgS5Dg1AfHtD55bdvqYzw3NEXIVarpMlzl+Z+6w
-jvuwz8GyoMSVe+YEGgvSDvlfY/z19aqneQIDAQABoxkwFzAVBgNVHREEDjAMggp4
-eC5uZXR3b3JrMA0GCSqGSIb3DQEBCwUAA4ICAQCp0JDub2w5vZQvFREyA+utZ/+s
-XT05j1iTgIRKMa3nofDGERYJUG7FcTd373I2baS70PGx8FF1QuXhn4DNNZlW/SZt
-pa1d0pAerqFrIzwOuWVDponYHQ8ayvsT7awCbwZEZE4RhooqS4LqnvtgFu/g7LuM
-zkFN8TER7HAUn3P7BujLvcgtqk2LMDz+AgBRszDp/Bw7+1EJDeG9d7hC/stXgDV/
-vpD1YDpxSmW4zjezFJqV6OdMOwo9RWVIktK3RXbFc6I5UJZ5kmzPe/I2oPPCBQvD
-G3VqFLQe5ik5rXP7SgAN1fL/7KuQna0s42hkV64Z2ymCX69G1ofpgpEFaQLaxLbj
-QOun0r8A3NyKvHRIh4K0dFcc3FSOF60Y6k769HKbOPmSDjSSg0qO9GEONBJ8BxAT
-IHcHoTAOQoqGehdzepXQSjHsPqTXv3ZFFwCCgO0toI0Qhqwo89X6R3k+i4Kaktr7
-mLiPO8s0nq1PZ1XrybKE9BCHkYH1JkUDA+M0pn4QAEx/BuM0QnGXoi1sImW3pEUG
-NP7fjkISrD48P8P/TLS45sx5pB8MNGEsRw0lBKmuOdWDmdfhOltB6JxmbhpstNZp
-6LVLK6SEOwE76xnHiisR2KyhTTiroUq73BgPFWkWhoJDPbmL1DHgnbdKwwstG8Qu
-UGb8k8vh6tzqYZAOKg==
------END CERTIFICATE-----
diff --git a/app/src/main/res/raw/release.crt b/app/src/main/res/raw/release.crt
deleted file mode 100644
index b8d5847f8709d8f888f32ce2024dcffe33af4131..0000000000000000000000000000000000000000
--- a/app/src/main/res/raw/release.crt
+++ /dev/null
@@ -1,33 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFtjCCA56gAwIBAgIJAJnUcpLbGSQiMA0GCSqGSIb3DQEBCwUAMIGMMQswCQYD
-VQQGEwJVUzELMAkGA1UECAwCQ0ExEjAQBgNVBAcMCUNsYXJlbW9udDEQMA4GA1UE
-CgwHRWxpeHhpcjEUMBIGA1UECwwLRGV2ZWxvcG1lbnQxEzARBgNVBAMMCmVsaXh4
-aXIuaW8xHzAdBgkqhkiG9w0BCQEWEGFkbWluQGVsaXh4aXIuaW8wHhcNMjAxMTE3
-MTkwMTUyWhcNMjIxMTE3MTkwMTUyWjCBjDELMAkGA1UEBhMCVVMxCzAJBgNVBAgM
-AkNBMRIwEAYDVQQHDAlDbGFyZW1vbnQxEDAOBgNVBAoMB0VsaXh4aXIxFDASBgNV
-BAsMC0RldmVsb3BtZW50MRMwEQYDVQQDDAplbGl4eGlyLmlvMR8wHQYJKoZIhvcN
-AQkBFhBhZG1pbkBlbGl4eGlyLmlvMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
-CgKCAgEAvtByOoSS8SeMLvvHIuOGfnx0VgweveJHX93LUyJxr1RlVBXCgC5/QOQN
-N3dmKWzu4YwaA2jtwaAMhkgdfyOcw6kuqfvQjxv99XRIRKM4GZQkJiym2cnorNu7
-hm2/bxmj5TjpP9+vFzbjkJrpRQ80hsV7I9+NKzIhMK4YTgte/F/q9URESlMZxTbb
-MFh3s5iiBfBLRNFFsHVdy8OVH+Jv5901cLn+yowaMDLrBMOWGlRROg82ZeRAranX
-9X1s+6BclJ/cBe/LcDxGso5sco6UzrWHzpDTnOTzHoamQHYCXtAZP4XbzcqI6A5i
-GFM2akuG9Wv3XZZv/6eJRnKS2GLkvv7dtzv+nalxoBKtyIE8ICIVOrb+pVJvY1Id
-HOXkK9MEJJ6sZhddipUaQw6hD4I0dNEt30Ugq9zTgFcEnM2R7qKpIDmxrRbcl280
-TQGNYgdidzleNdZbjcTvsMVhcxPXCY+bVX1xICD1oJiZZbZFejBvPEfLYyzSdYp+
-awX5OnLVSrQtTJu9yz5q3q5pHhxJnqS/CVGLTvzLfmk7BGwRZZuK87LnSixyYfpd
-S23qI45AEUINEE0HDZsI+KBq0oVlDB0Z3AZpWauRDqY3o6JIbIOpqmZc6KntyL7j
-YCAhbB1tchS47PpbIxUgMMGoR3MBkJutPqtTWCEE3l5jvv0CknUCAwEAAaMZMBcw
-FQYDVR0RBA4wDIIKZWxpeHhpci5pbzANBgkqhkiG9w0BAQsFAAOCAgEACLoxE3nh
-3VzXH2lQo1QzjKkG/+1m75T0l9Wn9uxa2W/90qBCfim1CPfWUstGdRLBi8gjDevV
-zK5HN+Cpz2E22qByeN9fl6rJC4zd1vIdexEre5h7goWoV+qFPhOACElor1tF5UQ2
-GD+NFH+Z0ALG1u8db0hBv8NCbtD4YzcQzzINEbs9gp/Sq3cRzkz1wCufFwJwr7+R
-0YqZfPj/v/w9G9wSUys1s3i4xr2u87T/bPF68VRg6r1+kXRSRevXd99wKwap52jY
-zOwsDGZF9BHMpFVYR/yZhfzSK3F1DmvwuqOsfwSFIjrUjfRlwS28zyZ8rjBq1suD
-EAdvYCLDmBSGssNh8E20PHmk5UROYFGEEhlK5ZKj/f1HOmMiOX461XK6HODYyitq
-Six2dPi1ZlBJW83DyFqSWJaUR/CluBYmqrWoBX+chv54bU2Y9j/sA/O98wa7trsk
-ctzvAcXjhXm6ESRVVD/iZvkW5MP2mkgbDpW3RP9souK5JzbcpC7i3hEcAqPSPgzL
-94kHDpYNY7jcGQC4CjPdfBi+Tf6il/QLFRFgyHm2ze3+qrlPT6SQ4hSSH1iXyf4v
-tlqu6u77fbF9yaHtq7dvYxH1WioIUxMqbIC1CNgGC1Y/LhzgLRKPSTBCrbQyTcGc
-0b5cTzVKxdP6v6WOAXVOEkXTcBPZ4nEZxY0=
------END CERTIFICATE-----
diff --git a/app/src/main/res/xml/backup_rules.xml b/app/src/main/res/xml/backup_rules.xml
deleted file mode 100644
index fa0f996d2c2a6bdd11f5371de4268c8389d6c720..0000000000000000000000000000000000000000
--- a/app/src/main/res/xml/backup_rules.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!--
-   Sample backup rules file; uncomment and customize as necessary.
-   See https://developer.android.com/guide/topics/data/autobackup
-   for details.
-   Note: This file is ignored for devices older that API 31
-   See https://developer.android.com/about/versions/12/backup-restore
--->
-<full-backup-content>
-    <!--
-   <include domain="sharedpref" path="."/>
-   <exclude domain="sharedpref" path="device.xml"/>
--->
-</full-backup-content>
\ No newline at end of file
diff --git a/app/src/main/res/xml/data_extraction_rules.xml b/app/src/main/res/xml/data_extraction_rules.xml
deleted file mode 100644
index 9ee9997b0b4726e57c27b2f7b21462b604ff8a88..0000000000000000000000000000000000000000
--- a/app/src/main/res/xml/data_extraction_rules.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!--
-   Sample data extraction rules file; uncomment and customize as necessary.
-   See https://developer.android.com/about/versions/12/backup-restore#xml-changes
-   for details.
--->
-<data-extraction-rules>
-    <cloud-backup>
-        <!-- TODO: Use <include> and <exclude> to control what is backed up.
-        <include .../>
-        <exclude .../>
-        -->
-    </cloud-backup>
-    <!--
-    <device-transfer>
-        <include .../>
-        <exclude .../>
-    </device-transfer>
-    -->
-</data-extraction-rules>
\ No newline at end of file
diff --git a/app/src/test/java/io/elixxir/dapp/ExampleUnitTest.kt b/app/src/test/java/io/elixxir/dapp/ExampleUnitTest.kt
deleted file mode 100644
index b5073a8eae91e4baa4d894405f62d8eb4386ad26..0000000000000000000000000000000000000000
--- a/app/src/test/java/io/elixxir/dapp/ExampleUnitTest.kt
+++ /dev/null
@@ -1,17 +0,0 @@
-package io.elixxir.dapp
-
-import org.junit.Test
-
-import org.junit.Assert.*
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-class ExampleUnitTest {
-    @Test
-    fun addition_isCorrect() {
-        assertEquals(4, 2 + 2)
-    }
-}
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
index cc1e87c18bba3e644c10320c9ce6ab1c391426e8..2351bf8141529c69856e86192ddc2e859f85ac5a 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,9 +1,8 @@
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
 plugins {
-    id("com.android.application") version Config.ANDROID_GRADLE_PLUGIN apply false
-    id("com.android.library") version Config.ANDROID_GRADLE_PLUGIN apply false
-    id("org.jetbrains.kotlin.android") version Config.KOTLIN apply false
-    id("org.jetbrains.kotlin.jvm") version Config.KOTLIN apply false
+    id("com.android.library") version "7.2.1" apply false
+    id("org.jetbrains.kotlin.android") version "1.6.10" apply false
+    id("org.jetbrains.kotlin.jvm") version "1.6.10" apply false
 }
 
 tasks.register("clean", Delete::class) {
diff --git a/buildSrc/.gitignore b/buildSrc/.gitignore
deleted file mode 100644
index 42afabfd2abebf31384ca7797186a27a4b7dbee8..0000000000000000000000000000000000000000
--- a/buildSrc/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
\ No newline at end of file
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
deleted file mode 100644
index 6380ff2e998c21a39518185e322975c37cf3f916..0000000000000000000000000000000000000000
--- a/buildSrc/build.gradle.kts
+++ /dev/null
@@ -1,8 +0,0 @@
-plugins {
-    `kotlin-dsl`
-}
-
-repositories {
-    gradlePluginPortal()
-    mavenCentral()
-}
\ No newline at end of file
diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt
deleted file mode 100644
index 1946a6af69bbd3c0e12f4b7d2b94f9583a590b57..0000000000000000000000000000000000000000
--- a/buildSrc/src/main/java/Dependencies.kt
+++ /dev/null
@@ -1,18 +0,0 @@
-object Config {
-    const val ANDROID_GRADLE_PLUGIN = "7.2.1"
-    const val KOTLIN = "1.6.10"
-    const val COMPILE_SDK = 32
-    const val MIN_SDK = 26
-    const val TARGET_SDK = 32
-}
-
-object Libs {
-    const val CORE_KTX = "androidx.core:core-ktx"
-    const val COROUTINES = "org.jetbrains.kotlinx:kotlinx-coroutines-android"
-    const val ESPRESSO_CORE = "androidx.test.espresso:espresso-core"
-    const val EXT_JUNIT = "androidx.test.ext:junit"
-    const val GSON = "com.google.code.gson:gson"
-    const val JUNIT = "junit:junit"
-    const val TIMBER = "com.jakewharton.timber:timber"
-    const val TRUTH = "com.google.truth:truth"
-}
\ No newline at end of file
diff --git a/depconstraints/build.gradle.kts b/depconstraints/build.gradle.kts
deleted file mode 100644
index fa6c93a6b5d3006bf161248325ff781831b16d89..0000000000000000000000000000000000000000
--- a/depconstraints/build.gradle.kts
+++ /dev/null
@@ -1,34 +0,0 @@
-plugins {
-    id("java-platform")
-    id("maven-publish")
-}
-
-val core = "1.7.0"
-val coroutines = "1.3.9"
-val espresso = "3.4.0"
-val extJunit = "1.1.3"
-val gson = "2.8.6"
-val junit = "4.13.2"
-val timber = "5.0.1"
-val truth = "1.1.3"
-
-dependencies {
-    constraints {
-        api("${Libs.CORE_KTX}:$core")
-        api("${Libs.COROUTINES}:$coroutines")
-        api("${Libs.ESPRESSO_CORE}:$espresso")
-        api("${Libs.EXT_JUNIT}:$extJunit")
-        api("${Libs.GSON}:$gson")
-        api("${Libs.JUNIT}:$junit")
-        api("${Libs.TIMBER}:$timber")
-        api("${Libs.TRUTH}:$truth")
-    }
-}
-
-publishing {
-    publications {
-        create<MavenPublication>("dAppsPlatform") {
-            from(components["javaPlatform"])
-        }
-    }
-}
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index e708b1c023ec8b20f512888fe07c5bd3ff77bb8f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradlew.bat b/gradlew.bat
index ac1b06f93825db68fb0c0b5150917f340eaa5d02..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -1,89 +0,0 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem      https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem  Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto execute
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 0063f33d4d284cc3470e4506ad860efc6658d51f..eb32f64bb5b2f329b426de63a648608e07cfb6c5 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -12,8 +12,6 @@ dependencyResolutionManagement {
         mavenCentral()
     }
 }
-rootProject.name = "Elixxir dApps SDK Kotlin"
-include(":app")
-include(":depconstraints")
+     
 include(":cmix")
 include(":xxclient")
diff --git a/xxclient/build.gradle.kts b/xxclient/build.gradle.kts
index 0e3ecf87f047b3b0cec1444ac10bab03a4fa9fd3..81bee78ab9748a53ce537dd426556d53ad24f14c 100644
--- a/xxclient/build.gradle.kts
+++ b/xxclient/build.gradle.kts
@@ -5,11 +5,11 @@ plugins {
 }
 
 android {
-    compileSdk = Config.COMPILE_SDK
+    compileSdk = 32
 
     defaultConfig {
-        minSdk = Config.MIN_SDK
-        targetSdk = Config.TARGET_SDK
+        minSdk = 26
+        targetSdk = 32
 
         testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
     }
@@ -34,20 +34,12 @@ android {
 
 dependencies {
     implementation(fileTree(mapOf("include" to listOf("*.jar"), "dir" to "libs")))
-    implementation((project(":cmix")))
+    api((project(":cmix")))
 
-    api(platform(project(":depconstraints")))
-    kapt(platform(project(":depconstraints")))
-    androidTestApi(platform(project(":depconstraints")))
+    implementation("androidx.core:core-ktx:1.7.0")
+    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9")
+    implementation("com.google.code.gson:gson:2.8.6")
 
-    implementation(Libs.CORE_KTX)
-    implementation(Libs.COROUTINES)
-    implementation(Libs.GSON)
-    implementation(Libs.TIMBER)
-
-    testImplementation(Libs.JUNIT)
-    testImplementation(Libs.TRUTH)
-
-    androidTestImplementation(Libs.ESPRESSO_CORE)
-    androidTestImplementation(Libs.EXT_JUNIT)
+    testImplementation("junit:junit:4.13.2")
+    testImplementation("com.google.truth:truth:1.1.3")
 }
\ No newline at end of file
diff --git a/xxclient/src/main/java/io/elixxir/xxclient/bindings/Bindings.kt b/xxclient/src/main/java/io/elixxir/xxclient/bindings/Bindings.kt
new file mode 100644
index 0000000000000000000000000000000000000000..54fae069d8c01abbacaf3326d4b79164f61edc6c
--- /dev/null
+++ b/xxclient/src/main/java/io/elixxir/xxclient/bindings/Bindings.kt
@@ -0,0 +1,149 @@
+package io.elixxir.xxclient.bindings
+
+import io.elixxir.xxclient.backup.Backup
+import io.elixxir.xxclient.callbacks.*
+import io.elixxir.xxclient.channel.Channel
+import io.elixxir.xxclient.cmix.CMix
+import io.elixxir.xxclient.dummytraffic.DummyTraffic
+import io.elixxir.xxclient.e2e.E2e
+import io.elixxir.xxclient.filetransfer.FileTransfer
+import io.elixxir.xxclient.models.*
+import io.elixxir.xxclient.models.BackupUpdateListener
+import io.elixxir.xxclient.userdiscovery.UserDiscovery
+import io.elixxir.xxclient.utils.*
+
+interface Bindings {
+    val defaultCmixParams: CmixParams
+    val defaultE2eParams: E2eParams
+    val defaultE2eFileTransferParams: E2eFileTransferParams
+    val defaultFileTransferParams: FileTransferParams
+    val defaultSingleUseParams: SingleUseParams
+    val gitVersion: String
+    val dependencies: String
+
+    fun downloadAndVerifySignedNdf(
+        environmentUrl: String,
+        certificate: Certificate,
+    ): Ndf
+
+    fun generateSecret(byteLength: Long): Password
+
+    fun loadCmix(
+        sessionFileDirectory: String,
+        sessionPassword: Password,
+        cmixParams: CmixParams
+    ): CMix
+
+    fun login(
+        e2eId: E2eId,
+        authCallbacks: AuthEventListener,
+        receptionIdentity: ReceptionIdentity,
+        e2eParams: E2eParams
+    ): E2e
+
+    fun loginEphemeral(
+        e2eId: E2eId,
+        authCallbacks: AuthEventListener,
+        receptionIdentity: ReceptionIdentity,
+        e2eParams: E2eParams
+    ): E2e
+
+    fun getOrCreateUd(
+        e2eId: E2eId,
+        networkFollowerStatus: NetworkFollowerStatus,
+        username: String,
+        signature: Signature,
+        udCert: CertificateData,
+        contact: Contact,
+        udIpAddress: String
+    ): UserDiscovery
+
+    fun newUdFromBackup(
+        e2eId: E2eId,
+        networkFollowerStatus: NetworkFollowerStatus,
+        emailFact: Fact,
+        phoneFact: Fact,
+        udCert: CertificateData,
+        contact: Contact,
+        udAddress: String
+    ): UserDiscovery
+
+    fun newDummyTrafficManager(
+        cmixId: Long,
+        maxNumMessages: Long,
+        avgSendDeltaMS: Long,
+        randomRangeMS: Long
+    ): DummyTraffic
+
+    fun registerLogger(logLevel: LogLevel, logWriter: LogWriter)
+
+    fun initializeBackup(
+        e2eId: E2eId,
+        udId: Long,
+        backupPassword: String,
+        updateListener: BackupUpdateListener
+    ): Backup
+
+    fun resumeBackup(
+        e2eId: E2eId,
+        udId: Long,
+        updateListener: BackupUpdateListener
+    ): Backup
+
+    fun fetchSignedNdf(
+        url: String,
+        cert: String
+    ): Ndf
+
+    fun getReceptionIdentity(
+        key: String,
+        e2eId: E2eId
+    ): ReceptionIdentity
+
+    fun newFileTransferManager(
+        e2eId: E2eId,
+        incomingFileListener: IncomingFileListener,
+        e2eFileTransferParamsJson: ByteArray,
+        fileTransferParamsJson: ByteArray
+    ): FileTransfer
+
+    fun getIdFromContact(contactData: ContactData): ByteArray
+    fun getPublicKeyFromContact(contactData: ContactData): ByteArray
+    fun getFactsFromContact(contactData: ContactData): Fact
+    fun setFactsOnContact(contactData: ContactData, fact: Fact): ContactData
+
+    fun searchUd(
+        e2eId: E2eId,
+        udContact: Contact,
+        listener: UdSearchResultListener,
+        factsListJson: ByteArray,
+        singleRequestParamsJson: ByteArray
+    ): ContactList
+
+    fun lookupUd(
+        e2eId: E2eId,
+        udContact: Contact,
+        listener: UdLookupResultListener,
+        lookupId: UserId,
+        singleRequestParamsJson: ByteArray
+    ): SingleUseReport
+
+    fun newBroadcastChannel(cmixId: Long, channelDef: ChannelDef): Channel
+
+    fun storeReceptionIdentity(
+        key: String,
+        identity: ReceptionIdentity,
+        cmixId: Long
+    )
+
+    fun transmitSingleUse(
+        e2eId: E2eId,
+        recipient: Contact,
+        tag: String,
+        payload: Payload,
+        paramsJson: ByteArray,
+        listener: SingleUseResponseListener
+    ): SingleUseReport
+
+    fun updateCommonErrors(errorsJson: String)
+}
\ No newline at end of file
diff --git a/xxclient/src/main/java/io/elixxir/xxclient/bindings/BindingsAdapter.kt b/xxclient/src/main/java/io/elixxir/xxclient/bindings/BindingsAdapter.kt
new file mode 100644
index 0000000000000000000000000000000000000000..8555ec4fd1f9f930a451d4e2f2cdbb023efe3aab
--- /dev/null
+++ b/xxclient/src/main/java/io/elixxir/xxclient/bindings/BindingsAdapter.kt
@@ -0,0 +1,310 @@
+package io.elixxir.xxclient.bindings
+
+import io.elixxir.xxclient.backup.Backup
+import io.elixxir.xxclient.backup.BackupAdapter
+import io.elixxir.xxclient.callbacks.*
+import io.elixxir.xxclient.channel.Channel
+import io.elixxir.xxclient.channel.ChannelAdapter
+import io.elixxir.xxclient.cmix.CMix
+import io.elixxir.xxclient.cmix.CMixAdapter
+import io.elixxir.xxclient.dummytraffic.DummyTraffic
+import io.elixxir.xxclient.dummytraffic.DummyTrafficAdapter
+import io.elixxir.xxclient.e2e.E2e
+import io.elixxir.xxclient.e2e.E2eAdapter
+import io.elixxir.xxclient.filetransfer.FileTransfer
+import io.elixxir.xxclient.filetransfer.FileTransferAdapter
+import io.elixxir.xxclient.models.*
+import io.elixxir.xxclient.models.BackupUpdateListener
+import io.elixxir.xxclient.models.BindingsModel.Companion.decode
+import io.elixxir.xxclient.models.BindingsModel.Companion.encode
+import io.elixxir.xxclient.models.ReceiveFileCallbackAdapter
+import io.elixxir.xxclient.models.UpdateBackupFuncAdapter
+import io.elixxir.xxclient.userdiscovery.UserDiscovery
+import io.elixxir.xxclient.userdiscovery.UserDiscoveryAdapter
+import io.elixxir.xxclient.utils.*
+import bindings.Bindings as CoreBindings
+
+open class BindingsAdapter : Bindings {
+    override val defaultCmixParams: CmixParams
+        get() = CoreBindings.getDefaultCMixParams()
+    override val defaultE2eParams: E2eParams
+        get() = CoreBindings.getDefaultE2EParams()
+    override val defaultE2eFileTransferParams: E2eFileTransferParams
+        get() = CoreBindings.getDefaultE2eFileTransferParams()
+    override val defaultFileTransferParams: FileTransferParams
+        get() = CoreBindings.getDefaultFileTransferParams()
+    override val defaultSingleUseParams: SingleUseParams
+        get() = CoreBindings.getDefaultSingleUseParams()
+    override val gitVersion: String
+        get() = CoreBindings.getGitVersion()
+    override val dependencies: String
+        get() = CoreBindings.getDependencies()
+
+    override fun downloadAndVerifySignedNdf(
+        environmentUrl: String,
+        certificate: Certificate
+    ): Ndf {
+        return CoreBindings.downloadAndVerifySignedNdfWithUrl(environmentUrl, certificate)
+    }
+
+    override fun generateSecret(byteLength: Long): Password {
+        return CoreBindings.generateSecret(byteLength)
+    }
+
+    override fun loadCmix(
+        sessionFileDirectory: String,
+        sessionPassword: Password,
+        cmixParams: CmixParams
+    ): CMix {
+        return CMixAdapter(
+            CoreBindings.loadCmix(sessionFileDirectory, sessionPassword, cmixParams)
+        )
+    }
+
+    override fun login(
+        e2eId: E2eId,
+        authCallbacks: AuthEventListener,
+        receptionIdentity: ReceptionIdentity,
+        e2eParams: E2eParams
+    ): E2e {
+        return E2eAdapter(
+            CoreBindings.login(
+                e2eId,
+                AuthCallbacksAdapter(authCallbacks),
+                encode(receptionIdentity),
+                e2eParams
+            )
+        )
+    }
+
+    override fun loginEphemeral(
+        e2eId: E2eId,
+        authCallbacks: AuthEventListener,
+        receptionIdentity: ReceptionIdentity,
+        e2eParams: E2eParams
+    ): E2e {
+        return E2eAdapter(
+            CoreBindings.loginEphemeral(
+                e2eId,
+                AuthCallbacksAdapter(authCallbacks),
+                encode(receptionIdentity),
+                e2eParams
+            )
+        )
+    }
+
+    override fun getOrCreateUd(
+        e2eId: E2eId,
+        networkFollowerStatus: NetworkFollowerStatus,
+        username: String,
+        signature: Signature,
+        udCert: CertificateData,
+        contact: Contact,
+        udIpAddress: String
+    ): UserDiscovery {
+        return UserDiscoveryAdapter(
+            CoreBindings.newOrLoadUd(
+                e2eId,
+                { networkFollowerStatus.code },
+                username,
+                signature,
+                udCert,
+                contact.encoded(),
+                udIpAddress
+            )
+        )
+    }
+
+    override fun newUdFromBackup(
+        e2eId: E2eId,
+        networkFollowerStatus: NetworkFollowerStatus,
+        emailFact: Fact,
+        phoneFact: Fact,
+        udCert: CertificateData,
+        contact: Contact,
+        udAddress: String
+    ): UserDiscovery {
+        return UserDiscoveryAdapter(
+            CoreBindings.newUdManagerFromBackup(
+                e2eId,
+                { networkFollowerStatus.code },
+                encode(emailFact),
+                encode(phoneFact),
+                udCert,
+                contact.encoded(),
+                udAddress
+            )
+        )
+    }
+
+    override fun newDummyTrafficManager(
+        cmixId: Long,
+        maxNumMessages: Long,
+        avgSendDeltaMS: Long,
+        randomRangeMS: Long
+    ): DummyTraffic {
+        return DummyTrafficAdapter(
+            CoreBindings.newDummyTrafficManager(
+                cmixId,
+                maxNumMessages,
+                avgSendDeltaMS,
+                randomRangeMS)
+        )
+    }
+
+    override fun registerLogger(logLevel: LogLevel, logWriter: LogWriter) {
+        CoreBindings.logLevel(logLevel.code)
+        CoreBindings.registerLogWriter(logWriter)
+    }
+
+    override fun initializeBackup(
+        e2eId: E2eId,
+        udId: Long,
+        backupPassword: String,
+        updateListener: BackupUpdateListener
+    ): Backup {
+        return BackupAdapter(
+            CoreBindings.initializeBackup(
+                e2eId,
+                udId,
+                backupPassword,
+                UpdateBackupFuncAdapter(updateListener)
+            )
+        )
+    }
+
+    override fun resumeBackup(
+        e2eId: E2eId,
+        udId: Long,
+        updateListener: BackupUpdateListener
+    ): Backup {
+        return BackupAdapter(
+            CoreBindings.resumeBackup(
+                e2eId,
+                udId,
+                UpdateBackupFuncAdapter(updateListener)
+            )
+        )
+    }
+
+    override fun fetchSignedNdf(url: String, cert: String): Ndf {
+        return CoreBindings.downloadAndVerifySignedNdfWithUrl(url, cert)
+    }
+
+    override fun getReceptionIdentity(key: String, e2eId: E2eId): ReceptionIdentity {
+        return decode(
+            CoreBindings.loadReceptionIdentity(key, e2eId),
+            ReceptionIdentity::class.java
+        )
+    }
+
+    override fun newFileTransferManager(
+        e2eId: E2eId,
+        incomingFileListener: IncomingFileListener,
+        e2eFileTransferParamsJson: ByteArray,
+        fileTransferParamsJson: ByteArray
+    ): FileTransfer {
+        return FileTransferAdapter(
+            CoreBindings.initFileTransfer(
+                e2eId,
+                ReceiveFileCallbackAdapter(incomingFileListener),
+                e2eFileTransferParamsJson,
+                fileTransferParamsJson
+            )
+        )
+    }
+
+    override fun getIdFromContact(contactData: ContactData): ByteArray {
+        return CoreBindings.getIDFromContact(contactData)
+    }
+
+    override fun getPublicKeyFromContact(contactData: ContactData): ByteArray {
+        return CoreBindings.getPubkeyFromContact(contactData)
+    }
+
+    override fun getFactsFromContact(contactData: ContactData): Fact {
+        return decode(
+            CoreBindings.getFactsFromContact(contactData),
+            Fact::class.java
+        )
+    }
+
+    override fun setFactsOnContact(contactData: ContactData, fact: Fact): ContactData {
+        return CoreBindings.setFactsOnContact(contactData, encode(fact))
+    }
+
+    override fun searchUd(
+        e2eId: E2eId,
+        udContact: Contact,
+        listener: UdSearchResultListener,
+        factsListJson: ByteArray,
+        singleRequestParamsJson: ByteArray
+    ): ContactList {
+        val result = CoreBindings.searchUD(
+                e2eId,
+                udContact.encoded(),
+                UdSearchCallbackAdapter(listener),
+                factsListJson,
+                singleRequestParamsJson
+            )
+        return decode(result, ContactList::class.java)
+    }
+
+    override fun lookupUd(
+        e2eId: E2eId,
+        udContact: Contact,
+        listener: UdLookupResultListener,
+        lookupId: UserId,
+        singleRequestParamsJson: ByteArray
+    ): SingleUseReport {
+        val result = CoreBindings.lookupUD(
+            e2eId,
+            udContact.encoded(),
+            UdLookupCallbackAdapter(listener),
+            lookupId,
+            singleRequestParamsJson
+        )
+        return decode(result, SingleUseReport::class.java)
+    }
+
+    override fun newBroadcastChannel(cmixId: Long, channelDef: ChannelDef): Channel {
+        return ChannelAdapter(
+            CoreBindings.newBroadcastChannel(cmixId, encode(channelDef))
+        )
+    }
+
+    override fun storeReceptionIdentity(
+        key: String,
+        identity: ReceptionIdentity,
+        cmixId: Long
+    ) {
+        CoreBindings.storeReceptionIdentity(
+            key,
+            encode(identity),
+            cmixId
+        )
+    }
+
+    override fun transmitSingleUse(
+        e2eId: E2eId,
+        recipient: Contact,
+        tag: String,
+        payload: Payload,
+        paramsJson: ByteArray,
+        listener: SingleUseResponseListener
+    ): SingleUseReport {
+        val result = CoreBindings.transmitSingleUse(
+            e2eId,
+            recipient.encoded(),
+            tag,
+            payload,
+            paramsJson,
+            SingleUseResponseAdapter(listener)
+        )
+        return decode(result, SingleUseReport::class.java)
+    }
+
+    override fun updateCommonErrors(errorsJson: String) {
+        CoreBindings.updateCommonErrors(errorsJson)
+    }
+}
\ No newline at end of file
diff --git a/xxclient/src/main/java/io/elixxir/xxclient/e2e/E2eAdapter.kt b/xxclient/src/main/java/io/elixxir/xxclient/e2e/E2eAdapter.kt
index d34ae8b3bbbf72d9b2d061d8ce1cc99e9ad40a94..24d3de45e95489c8871d7a01ca79f834ba999e4e 100644
--- a/xxclient/src/main/java/io/elixxir/xxclient/e2e/E2eAdapter.kt
+++ b/xxclient/src/main/java/io/elixxir/xxclient/e2e/E2eAdapter.kt
@@ -127,7 +127,7 @@ open class E2eAdapter(protected val e2e: E2eBindings) : E2e{
             messageType.code,
             receiverId,
             payload,
-            encode(params)
+            params
         )
         return decode(reportData, SendReport::class.java)
     }
diff --git a/xxclient/src/main/java/io/elixxir/xxclient/filetransfer/FileTransfer.kt b/xxclient/src/main/java/io/elixxir/xxclient/filetransfer/FileTransfer.kt
new file mode 100644
index 0000000000000000000000000000000000000000..ee1f589ef0f63333abb02861c17097bf768796fc
--- /dev/null
+++ b/xxclient/src/main/java/io/elixxir/xxclient/filetransfer/FileTransfer.kt
@@ -0,0 +1,9 @@
+package io.elixxir.xxclient.filetransfer
+
+import bindings.FileTransfer
+
+interface FileTransfer {
+
+}
+
+open class FileTransferAdapter(protected val binding: FileTransfer) : io.elixxir.xxclient.filetransfer.FileTransfer
\ No newline at end of file
diff --git a/xxclient/src/main/java/io/elixxir/xxclient/models/BackupUpdateListener.kt b/xxclient/src/main/java/io/elixxir/xxclient/models/BackupUpdateListener.kt
new file mode 100644
index 0000000000000000000000000000000000000000..1097c3c903d9a17c39ea5d23562c50dfcc4c74bf
--- /dev/null
+++ b/xxclient/src/main/java/io/elixxir/xxclient/models/BackupUpdateListener.kt
@@ -0,0 +1,13 @@
+package io.elixxir.xxclient.models
+
+import bindings.UpdateBackupFunc
+
+interface BackupUpdateListener {
+    fun onBackupUpdated(backupData: ByteArray?)
+}
+
+open class UpdateBackupFuncAdapter(protected val listener: BackupUpdateListener) : UpdateBackupFunc {
+    override fun updateBackup(backupData: ByteArray?) {
+        listener.onBackupUpdated(backupData)
+    }
+}
\ No newline at end of file
diff --git a/xxclient/src/main/java/io/elixxir/xxclient/models/E2eParams.kt b/xxclient/src/main/java/io/elixxir/xxclient/models/ContactList.kt
similarity index 52%
rename from xxclient/src/main/java/io/elixxir/xxclient/models/E2eParams.kt
rename to xxclient/src/main/java/io/elixxir/xxclient/models/ContactList.kt
index 5831e94831569ddb823c7ea3b93bfe4dd7b8caf6..d3a3b81034d1ab5626805b5aa7ad81d96e0f3588 100644
--- a/xxclient/src/main/java/io/elixxir/xxclient/models/E2eParams.kt
+++ b/xxclient/src/main/java/io/elixxir/xxclient/models/ContactList.kt
@@ -1,3 +1,3 @@
 package io.elixxir.xxclient.models
 
-class E2eParams : BindingsModel
\ No newline at end of file
+class ContactList : BindingsModel
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/network/model/Environment.kt b/xxclient/src/main/java/io/elixxir/xxclient/models/Environment.kt
similarity index 57%
rename from app/src/main/java/io/elixxir/dapp/network/model/Environment.kt
rename to xxclient/src/main/java/io/elixxir/xxclient/models/Environment.kt
index 03e52f196c707327935baca045b5924b6ce19f41..1af0ff9e1e038d7a158395f351805e8b4102eb92 100644
--- a/app/src/main/java/io/elixxir/dapp/network/model/Environment.kt
+++ b/xxclient/src/main/java/io/elixxir/xxclient/models/Environment.kt
@@ -1,4 +1,4 @@
-package io.elixxir.dapp.network.model
+package io.elixxir.xxclient.models
 
 enum class Environment {
     MainNet, ReleaseNet
diff --git a/xxclient/src/main/java/io/elixxir/xxclient/models/IncomingFileListener.kt b/xxclient/src/main/java/io/elixxir/xxclient/models/IncomingFileListener.kt
new file mode 100644
index 0000000000000000000000000000000000000000..cde8a2888f61dc28dcfb2ebb874a8511b7c816d9
--- /dev/null
+++ b/xxclient/src/main/java/io/elixxir/xxclient/models/IncomingFileListener.kt
@@ -0,0 +1,15 @@
+package io.elixxir.xxclient.models
+
+import bindings.ReceiveFileCallback
+import io.elixxir.xxclient.utils.parse
+import java.lang.Exception
+
+interface IncomingFileListener {
+    fun onFileReceived(content: ReceivedFile)
+}
+
+open class ReceiveFileCallbackAdapter(val listener: IncomingFileListener) : ReceiveFileCallback {
+    override fun callback(fileData: ByteArray?, error: Exception?) {
+        parse(fileData, error, ReceivedFile::class.java)
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/io/elixxir/dapp/logger/model/LogLevel.kt b/xxclient/src/main/java/io/elixxir/xxclient/models/LogLevel.kt
similarity index 90%
rename from app/src/main/java/io/elixxir/dapp/logger/model/LogLevel.kt
rename to xxclient/src/main/java/io/elixxir/xxclient/models/LogLevel.kt
index 1147f7423eab6e5f59813044e50d3aeea4067126..318b6b520cc3c9765969773656b16506d6ba4aae 100644
--- a/app/src/main/java/io/elixxir/dapp/logger/model/LogLevel.kt
+++ b/xxclient/src/main/java/io/elixxir/xxclient/models/LogLevel.kt
@@ -1,4 +1,4 @@
-package io.elixxir.dapp.logger.model
+package io.elixxir.xxclient.models
 
 enum class LogLevel(val code: Long) {
     Trace(0),
@@ -17,4 +17,4 @@ enum class LogLevel(val code: Long) {
             } ?: throw(IllegalArgumentException("Invalid code"))
         }
     }
-}
\ No newline at end of file
+}
diff --git a/xxclient/src/main/java/io/elixxir/xxclient/models/ReceivedFile.kt b/xxclient/src/main/java/io/elixxir/xxclient/models/ReceivedFile.kt
new file mode 100644
index 0000000000000000000000000000000000000000..12b54adb94180fef2c9ed5dda6f843a9d4d2a2bd
--- /dev/null
+++ b/xxclient/src/main/java/io/elixxir/xxclient/models/ReceivedFile.kt
@@ -0,0 +1,13 @@
+package io.elixxir.xxclient.models
+
+import io.elixxir.xxclient.utils.FileTransferId
+import io.elixxir.xxclient.utils.UserId
+
+data class ReceivedFile(
+    val transferId: FileTransferId,
+    val senderId: UserId,
+    val previewData: ByteArray,
+    val fileName: String,
+    val filetype: String,
+    val fileSize: Long
+) : BindingsModel
\ No newline at end of file
diff --git a/xxclient/src/main/java/io/elixxir/xxclient/utils/Logging.kt b/xxclient/src/main/java/io/elixxir/xxclient/utils/Logging.kt
new file mode 100644
index 0000000000000000000000000000000000000000..413383a34507f0a2903d0c5bdc300ec1d7b2a180
--- /dev/null
+++ b/xxclient/src/main/java/io/elixxir/xxclient/utils/Logging.kt
@@ -0,0 +1,3 @@
+package io.elixxir.xxclient.utils
+
+typealias LogWriter = (String) -> Unit
\ No newline at end of file
diff --git a/xxclient/src/main/java/io/elixxir/xxclient/utils/TypeAlias.kt b/xxclient/src/main/java/io/elixxir/xxclient/utils/TypeAlias.kt
index 3608245b8badf29c40a1f277628c7a2f9dc883e8..e061741753f339b0dc7533f67089d9a82ef4a77f 100644
--- a/xxclient/src/main/java/io/elixxir/xxclient/utils/TypeAlias.kt
+++ b/xxclient/src/main/java/io/elixxir/xxclient/utils/TypeAlias.kt
@@ -9,4 +9,14 @@ typealias Password = ByteArray
 typealias RoundId = Long
 typealias UserId = ByteArray
 typealias E2eId = Long
-typealias ReceptionId = ByteArray
\ No newline at end of file
+typealias ReceptionId = ByteArray
+typealias SingleUseParams = ByteArray
+typealias FileTransferParams = ByteArray
+typealias E2eParams = ByteArray
+typealias E2eFileTransferParams = ByteArray
+typealias CmixParams = ByteArray
+typealias Certificate = String
+typealias Signature = ByteArray
+typealias Ndf = ByteArray
+typealias CertificateData = ByteArray
+typealias FileTransferId = Byte
\ No newline at end of file