diff --git a/main.js b/main.js
index 40e6aa2c8..fda3e90d8 100644
--- a/main.js
+++ b/main.js
@@ -662,6 +662,7 @@ function getDefaultSQLKey() {
 }
 
 async function removeDB() {
+  // this don't remove attachments and stuff like that...
   const userDir = await getRealPath(app.getPath('userData'));
   await sql.removeDB(userDir);
 
diff --git a/password_preload.js b/password_preload.js
index e0fd3e13d..2c064ba98 100644
--- a/password_preload.js
+++ b/password_preload.js
@@ -21,9 +21,6 @@ window.getEnvironment = () => config.environment;
 window.getVersion = () => config.version;
 window.getAppInstance = () => config.appInstance;
 
-const electron = require('electron');
-
-const ipc = electron.ipcRenderer;
 const { SessionPasswordPrompt } = require('./ts/components/session/SessionPasswordPrompt');
 
 window.Signal = {
@@ -34,21 +31,11 @@ window.Signal = {
 
 window.Signal.Logs = require('./js/modules/logs');
 
-window.resetDatabase = () => {
+window.clearLocalData = async () => {
   window.log.info('reset database');
   ipcRenderer.send('resetDatabase');
 };
 
-window.restart = () => {
-  window.log.info('restart');
-  ipc.send('restart');
-};
-
-window.clearLocalData = async () => {
-  window.resetDatabase();
-  window.restart();
-};
-
 window.onLogin = passPhrase =>
   new Promise((resolve, reject) => {
     ipcRenderer.once('password-window-login-response', (event, error) => {
diff --git a/preload.js b/preload.js
index 1c4a95d77..6fceb96ae 100644
--- a/preload.js
+++ b/preload.js
@@ -156,11 +156,6 @@ window.restart = () => {
   ipc.send('restart');
 };
 
-window.resetDatabase = () => {
-  window.log.info('reset database');
-  ipc.send('resetDatabase');
-};
-
 ipc.on('mediaPermissionsChanged', () => {
   Whisper.events.trigger('mediaPermissionsChanged');
 });
diff --git a/ts/components/dialog/DeleteAccountModal.tsx b/ts/components/dialog/DeleteAccountModal.tsx
index 67d2ab55f..90bf1c12b 100644
--- a/ts/components/dialog/DeleteAccountModal.tsx
+++ b/ts/components/dialog/DeleteAccountModal.tsx
@@ -11,7 +11,7 @@ import { SessionSpinner } from '../session/SessionSpinner';
 import { SessionWrapperModal } from '../session/SessionWrapperModal';
 
 const deleteDbLocally = async () => {
-  window?.log?.info('configuration message sent successfully. Deleting everything');
+  window?.log?.info('last message sent successfully. Deleting everything');
   window.persistStore?.purge();
   await window.Signal.Logs.deleteAll();
   await window.Signal.Data.removeAll();
@@ -128,61 +128,44 @@ async function deleteEverythingAndNetworkData() {
 
 export const DeleteAccountModal = () => {
   const [isLoading, setIsLoading] = useState(false);
+  const [deleteDeviceOnly, setDeleteDeviceOnly] = useState(false);
+  const [deleteEverythingWithNetwork, setDeleteEverythingWithNetwork] = useState(false);
+
   const dispatch = useDispatch();
 
-  const onDeleteEverythingLocallyOnly = () => {
-    dispatch(
-      updateConfirmModal({
-        message: window.i18n('areYouSureDeleteDeviceOnly'),
-        okText: window.i18n('iAmSure'),
-        okTheme: SessionButtonColor.Danger,
-        onClickOk: async () => {
-          setIsLoading(true);
-          try {
-            window.log.warn('Deleting everything on device but keeping network data');
-
-            await sendConfigMessageAndDeleteEverything();
-          } catch (e) {
-            window.log.warn(e);
-          } finally {
-            setIsLoading(false);
-          }
-        },
-        onClickClose: () => {
-          window.inboxStore?.dispatch(updateConfirmModal(null));
-        },
-      })
-    );
+  const onDeleteEverythingLocallyOnly = async () => {
+    if (!isLoading) {
+      setIsLoading(true);
+      try {
+        window.log.warn('Deleting everything on device but keeping network data');
+
+        await sendConfigMessageAndDeleteEverything();
+      } catch (e) {
+        window.log.warn(e);
+      } finally {
+        setIsLoading(false);
+      }
+    }
   };
-  const onDeleteEverythingAndNetworkData = () => {
-    dispatch(
-      updateConfirmModal({
-        message: window.i18n('areYouSureDeleteEntireAccount'),
-        okText: window.i18n('iAmSure'),
-        okTheme: SessionButtonColor.Danger,
-        onClickOk: async () => {
-          setIsLoading(true);
-          try {
-            window.log.warn('Deleting everything including network data');
-            await deleteEverythingAndNetworkData();
-          } catch (e) {
-            window.log.warn(e);
-          } finally {
-            setIsLoading(false);
-          }
-        },
-        onClickClose: () => {
-          window.inboxStore?.dispatch(updateConfirmModal(null));
-        },
-      })
-    );
+  const onDeleteEverythingAndNetworkData = async () => {
+    if (!isLoading) {
+      setIsLoading(true);
+      try {
+        window.log.warn('Deleting everything including network data');
+        await deleteEverythingAndNetworkData();
+      } catch (e) {
+        window.log.warn(e);
+      } finally {
+        setIsLoading(false);
+      }
+    }
   };
 
   /**
    * Performs specified on close action then removes the modal.
    */
   const onClickCancelHandler = useCallback(() => {
-    window.inboxStore?.dispatch(updateDeleteAccountModal(null));
+    dispatch(updateDeleteAccountModal(null));
   }, []);
 
   return (
@@ -209,17 +192,65 @@ export const DeleteAccountModal = () => {
           <SessionButton
             text={window.i18n('entireAccount')}
             buttonColor={SessionButtonColor.Danger}
-            onClick={onDeleteEverythingAndNetworkData}
-            disabled={isLoading}
+            onClick={() => {
+              setDeleteEverythingWithNetwork(true);
+            }}
+            disabled={deleteEverythingWithNetwork || deleteDeviceOnly}
           />
 
           <SessionButton
             text={window.i18n('deviceOnly')}
             buttonColor={SessionButtonColor.Primary}
-            onClick={onDeleteEverythingLocallyOnly}
-            disabled={isLoading}
+            onClick={() => {
+              setDeleteDeviceOnly(true);
+            }}
+            disabled={deleteEverythingWithNetwork || deleteDeviceOnly}
           />
         </div>
+        <SpacerLG />
+
+        {deleteEverythingWithNetwork && (
+          <SessionHtmlRenderer
+            tag="span"
+            className="session-confirm-main-message"
+            html={window.i18n('areYouSureDeleteEntireAccount')}
+          />
+        )}
+
+        {deleteDeviceOnly && (
+          <SessionHtmlRenderer
+            tag="span"
+            className="session-confirm-main-message"
+            html={window.i18n('areYouSureDeleteDeviceOnly')}
+          />
+        )}
+        <SpacerLG />
+
+        {(deleteDeviceOnly || deleteEverythingWithNetwork) && (
+          <div className="session-modal__button-group">
+            <SessionButton
+              text={window.i18n('iAmSure')}
+              buttonColor={SessionButtonColor.Danger}
+              onClick={() => {
+                if (deleteDeviceOnly) {
+                  void onDeleteEverythingLocallyOnly();
+                } else if (deleteEverythingWithNetwork) {
+                  void onDeleteEverythingAndNetworkData();
+                }
+              }}
+              disabled={isLoading}
+            />
+
+            <SessionButton
+              text={window.i18n('cancel')}
+              buttonColor={SessionButtonColor.Primary}
+              onClick={() => {
+                dispatch(updateDeleteAccountModal(null));
+              }}
+              disabled={isLoading}
+            />
+          </div>
+        )}
 
         <SessionSpinner loading={isLoading} />
       </div>
diff --git a/ts/components/session/registration/SignUpTab.tsx b/ts/components/session/registration/SignUpTab.tsx
index 7c4947e16..e6a5c08f4 100644
--- a/ts/components/session/registration/SignUpTab.tsx
+++ b/ts/components/session/registration/SignUpTab.tsx
@@ -71,7 +71,7 @@ const SignUpSessionIDShown = (props: { continueSignUp: () => void }) => {
         </div>
       </Flex>
       <SessionIdEditable editable={false} placeholder={undefined} />
-      <div className="session-description-long">{window.i18n('signupSessionIDBlurb')}</div>
+      <div className="session-description-long">{window.i18n('allUsersAreRandomly...')}</div>
       <ContinueSignUpButton continueSignUp={props.continueSignUp} />
       <TermsAndConditions />
     </div>
diff --git a/ts/window.d.ts b/ts/window.d.ts
index 86b3ddda1..cc453483d 100644
--- a/ts/window.d.ts
+++ b/ts/window.d.ts
@@ -51,7 +51,6 @@ declare global {
     lokiSnodeAPI: LokiSnodeAPI;
     onLogin: any;
     persistStore?: Persistor;
-    resetDatabase: any;
     restart: any;
     getSeedNodeList: () => Array<any> | undefined;
     setPassword: any;