diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml
index be23f69..427ed23 100644
--- a/.github/workflows/android.yml
+++ b/.github/workflows/android.yml
@@ -8,10 +8,10 @@ jobs:
     steps:
     - uses: actions/checkout@v1
 
-    - name: set up JDK 1.8
+    - name: set up JDK 11
       uses: actions/setup-java@v1
       with:
-        java-version: 1.8
+        java-version: 11
 
     - name: Build with Gradle
       run: ./gradlew build test
\ No newline at end of file
diff --git a/.github/workflows/style-check.yml b/.github/workflows/style-check.yml
index 9cd7ce0..37d611f 100644
--- a/.github/workflows/style-check.yml
+++ b/.github/workflows/style-check.yml
@@ -8,10 +8,10 @@ jobs:
     steps:
       - uses: actions/checkout@v1
 
-      - name: set up JDK 1.8
+      - name: set up JDK 11
         uses: actions/setup-java@v1
         with:
-          java-version: 1.8
+          java-version: 11
 
       - name: Ktlint check
         run: ./gradlew ktlintCheck
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 61a9130..fb7f4a8 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="CompilerConfiguration">
-    <bytecodeTargetLevel target="1.8" />
+    <bytecodeTargetLevel target="11" />
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..875a112
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,23 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0">
+    <option name="myName" value="Project Default" />
+    <inspection_tool class="PreviewAnnotationInFunctionWithParameters" enabled="true" level="ERROR" enabled_by_default="true">
+      <option name="previewFile" value="true" />
+    </inspection_tool>
+    <inspection_tool class="PreviewDimensionRespectsLimit" enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="previewFile" value="true" />
+    </inspection_tool>
+    <inspection_tool class="PreviewMultipleParameterProviders" enabled="true" level="ERROR" enabled_by_default="true">
+      <option name="previewFile" value="true" />
+    </inspection_tool>
+    <inspection_tool class="PreviewMustBeTopLevelFunction" enabled="true" level="ERROR" enabled_by_default="true">
+      <option name="previewFile" value="true" />
+    </inspection_tool>
+    <inspection_tool class="PreviewNeedsComposableAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
+      <option name="previewFile" value="true" />
+    </inspection_tool>
+    <inspection_tool class="PreviewPickerAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
+      <option name="previewFile" value="true" />
+    </inspection_tool>
+  </profile>
+</component>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 7bb9736..be9f721 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,7 +1,29 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="DesignSurface">
+    <option name="filePathToZoomLevelMap">
+      <map>
+        <entry key="../../../../../layout/compose-model-1637389114015.xml" value="0.375" />
+        <entry key="../../../../../layout/compose-model-1637993826951.xml" value="0.3264358108108108" />
+        <entry key="../../../../../layout/compose-model-1637995108188.xml" value="0.3264358108108108" />
+        <entry key="../../../../../layout/compose-model-1637995374268.xml" value="0.33" />
+        <entry key="../../../../../layout/compose-model-1638005744614.xml" value="0.25" />
+        <entry key="../../../../../layout/compose-model-1638005744616.xml" value="0.12332775919732442" />
+        <entry key="../../../../../layout/compose-model-1638005771522.xml" value="0.25" />
+        <entry key="../../../../../layout/compose-model-1638077548758.xml" value="0.25" />
+        <entry key="../../../../../layout/compose-model-1638077548759.xml" value="0.12332775919732442" />
+        <entry key="app/src/main/res/drawable/ic_launcher_background.xml" value="0.1" />
+        <entry key="app/src/main/res/layout/activity_main.xml" value="0.19882246376811594" />
+        <entry key="what-the-stack/src/main/res/drawable/ic_baseline_refresh_24.xml" value="0.1465" />
+        <entry key="what-the-stack/src/main/res/drawable/ic_outline_content_copy_24.xml" value="0.1465" />
+        <entry key="what-the-stack/src/main/res/drawable/ic_outline_share_24.xml" value="0.1465" />
+        <entry key="what-the-stack/src/main/res/drawable/ic_round_search_24.xml" value="0.1465" />
+        <entry key="what-the-stack/src/main/res/layout/activity_what_the_stack.xml" value="0.37604166666666666" />
+      </map>
+    </option>
+  </component>
   <component name="ExternalStorageConfigurationManager" enabled="true" />
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">
diff --git a/app/build.gradle b/app/build.gradle
index e469a44..297b44a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -41,7 +41,11 @@ android {
     }
 
     buildFeatures {
-        viewBinding true
+        compose true
+    }
+
+    composeOptions {
+        kotlinCompilerExtensionVersion "1.0.5"
     }
 }
 
@@ -53,9 +57,12 @@ dependencies {
     implementation libs.kotlinStdLib
     implementation libs.appCompat
     implementation libs.coreKtx
-    implementation libs.fragmentKtx
-    implementation libs.constraintLayout
-    implementation libs.materialComponents
+
+    implementation libs.composeActivity
+    implementation libs.composeMaterial
+    implementation libs.composeTooling
+    implementation libs.accompanistSysUi
+    implementation libs.accompanistInsets
 
     testImplementation libs.junit
 
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6840f78..b7bfb9e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -5,11 +5,13 @@
     <application
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
-        android:label="@string/app_name"
+        android:label="Crashy App"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
-        <activity android:name=".MainActivity">
+        <activity
+            android:name=".MainActivity"
+            android:exported="true">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 
diff --git a/app/src/main/java/com/haroldadmin/crashyapp/MainActivity.kt b/app/src/main/java/com/haroldadmin/crashyapp/MainActivity.kt
index 4c890cc..a4cfa9d 100644
--- a/app/src/main/java/com/haroldadmin/crashyapp/MainActivity.kt
+++ b/app/src/main/java/com/haroldadmin/crashyapp/MainActivity.kt
@@ -1,20 +1,19 @@
 package com.haroldadmin.crashyapp
 
 import android.os.Bundle
+import androidx.activity.compose.setContent
 import androidx.appcompat.app.AppCompatActivity
-import com.haroldadmin.crashyapp.databinding.ActivityMainBinding
+import com.haroldadmin.crashyapp.ui.pages.HomePage
+import com.haroldadmin.crashyapp.ui.theme.CrashyAppTheme
 
 class MainActivity : AppCompatActivity() {
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        val binding = ActivityMainBinding.inflate(layoutInflater)
-        setContentView(binding.root)
-
-        binding.crashButton.setOnClickListener {
-            throw BecauseICanException()
+        setContent {
+            CrashyAppTheme {
+                HomePage()
+            }
         }
     }
 }
-
-private class BecauseICanException : Exception("This exception is thrown purely because it can be thrown")
diff --git a/app/src/main/java/com/haroldadmin/crashyapp/ui/pages/HomePage.kt b/app/src/main/java/com/haroldadmin/crashyapp/ui/pages/HomePage.kt
new file mode 100644
index 0000000..d245e77
--- /dev/null
+++ b/app/src/main/java/com/haroldadmin/crashyapp/ui/pages/HomePage.kt
@@ -0,0 +1,41 @@
+package com.haroldadmin.crashyapp.ui.pages
+
+import androidx.compose.foundation.layout.*
+import androidx.compose.material.*
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.unit.dp
+
+@Composable
+fun HomePage() {
+    Scaffold(
+        topBar = {
+            TopAppBar {
+                Text(text = "Crashy App", style = MaterialTheme.typography.h6)
+            }
+        }
+    ) {
+        Column(
+            horizontalAlignment = Alignment.CenterHorizontally,
+            verticalArrangement = Arrangement.Center,
+            modifier = Modifier
+                .padding(8.dp)
+                .fillMaxWidth()
+                .fillMaxHeight()
+        ) {
+            Text(
+                text = "Press the button below to see error screen from WhatTheStack!",
+                textAlign = TextAlign.Center
+            )
+            Spacer(modifier = Modifier.height(16.dp))
+            Button(onClick = { throw BecauseICanException() }) {
+                Text(text = "Crash!")
+            }
+        }
+    }
+}
+
+private class BecauseICanException :
+    Exception("This exception is thrown purely because it can be thrown")
diff --git a/app/src/main/java/com/haroldadmin/crashyapp/ui/theme/CrashyAppTheme.kt b/app/src/main/java/com/haroldadmin/crashyapp/ui/theme/CrashyAppTheme.kt
new file mode 100644
index 0000000..c14ff85
--- /dev/null
+++ b/app/src/main/java/com/haroldadmin/crashyapp/ui/theme/CrashyAppTheme.kt
@@ -0,0 +1,20 @@
+package com.haroldadmin.crashyapp.ui.theme
+
+import androidx.compose.material.MaterialTheme
+import androidx.compose.material.lightColors
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.graphics.Color
+
+private val ColorPalette = lightColors(
+    primary = Color(0xffd32f2f),
+    primaryVariant = Color(0xff9a0007),
+    secondary = Color(0xff616161),
+    secondaryVariant = Color(0x33373737),
+)
+
+@Composable
+fun CrashyAppTheme(
+    content: @Composable () -> Unit
+) {
+    MaterialTheme(colors = ColorPalette, content = content)
+}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
deleted file mode 100644
index 0131968..0000000
--- a/app/src/main/res/layout/activity_main.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context=".MainActivity"
-    android:background="?attr/colorSurface"
-    android:padding="32dp">
-
-    <TextView
-        android:id="@+id/title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/app_name"
-        android:textAppearance="?attr/textAppearanceHeadline4"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
-    <com.google.android.material.button.MaterialButton
-        android:id="@+id/crashButton"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:text="Crash!"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        android:textAppearance="?attr/textAppearanceButton"
-        app:layout_constraintTop_toBottomOf="@id/title"
-        app:layout_constraintBottom_toBottomOf="parent"/>
-
-</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
deleted file mode 100644
index f12742b..0000000
--- a/app/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-    <color name="primaryColor">#d32f2f</color>
-    <color name="primaryLightColor">#ff6659</color>
-    <color name="primaryDarkColor">#9a0007</color>
-    <color name="secondaryColor">#616161</color>
-    <color name="secondaryLightColor">#8e8e8e</color>
-    <color name="secondaryDarkColor">#373737</color>
-    <color name="primaryTextColor">#ffffff</color>
-    <color name="secondaryTextColor">#ffffff</color>
-</resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
deleted file mode 100644
index d1882f5..0000000
--- a/app/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<resources>
-    <string name="app_name">Crashy App</string>
-</resources>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 05ba9fc..f3f0b8f 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,13 +1,4 @@
 <resources>
-
-    <style name="AppTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
-        <item name="colorPrimary">@color/primaryColor</item>
-        <item name="colorPrimaryVariant">@color/primaryLightColor</item>
-        <item name="colorPrimaryDark">@color/primaryDarkColor</item>
-        <item name="colorOnPrimary">@color/primaryTextColor</item>
-        <item name="colorSecondary">@color/secondaryColor</item>
-        <item name="colorSecondaryVariant">@color/secondaryLightColor</item>
-        <item name="colorOnSecondary">@color/secondaryTextColor</item>
+    <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
     </style>
-
 </resources>
diff --git a/build.gradle b/build.gradle
index 613bb94..658afa7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,9 +1,9 @@
 buildscript {
     ext.buildConfig = [
             "applicationId": "com.haroldadmin.crashyapp",
-            "compileSdk"   : 29,
+            "compileSdk"   : 31,
             "minSdk"       : 21,
-            "targetSdk"    : 29,
+            "targetSdk"    : 31,
             "versionCode"  : 1,
             "versionName"  : "0.0.1"
     ]
@@ -33,7 +33,7 @@ allprojects {
 subprojects {
     apply plugin: "org.jlleitschuh.gradle.ktlint"
     ktlint {
-        version = "0.36.0"
+        version = "0.43.0"
         ignoreFailures = false
         disabledRules = ["no-wildcard-imports"]
     }
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 2a3d007..35a7f95 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -1,6 +1,6 @@
 [versions]
-kotlin = "1.5.20"
-agp = "4.2.0"
+kotlin = "1.5.31"
+agp = "7.0.3"
 ktlint = "10.1.0"
 appCompat = "1.3.0"
 coreTest = "2.0.0"
@@ -17,9 +17,17 @@ espressoCore = "3.2.0"
 mockk = "1.9.3"
 robolectric = "4.3.1"
 startup = "1.0.0"
+composeActivity = "1.3.1"
+compose = "1.0.5"
+accompanist = "0.21.3-beta"
 
 [libraries]
 
+composeActivity = { module = "androidx.activity:activity-compose", version.ref = "composeActivity" }
+composeMaterial = { module = "androidx.compose.material:material", version.ref = "compose" }
+composeTooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" }
+accompanistSysUi = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanist" }
+accompanistInsets = { module = "com.google.accompanist:accompanist-insets", version.ref = "accompanist" }
 agp = { module = "com.android.tools.build:gradle", version.ref = "agp" }
 kotlinGradlePlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
 ktlintGradlePlugin = { module = "org.jlleitschuh.gradle:ktlint-gradle", version.ref = "ktlint" }
diff --git a/what-the-stack/build.gradle b/what-the-stack/build.gradle
index 564ebb8..a9122bc 100644
--- a/what-the-stack/build.gradle
+++ b/what-the-stack/build.gradle
@@ -36,7 +36,11 @@ android {
     }
 
     buildFeatures {
-        viewBinding true
+        compose true
+    }
+
+    composeOptions {
+        kotlinCompilerExtensionVersion libs.versions.compose.get()
     }
 }
 
@@ -46,11 +50,13 @@ dependencies {
     implementation libs.kotlinStdLib
     implementation libs.appCompat
     implementation libs.coreKtx
-    implementation libs.fragmentKtx
-    implementation libs.constraintLayout
-    implementation libs.materialComponents
     implementation libs.startup
-    implementation libs.insetter
+
+    implementation libs.composeActivity
+    implementation libs.composeMaterial
+    implementation libs.composeTooling
+    implementation libs.accompanistSysUi
+    implementation libs.accompanistInsets
 
     testImplementation libs.junit
     testImplementation libs.mockk
diff --git a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ExceptionProcessor.kt b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ExceptionProcessor.kt
index d02d8bb..2d564a5 100644
--- a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ExceptionProcessor.kt
+++ b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ExceptionProcessor.kt
@@ -1,7 +1,7 @@
 package com.haroldadmin.whatthestack
 
 import android.os.Parcelable
-import kotlinx.android.parcel.Parcelize
+import kotlinx.parcelize.Parcelize
 
 /**
  * Represents the data of the exception to be displayed to the user.
diff --git a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackActivity.kt b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackActivity.kt
index 54c46c6..108afee 100644
--- a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackActivity.kt
+++ b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackActivity.kt
@@ -1,18 +1,14 @@
 package com.haroldadmin.whatthestack
 
-import android.content.ClipData
-import android.content.ClipboardManager
-import android.content.Context
-import android.content.Intent
-import android.net.Uri
 import android.os.Bundle
-import android.text.method.ScrollingMovementMethod
+import androidx.activity.compose.setContent
 import androidx.appcompat.app.AppCompatActivity
 import androidx.core.view.WindowCompat
-import com.google.android.material.snackbar.Snackbar
-import com.haroldadmin.whatthestack.databinding.ActivityWhatTheStackBinding
-import dev.chrisbanes.insetter.Insetter
-import dev.chrisbanes.insetter.windowInsetTypesOf
+import com.google.accompanist.insets.ProvideWindowInsets
+import com.google.accompanist.systemuicontroller.rememberSystemUiController
+import com.haroldadmin.whatthestack.ui.pages.ExceptionPage
+import com.haroldadmin.whatthestack.ui.theme.SystemBarsColor
+import com.haroldadmin.whatthestack.ui.theme.WhatTheStackTheme
 
 /**
  * An Activity which displays various pieces of information regarding the exception which
@@ -20,90 +16,27 @@ import dev.chrisbanes.insetter.windowInsetTypesOf
  */
 class WhatTheStackActivity : AppCompatActivity() {
 
-    private lateinit var binding: ActivityWhatTheStackBinding
-
-    private val clipboardManager: ClipboardManager by lazy {
-        getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
-    }
-
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        binding = ActivityWhatTheStackBinding.inflate(layoutInflater)
-        setContentView(binding.root)
-
         WindowCompat.setDecorFitsSystemWindows(window, false)
 
-        Insetter.builder()
-            .padding(windowInsetTypesOf(statusBars = true, navigationBars = true))
-            .applyToView(binding.root)
-
-        val type = intent.getStringExtra(KEY_EXCEPTION_TYPE)
-        val cause = intent.getStringExtra(KEY_EXCEPTION_CAUSE)
-        val message = intent.getStringExtra(KEY_EXCEPTION_MESSAGE)
-        val stackTrace = intent.getStringExtra(KEY_EXCEPTION_STACKTRACE)
-
-        binding.stacktrace.apply {
-            text = stackTrace
-            setHorizontallyScrolling(true)
-            movementMethod = ScrollingMovementMethod()
-        }
-
-        binding.exceptionName.apply {
-            text = getString(R.string.exception_name, type)
-        }
-
-        binding.exceptionCause.apply {
-            text = getString(R.string.exception_cause, cause)
-        }
-
-        binding.exceptionMessage.apply {
-            text = getString(R.string.exception_message, message)
-        }
-
-        binding.copyStacktrace.apply {
-            setOnClickListener {
-                val clipping = ClipData.newPlainText("stacktrace", stackTrace)
-                clipboardManager.setPrimaryClip(clipping)
-                snackbar { R.string.copied_message }
-            }
-        }
-
-        binding.shareStacktrace.apply {
-            setOnClickListener {
-                val sendIntent: Intent = Intent().apply {
-                    this.action = Intent.ACTION_SEND
-                    this.putExtra(Intent.EXTRA_TEXT, stackTrace)
-                    this.type = "text/plain"
+        val type = intent.getStringExtra(KEY_EXCEPTION_TYPE) ?: ""
+        val message = intent.getStringExtra(KEY_EXCEPTION_MESSAGE) ?: ""
+        val stackTrace = intent.getStringExtra(KEY_EXCEPTION_STACKTRACE) ?: ""
+
+        setContent {
+            val sysUiController = rememberSystemUiController()
+            sysUiController.setSystemBarsColor(SystemBarsColor)
+
+            WhatTheStackTheme {
+                ProvideWindowInsets {
+                    ExceptionPage(
+                        type = type,
+                        message = message,
+                        stackTrace = stackTrace
+                    )
                 }
-
-                val shareIntent = Intent.createChooser(sendIntent, null)
-                startActivity(shareIntent)
-            }
-        }
-
-        binding.launchApplication.apply {
-            setOnClickListener {
-                context.packageManager.getLaunchIntentForPackage(applicationContext.packageName)
-                    ?.let {
-                        it.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
-                        startActivity(it)
-                    }
             }
         }
-
-        binding.searchStackoverflow.apply {
-            setOnClickListener {
-                val searchQuery = "$cause: $message"
-                val searchIntent: Intent = Intent().apply {
-                    this.action = Intent.ACTION_VIEW
-                    this.data = Uri.parse(generateStackoverflowSearchUrl(searchQuery))
-                }
-                startActivity(searchIntent)
-            }
-        }
-    }
-
-    private inline fun snackbar(messageProvider: () -> Int) {
-        Snackbar.make(binding.nestedScrollRoot, messageProvider(), Snackbar.LENGTH_SHORT).show()
     }
 }
diff --git a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackConnection.kt b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackConnection.kt
index 16df4d5..3e1f45b 100644
--- a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackConnection.kt
+++ b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackConnection.kt
@@ -5,7 +5,7 @@ import android.content.ServiceConnection
 import android.os.IBinder
 
 internal class WhatTheStackConnection(
-    private val onDisconnected: () -> Unit = { Unit },
+    private val onDisconnected: () -> Unit = { },
     private val onConnected: (IBinder) -> Unit
 ) : ServiceConnection {
 
diff --git a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackExceptionHandler.kt b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackExceptionHandler.kt
index d581270..98de608 100644
--- a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackExceptionHandler.kt
+++ b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackExceptionHandler.kt
@@ -19,14 +19,16 @@ internal class WhatTheStackExceptionHandler(
 
         val exceptionData = e.process()
 
-        service.send(Message().apply {
-            data = bundleOf(
-                KEY_EXCEPTION_TYPE to exceptionData.type,
-                KEY_EXCEPTION_CAUSE to exceptionData.cause,
-                KEY_EXCEPTION_MESSAGE to exceptionData.message,
-                KEY_EXCEPTION_STACKTRACE to exceptionData.stacktrace
-            )
-        })
+        service.send(
+            Message().apply {
+                data = bundleOf(
+                    KEY_EXCEPTION_TYPE to exceptionData.type,
+                    KEY_EXCEPTION_CAUSE to exceptionData.cause,
+                    KEY_EXCEPTION_MESSAGE to exceptionData.message,
+                    KEY_EXCEPTION_STACKTRACE to exceptionData.stacktrace
+                )
+            }
+        )
 
         defaultHandler?.uncaughtException(t, e) ?: Process.killProcess(Process.myPid())
     }
diff --git a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackService.kt b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackService.kt
index 19a8cd5..e93833b 100644
--- a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackService.kt
+++ b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/WhatTheStackService.kt
@@ -3,10 +3,7 @@ package com.haroldadmin.whatthestack
 import android.app.Service
 import android.content.Context
 import android.content.Intent
-import android.os.Handler
-import android.os.IBinder
-import android.os.Message
-import android.os.Messenger
+import android.os.*
 
 /**
  * A Bound Service which runs in a separate process than the application.
@@ -28,7 +25,7 @@ class WhatTheStackService : Service() {
 
     internal class WhatTheStackHandler(
         private val applicationContext: Context
-    ) : Handler() {
+    ) : Handler(Looper.getMainLooper()) {
         override fun handleMessage(msg: Message) {
             val type = msg.data.getString(KEY_EXCEPTION_TYPE)
             val cause = msg.data.getString(KEY_EXCEPTION_CAUSE)
diff --git a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/components/OutlinedIconButton.kt b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/components/OutlinedIconButton.kt
new file mode 100644
index 0000000..6d47bcc
--- /dev/null
+++ b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/components/OutlinedIconButton.kt
@@ -0,0 +1,38 @@
+package com.haroldadmin.whatthestack.ui.components
+
+import androidx.annotation.DrawableRes
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.material.*
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.text.style.TextAlign
+
+@Composable
+internal fun OutlinedIconButton(
+    text: String,
+    @DrawableRes iconId: Int,
+    onClick: () -> Unit,
+    contentDescription: String,
+    modifier: Modifier = Modifier,
+) {
+    OutlinedButton(
+        onClick = onClick,
+        modifier = modifier.fillMaxWidth(),
+        colors = ButtonDefaults.outlinedButtonColors(
+            backgroundColor = MaterialTheme.colors.background,
+            contentColor = MaterialTheme.colors.onBackground,
+            disabledContentColor = MaterialTheme.colors.onBackground.copy(alpha = 0.5f)
+        ),
+    ) {
+        Icon(
+            painter = painterResource(id = iconId),
+            contentDescription = contentDescription
+        )
+        Text(
+            text = text,
+            modifier = Modifier.fillMaxWidth(),
+            textAlign = TextAlign.Center,
+        )
+    }
+}
diff --git a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/components/OverlineLabel.kt b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/components/OverlineLabel.kt
new file mode 100644
index 0000000..3017f02
--- /dev/null
+++ b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/components/OverlineLabel.kt
@@ -0,0 +1,20 @@
+package com.haroldadmin.whatthestack.ui.components
+
+import androidx.compose.foundation.isSystemInDarkTheme
+import androidx.compose.material.MaterialTheme
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+
+/**
+ * A text label with the "overline" typography style
+ */
+@Composable
+internal fun OverlineLabel(label: String, modifier: Modifier = Modifier) {
+    Text(
+        text = label,
+        style = MaterialTheme.typography.overline,
+        color = if (isSystemInDarkTheme()) MaterialTheme.colors.primary else MaterialTheme.colors.primaryVariant,
+        modifier = modifier
+    )
+}
diff --git a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/pages/ExceptionPage.kt b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/pages/ExceptionPage.kt
new file mode 100644
index 0000000..da2efaa
--- /dev/null
+++ b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/pages/ExceptionPage.kt
@@ -0,0 +1,229 @@
+package com.haroldadmin.whatthestack.ui.pages
+
+import android.content.Intent
+import android.content.res.Configuration.UI_MODE_NIGHT_YES
+import android.net.Uri
+import androidx.compose.foundation.horizontalScroll
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.rememberScrollState
+import androidx.compose.foundation.text.selection.SelectionContainer
+import androidx.compose.foundation.verticalScroll
+import androidx.compose.material.*
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.rememberCoroutineScope
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.platform.LocalClipboardManager
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.AnnotatedString
+import androidx.compose.ui.text.font.FontFamily
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.google.accompanist.insets.navigationBarsHeight
+import com.google.accompanist.insets.statusBarsHeight
+import com.haroldadmin.whatthestack.R
+import com.haroldadmin.whatthestack.generateStackoverflowSearchUrl
+import com.haroldadmin.whatthestack.ui.components.OutlinedIconButton
+import com.haroldadmin.whatthestack.ui.components.OverlineLabel
+import com.haroldadmin.whatthestack.ui.preview.SampleData
+import com.haroldadmin.whatthestack.ui.theme.WhatTheStackTheme
+import kotlinx.coroutines.launch
+
+@Composable
+fun ExceptionPage(
+    type: String,
+    message: String,
+    stackTrace: String
+) {
+    val clipboard = LocalClipboardManager.current
+    val context = LocalContext.current
+    val scaffoldState = rememberScaffoldState()
+    val coroutineScope = rememberCoroutineScope()
+
+    val snackbarMessage = stringResource(id = R.string.copied_message)
+
+    Scaffold(scaffoldState = scaffoldState) {
+        Column(
+            modifier = Modifier
+                .padding(horizontal = 8.dp)
+                .verticalScroll(rememberScrollState())
+        ) {
+            Spacer(modifier = Modifier.statusBarsHeight(additional = 8.dp))
+            PageHeader()
+            ExceptionDetails(
+                type = type,
+                message = message,
+                modifier = Modifier.padding(vertical = 8.dp)
+            )
+            ExceptionOptions(
+                onCopy = {
+                    coroutineScope.launch {
+                        clipboard.setText(AnnotatedString(stackTrace))
+                        scaffoldState.snackbarHostState.showSnackbar(snackbarMessage)
+                    }
+                },
+                onShare = {
+                    val sendIntent: Intent = Intent().apply {
+                        this.action = Intent.ACTION_SEND
+                        this.putExtra(Intent.EXTRA_TEXT, stackTrace)
+                        this.type = "text/plain"
+                    }
+
+                    val shareIntent = Intent.createChooser(sendIntent, "Stacktrace")
+                    context.startActivity(shareIntent)
+                },
+                onSearch = {
+                    val searchQuery = "$type: $message"
+                    val url = generateStackoverflowSearchUrl(searchQuery)
+                    val searchIntent = Intent().apply {
+                        action = Intent.ACTION_VIEW
+                        data = Uri.parse(url)
+                    }
+                    context.startActivity(searchIntent)
+                },
+                onRestart = {
+                    val applicationContext = context.applicationContext
+                    val packageManager = applicationContext.packageManager
+                    val packageName = applicationContext.packageName
+
+                    val launchIntent = packageManager.getLaunchIntentForPackage(packageName)
+                    if (launchIntent != null) {
+                        launchIntent.flags =
+                            Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
+                        context.startActivity(launchIntent)
+                    }
+                }
+            )
+            Stacktrace(
+                stackTrace = stackTrace,
+                modifier = Modifier.padding(top = 8.dp)
+            )
+            Spacer(modifier = Modifier.navigationBarsHeight(additional = 8.dp))
+        }
+    }
+}
+
+@Composable
+fun PageHeader() {
+    Text(
+        stringResource(id = R.string.header_text),
+        style = MaterialTheme.typography.h4,
+        modifier = Modifier.padding(vertical = 4.dp),
+        color = MaterialTheme.colors.onBackground
+    )
+    Spacer(modifier = Modifier.height(4.dp))
+    Text(
+        text = stringResource(id = R.string.explanation_text),
+        color = MaterialTheme.colors.onBackground
+    )
+}
+
+@Composable
+fun ExceptionDetails(type: String, message: String, modifier: Modifier) {
+    Column(modifier = modifier) {
+        OverlineLabel(label = stringResource(id = R.string.exception_name))
+        Text(
+            text = type,
+            fontFamily = FontFamily.Monospace,
+            color = MaterialTheme.colors.onBackground
+        )
+        Spacer(modifier = Modifier.height(8.dp))
+        OverlineLabel(label = stringResource(id = R.string.exception_message))
+        Text(
+            text = message,
+            fontFamily = FontFamily.Monospace,
+            color = MaterialTheme.colors.onBackground
+        )
+    }
+}
+
+@Composable
+fun ExceptionOptions(
+    onCopy: () -> Unit,
+    onShare: () -> Unit,
+    onRestart: () -> Unit,
+    onSearch: () -> Unit,
+    modifier: Modifier = Modifier
+) {
+    Column(modifier = modifier) {
+        OutlinedIconButton(
+            text = stringResource(id = R.string.copy_stacktrace),
+            iconId = R.drawable.ic_outline_content_copy_24,
+            onClick = onCopy,
+            contentDescription = "Copy",
+            modifier = Modifier.padding(vertical = 4.dp),
+        )
+        OutlinedIconButton(
+            text = stringResource(id = R.string.share_stacktrace),
+            iconId = R.drawable.ic_outline_share_24,
+            onClick = onShare,
+            contentDescription = "Share",
+            modifier = Modifier.padding(vertical = 4.dp)
+        )
+        OutlinedIconButton(
+            text = stringResource(id = R.string.search_stackoverflow),
+            iconId = R.drawable.ic_round_search_24,
+            onClick = onSearch,
+            contentDescription = "Search Stackoverflow",
+            modifier = Modifier.padding(vertical = 4.dp)
+        )
+        OutlinedIconButton(
+            text = stringResource(id = R.string.restart_application),
+            iconId = R.drawable.ic_baseline_refresh_24,
+            onClick = onRestart,
+            contentDescription = "Restart"
+        )
+    }
+}
+
+@Composable
+fun Stacktrace(stackTrace: String, modifier: Modifier) {
+    Column(modifier) {
+        OverlineLabel(label = stringResource(id = R.string.stacktrace))
+        Surface(
+            color = Color.LightGray.copy(alpha = 0.5f),
+            modifier = Modifier.padding(top = 4.dp)
+        ) {
+            SelectionContainer {
+                Text(
+                    text = stackTrace,
+                    style = MaterialTheme.typography.body2.copy(fontSize = 12.sp),
+                    fontFamily = FontFamily.Monospace,
+                    color = MaterialTheme.colors.onBackground,
+                    modifier = Modifier
+                        .padding(4.dp)
+                        .horizontalScroll(rememberScrollState())
+                )
+            }
+        }
+    }
+}
+
+@Preview
+@Composable
+fun ExceptionPagePreview() {
+    WhatTheStackTheme {
+        ExceptionPage(
+            type = SampleData.ExceptionType,
+            message = SampleData.ExceptionMessage,
+            stackTrace = SampleData.Stacktrace
+        )
+    }
+}
+
+@Preview(uiMode = UI_MODE_NIGHT_YES)
+@Composable
+fun ExceptionPagePreviewNightMode() {
+    WhatTheStackTheme {
+        ExceptionPage(
+            type = SampleData.ExceptionType,
+            message = SampleData.ExceptionMessage,
+            stackTrace = SampleData.Stacktrace
+        )
+    }
+}
diff --git a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/preview/SampleData.kt b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/preview/SampleData.kt
new file mode 100644
index 0000000..a16438f
--- /dev/null
+++ b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/preview/SampleData.kt
@@ -0,0 +1,32 @@
+package com.haroldadmin.whatthestack.ui.preview
+
+object SampleData {
+    const val ExceptionType = "Runtime Exception"
+
+    const val ExceptionMessage = "This exception was thrown purely because it can be thrown"
+
+    const val Stacktrace =
+        """java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
+	at com.android.internal.os.RuntimeInitMethodAndArgsCaller.run(RuntimeInit.java:558)
+	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
+Caused by: java.lang.reflect.InvocationTargetException
+	at java.lang.reflect.Method.invoke(Native Method)
+	at com.android.internal.os.RuntimeInitMethodAndArgsCaller.run(RuntimeInit.java:548)
+	... 1 more
+Caused by: com.haroldadmin.crashyapp.BecauseICanException: This exception is thrown purely because it can be thrown
+	at com.haroldadmin.crashyapp.MainActivity.onCreatelambda-0(MainActivity.kt:15)
+	at com.haroldadmin.crashyapp.MainActivity.r8lambdapFZVHP1EeT4E2LW7TLA5yGBRTTk(Unknown Source:0)
+	at com.haroldadmin.crashyapp.MainActivityxternalSyntheticLambda0.onClick(Unknown Source:0)
+	at android.view.View.performClick(View.java:7441)
+	at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119)
+	at android.view.View.performClickInternal(View.java:7418)
+	at android.view.View.access$3700(View.java:835)
+	at android.view.ViewPerformClick.run(View.java:28676)
+	at android.os.Handler.handleCallback(Handler.java:938)
+	at android.os.Handler.dispatchMessage(Handler.java:99)
+	at android.os.Looper.loopOnce(Looper.java:201)
+	at android.os.Looper.loop(Looper.java:288)
+	at android.app.ActivityThread.main(ActivityThread.java:7839)
+	... 3 more
+"""
+}
diff --git a/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/theme/WhatTheStackTheme.kt b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/theme/WhatTheStackTheme.kt
new file mode 100644
index 0000000..120e11f
--- /dev/null
+++ b/what-the-stack/src/main/java/com/haroldadmin/whatthestack/ui/theme/WhatTheStackTheme.kt
@@ -0,0 +1,38 @@
+package com.haroldadmin.whatthestack.ui.theme
+
+import androidx.compose.foundation.isSystemInDarkTheme
+import androidx.compose.material.MaterialTheme
+import androidx.compose.material.darkColors
+import androidx.compose.material.lightColors
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.graphics.Color
+
+private val DarkColorPalette = darkColors(
+    primary = Color(0xffd32f2f),
+    primaryVariant = Color(0xffff6659),
+    secondary = Color(0xff616161),
+    secondaryVariant = Color(0xff373737),
+)
+
+private val LightColorPalette = lightColors(
+    primary = Color(0xffd32f2f),
+    primaryVariant = Color(0xff9a0007),
+    secondary = Color(0xff616161),
+    secondaryVariant = Color(0x33373737),
+)
+
+internal val SystemBarsColor = Color(0x33373737)
+
+@Composable
+fun WhatTheStackTheme(
+    darkTheme: Boolean = isSystemInDarkTheme(),
+    content: @Composable () -> Unit
+) {
+    val colors = if (darkTheme) {
+        DarkColorPalette
+    } else {
+        LightColorPalette
+    }
+
+    MaterialTheme(colors = colors, content = content)
+}
diff --git a/what-the-stack/src/main/res/drawable/ic_baseline_refresh_24.xml b/what-the-stack/src/main/res/drawable/ic_baseline_refresh_24.xml
index f2be45b..5ab492c 100644
--- a/what-the-stack/src/main/res/drawable/ic_baseline_refresh_24.xml
+++ b/what-the-stack/src/main/res/drawable/ic_baseline_refresh_24.xml
@@ -2,8 +2,7 @@
     android:width="24dp"
     android:height="24dp"
     android:viewportWidth="24"
-    android:viewportHeight="24"
-    android:tint="?attr/colorControlNormal">
+    android:viewportHeight="24">
   <path
       android:fillColor="@android:color/white"
       android:pathData="M17.65,6.35C16.2,4.9 14.21,4 12,4c-4.42,0 -7.99,3.58 -7.99,8s3.57,8 7.99,8c3.73,0 6.84,-2.55 7.73,-6h-2.08c-0.82,2.33 -3.04,4 -5.65,4 -3.31,0 -6,-2.69 -6,-6s2.69,-6 6,-6c1.66,0 3.14,0.69 4.22,1.78L13,11h7V4l-2.35,2.35z"/>
diff --git a/what-the-stack/src/main/res/drawable/ic_outline_content_copy_24.xml b/what-the-stack/src/main/res/drawable/ic_outline_content_copy_24.xml
index 79c5a76..eb384e5 100644
--- a/what-the-stack/src/main/res/drawable/ic_outline_content_copy_24.xml
+++ b/what-the-stack/src/main/res/drawable/ic_outline_content_copy_24.xml
@@ -2,8 +2,7 @@
     android:width="24dp"
     android:height="24dp"
     android:viewportWidth="24"
-    android:viewportHeight="24"
-    android:tint="?attr/colorOnPrimary">
+    android:viewportHeight="24">
   <path
       android:fillColor="@android:color/white"
       android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z"/>
diff --git a/what-the-stack/src/main/res/drawable/ic_outline_share_24.xml b/what-the-stack/src/main/res/drawable/ic_outline_share_24.xml
index 3a6a059..394e3ef 100644
--- a/what-the-stack/src/main/res/drawable/ic_outline_share_24.xml
+++ b/what-the-stack/src/main/res/drawable/ic_outline_share_24.xml
@@ -2,8 +2,7 @@
     android:width="24dp"
     android:height="24dp"
     android:viewportWidth="24"
-    android:viewportHeight="24"
-    android:tint="?attr/colorControlNormal">
+    android:viewportHeight="24">
   <path
       android:fillColor="@android:color/white"
       android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92s2.92,-1.31 2.92,-2.92c0,-1.61 -1.31,-2.92 -2.92,-2.92zM18,4c0.55,0 1,0.45 1,1s-0.45,1 -1,1 -1,-0.45 -1,-1 0.45,-1 1,-1zM6,13c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1 1,0.45 1,1 -0.45,1 -1,1zM18,20.02c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1 1,0.45 1,1 -0.45,1 -1,1z"/>
diff --git a/what-the-stack/src/main/res/drawable/ic_round_search_24.xml b/what-the-stack/src/main/res/drawable/ic_round_search_24.xml
index c1818d5..b86e6fc 100644
--- a/what-the-stack/src/main/res/drawable/ic_round_search_24.xml
+++ b/what-the-stack/src/main/res/drawable/ic_round_search_24.xml
@@ -2,8 +2,7 @@
     android:width="24dp"
     android:height="24dp"
     android:viewportWidth="24"
-    android:viewportHeight="24"
-    android:tint="?attr/colorControlNormal">
+    android:viewportHeight="24">
   <path
       android:fillColor="@android:color/white"
       android:pathData="M15.5,14h-0.79l-0.28,-0.27c1.2,-1.4 1.82,-3.31 1.48,-5.34 -0.47,-2.78 -2.79,-5 -5.59,-5.34 -4.23,-0.52 -7.79,3.04 -7.27,7.27 0.34,2.8 2.56,5.12 5.34,5.59 2.03,0.34 3.94,-0.28 5.34,-1.48l0.27,0.28v0.79l4.25,4.25c0.41,0.41 1.08,0.41 1.49,0 0.41,-0.41 0.41,-1.08 0,-1.49L15.5,14zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
diff --git a/what-the-stack/src/main/res/layout/activity_what_the_stack.xml b/what-the-stack/src/main/res/layout/activity_what_the_stack.xml
deleted file mode 100644
index 7e85fa7..0000000
--- a/what-the-stack/src/main/res/layout/activity_what_the_stack.xml
+++ /dev/null
@@ -1,183 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:id="@+id/nestedScrollRoot"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:fillViewport="true">
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/header"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_margin="16dp"
-            android:text="@string/header_text"
-            android:textAppearance="?attr/textAppearanceHeadline4"
-            android:textColor="?attr/colorOnSurface"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/exceptionMessageHeader"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="16dp"
-            android:layout_marginEnd="16dp"
-            android:text="@string/explanation_text"
-            android:textAppearance="?attr/textAppearanceBody1"
-            android:textColor="?attr/colorOnSurface"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/header" />
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/exceptionName"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="16dp"
-            android:layout_marginTop="8dp"
-            android:layout_marginEnd="16dp"
-            android:alpha="0.7"
-            android:fontFamily="monospace"
-            android:text="@string/exception_name"
-            android:textAppearance="?attr/textAppearanceBody1"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/exceptionMessageHeader"
-            tools:text="Exception: java.lang.RuntimeException" />
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/exceptionCause"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="16dp"
-            android:layout_marginTop="4dp"
-            android:layout_marginEnd="16dp"
-            android:alpha="0.7"
-            android:fontFamily="monospace"
-            android:text="@string/exception_cause"
-            android:textAppearance="?attr/textAppearanceBody1"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/exceptionName"
-            tools:text="Cause: BecauseICanException" />
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/exceptionMessage"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="16dp"
-            android:layout_marginTop="4dp"
-            android:layout_marginEnd="16dp"
-            android:alpha="0.7"
-            android:fontFamily="monospace"
-            android:text="@string/exception_message"
-            android:textAppearance="?attr/textAppearanceBody1"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/exceptionCause"
-            tools:text="Message: Because I Can" />
-
-        <androidx.constraintlayout.helper.widget.Flow
-            android:id="@+id/actionsFlow"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            android:layout_margin="16dp"
-            app:constraint_referenced_ids="copyStacktrace,shareStacktrace,launchApplication,searchStackoverflow"
-            app:flow_horizontalAlign="center"
-            app:flow_horizontalGap="4dp"
-            app:flow_horizontalStyle="packed"
-            app:flow_verticalStyle="packed"
-            app:flow_wrapMode="chain"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/exceptionMessage" />
-
-        <!-- Ignore missing-constraints lint error because lint hasn't been updated-->
-        <!-- for constraint layout Flow yet-->
-        <com.google.android.material.button.MaterialButton
-            android:id="@+id/copyStacktrace"
-            style="@style/Widget.MaterialComponents.Button.TextButton.Icon"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/copy_stacktrace"
-            android:textColor="?attr/colorOnSurface"
-            app:icon="@drawable/ic_outline_content_copy_24"
-            app:iconTint="?attr/colorSecondary"
-            tools:ignore="MissingConstraints" />
-
-        <com.google.android.material.button.MaterialButton
-            android:id="@+id/shareStacktrace"
-            style="@style/Widget.MaterialComponents.Button.TextButton.Icon"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/share_stacktrace"
-            android:textColor="?attr/colorOnSurface"
-            app:icon="@drawable/ic_outline_share_24"
-            app:iconTint="?attr/colorSecondary"
-            tools:ignore="MissingConstraints" />
-
-        <com.google.android.material.button.MaterialButton
-            android:id="@+id/launchApplication"
-            style="@style/Widget.MaterialComponents.Button.TextButton.Icon"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/restart_application"
-            android:textColor="?attr/colorOnSurface"
-            app:icon="@drawable/ic_baseline_refresh_24"
-            app:iconTint="?attr/colorSecondary"
-            tools:ignore="MissingConstraints" />
-
-        <com.google.android.material.button.MaterialButton
-            android:id="@+id/searchStackoverflow"
-            style="@style/Widget.MaterialComponents.Button.TextButton.Icon"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_margin="4dp"
-            android:text="@string/search_stackoverflow"
-            android:textColor="?attr/colorOnSurface"
-            app:icon="@drawable/ic_round_search_24"
-            app:iconTint="?attr/colorSecondary"
-            tools:ignore="MissingConstraints" />
-
-        <TextView
-            android:id="@+id/stacktraceHeader"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="16dp"
-            android:layout_marginTop="8dp"
-            android:layout_marginEnd="16dp"
-            android:text="@string/stacktrace"
-            android:textAppearance="?attr/textAppearanceOverline"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/actionsFlow" />
-
-        <ScrollView
-            android:id="@+id/stacktraceScroller"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_marginTop="4dp"
-            android:paddingStart="16dp"
-            android:paddingEnd="16dp"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/stacktraceHeader">
-
-            <TextView
-                android:id="@+id/stacktrace"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:fontFamily="monospace"
-                android:textAppearance="?attr/textAppearanceBody2"
-                android:textColor="?attr/colorError"
-                tools:text="@string/sample_stack_trace" />
-        </ScrollView>
-    </androidx.constraintlayout.widget.ConstraintLayout>
-</androidx.core.widget.NestedScrollView>
\ No newline at end of file
diff --git a/what-the-stack/src/main/res/values/colors.xml b/what-the-stack/src/main/res/values/colors.xml
deleted file mode 100644
index 9f135e1..0000000
--- a/what-the-stack/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-  <color name="primaryColor">#d32f2f</color>
-  <color name="primaryLightColor">#ff6659</color>
-  <color name="primaryDarkColor">#9a0007</color>
-  <color name="secondaryColor">#616161</color>
-  <color name="secondaryLightColor">#8e8e8e</color>
-  <color name="secondaryDarkColor">#373737</color>
-  <color name="secondaryDarkColorTranslucent">#33373737</color>
-  <color name="primaryTextColor">#ffffff</color>
-  <color name="secondaryTextColor">#ffffff</color>
-</resources>
\ No newline at end of file
diff --git a/what-the-stack/src/main/res/values/strings.xml b/what-the-stack/src/main/res/values/strings.xml
index 2fecf52..54394d8 100644
--- a/what-the-stack/src/main/res/values/strings.xml
+++ b/what-the-stack/src/main/res/values/strings.xml
@@ -26,14 +26,13 @@
         at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 
     </string>
-    <string name="exception_name">Exception: %1$s</string>
-    <string name="exception_cause">Cause: %1$s</string>
+    <string name="exception_name">Exception</string>
     <string name="stacktrace">Stacktrace</string>
-    <string name="exception_message">Message: %1$s</string>
-    <string name="copy_stacktrace">Copy</string>
-    <string name="share_stacktrace">Share</string>
-    <string name="restart_application">Restart</string>
+    <string name="exception_message">Message</string>
+    <string name="copy_stacktrace">Copy Stacktrace</string>
+    <string name="share_stacktrace">Share Stacktrace</string>
+    <string name="restart_application">Restart Application</string>
     <string name="relaunch_app">Relaunch App</string>
     <string name="copied_message">Stacktrace copied!</string>
-    <string name="search_stackoverflow">Stackoverflow</string>
+    <string name="search_stackoverflow">Search Stackoverflow</string>
 </resources>
\ No newline at end of file
diff --git a/what-the-stack/src/main/res/values/styles.xml b/what-the-stack/src/main/res/values/styles.xml
index 98b8f55..0870988 100644
--- a/what-the-stack/src/main/res/values/styles.xml
+++ b/what-the-stack/src/main/res/values/styles.xml
@@ -1,14 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-    <style name="Theme.WhatTheStackTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
-        <item name="colorPrimary">@color/primaryColor</item>
-        <item name="colorPrimaryVariant">@color/primaryLightColor</item>
-        <item name="colorPrimaryDark">@color/primaryDarkColor</item>
-        <item name="colorOnPrimary">@color/primaryTextColor</item>
-        <item name="colorSecondary">@color/secondaryColor</item>
-        <item name="colorSecondaryVariant">@color/secondaryLightColor</item>
-        <item name="colorOnSecondary">@color/secondaryTextColor</item>
-        <item name="android:navigationBarColor">@android:color/transparent</item>
-        <item name="android:statusBarColor">@color/secondaryDarkColorTranslucent</item>
-    </style>
+    <style name="Theme.WhatTheStackTheme" parent="Theme.AppCompat.DayNight.NoActionBar"/>
 </resources>
\ No newline at end of file
diff --git a/what-the-stack/src/test/java/com/haroldadmin/whatthestack/ExceptionProcessingTest.kt b/what-the-stack/src/test/java/com/haroldadmin/whatthestack/ExceptionProcessingTest.kt
index a9a116c..17364ce 100644
--- a/what-the-stack/src/test/java/com/haroldadmin/whatthestack/ExceptionProcessingTest.kt
+++ b/what-the-stack/src/test/java/com/haroldadmin/whatthestack/ExceptionProcessingTest.kt
@@ -1,7 +1,7 @@
 package com.haroldadmin.whatthestack
 
-import java.io.PrintStream
 import org.junit.Test
+import java.io.PrintStream
 
 internal class ExceptionProcessingTest {
 
