diff --git a/package-lock.json b/package-lock.json
index b94e84c52c883093f13c85e454cec21b461f4593..e401c8c6582b1af238a9e0f5647bc7c544f1cce7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,7 +5,7 @@
   "requires": true,
   "packages": {
     "": {
-      "version": "0.3.3",
+      "version": "0.2.14",
       "hasInstallScript": true,
       "license": "MIT",
       "dependencies": {
@@ -61,7 +61,6 @@
         "@teamsupercell/typings-for-css-modules-loader": "^2.5.2",
         "@testing-library/jest-dom": "^5.16.5",
         "@testing-library/react": "^14.0.0",
-        "@types/electron": "^1.6.10",
         "@types/jest": "^29.5.2",
         "@types/node": "20.2.5",
         "@types/react": "^18.2.8",
@@ -4541,16 +4540,6 @@
         "@types/ms": "*"
       }
     },
-    "node_modules/@types/electron": {
-      "version": "1.6.10",
-      "resolved": "https://registry.npmjs.org/@types/electron/-/electron-1.6.10.tgz",
-      "integrity": "sha512-MOCVyzIwkBEloreoCVrTV108vSf8fFIJPsGruLCoAoBZdxtnJUqKA4lNonf/2u1twSjAspPEfmEheC+TLm/cMw==",
-      "deprecated": "This is a stub types definition for electron (https://github.com/electron/electron). electron provides its own type definitions, so you don't need @types/electron installed!",
-      "dev": true,
-      "dependencies": {
-        "electron": "*"
-      }
-    },
     "node_modules/@types/eslint": {
       "version": "8.44.3",
       "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.3.tgz",
@@ -6659,13 +6648,13 @@
       }
     },
     "node_modules/body-parser": {
-      "version": "1.20.2",
-      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
-      "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
+      "version": "1.20.1",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
+      "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
       "dev": true,
       "dependencies": {
         "bytes": "3.1.2",
-        "content-type": "~1.0.5",
+        "content-type": "~1.0.4",
         "debug": "2.6.9",
         "depd": "2.0.0",
         "destroy": "1.2.0",
@@ -6673,7 +6662,7 @@
         "iconv-lite": "0.4.24",
         "on-finished": "2.4.1",
         "qs": "6.11.0",
-        "raw-body": "2.5.2",
+        "raw-body": "2.5.1",
         "type-is": "~1.6.18",
         "unpipe": "1.0.0"
       },
@@ -7818,9 +7807,9 @@
       "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
     },
     "node_modules/cookie": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
-      "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+      "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
       "dev": true,
       "engines": {
         "node": ">= 0.6"
@@ -9135,9 +9124,9 @@
       "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
     },
     "node_modules/ejs": {
-      "version": "3.1.10",
-      "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
-      "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==",
+      "version": "3.1.9",
+      "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
+      "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
       "dev": true,
       "dependencies": {
         "jake": "^10.8.5"
@@ -10882,17 +10871,17 @@
       "dev": true
     },
     "node_modules/express": {
-      "version": "4.19.2",
-      "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
-      "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
+      "version": "4.18.2",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
+      "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
       "dev": true,
       "dependencies": {
         "accepts": "~1.3.8",
         "array-flatten": "1.1.1",
-        "body-parser": "1.20.2",
+        "body-parser": "1.20.1",
         "content-disposition": "0.5.4",
         "content-type": "~1.0.4",
-        "cookie": "0.6.0",
+        "cookie": "0.5.0",
         "cookie-signature": "1.0.6",
         "debug": "2.6.9",
         "depd": "2.0.0",
@@ -17865,9 +17854,9 @@
       }
     },
     "node_modules/raw-body": {
-      "version": "2.5.2",
-      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
-      "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+      "version": "2.5.1",
+      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+      "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
       "dev": true,
       "dependencies": {
         "bytes": "3.1.2",
@@ -19897,9 +19886,9 @@
       }
     },
     "node_modules/tar": {
-      "version": "6.2.1",
-      "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
-      "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
+      "version": "6.2.0",
+      "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
+      "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
       "dev": true,
       "dependencies": {
         "chownr": "^2.0.0",
@@ -21380,9 +21369,9 @@
       }
     },
     "node_modules/webpack-dev-middleware": {
-      "version": "5.3.4",
-      "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz",
-      "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==",
+      "version": "5.3.3",
+      "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz",
+      "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==",
       "dev": true,
       "dependencies": {
         "colorette": "^2.0.10",
@@ -22026,4 +22015,4 @@
       }
     }
   }
-}
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index 94283ce87f615658b728d70d8cb59ed5c627fd5e..2f7c58d7aa979859e56877af2672228322f33a5b 100644
--- a/package.json
+++ b/package.json
@@ -28,23 +28,18 @@
   "version": "0.3.3",
   "main": "./src/main/main.ts",
   "scripts": {
-    " ----------------- BUILD -----------------": "",
     "build": "concurrently \"npm run build:main\" \"npm run build:renderer\"",
     "build:main": "cross-env NODE_ENV=production TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.main.prod.ts",
     "build:renderer": "cross-env NODE_ENV=production TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.renderer.prod.ts",
     "postinstall": "ts-node .erb/scripts/check-native-dep.js && electron-builder install-app-deps && cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.renderer.dev.dll.ts",
+    "lint": "cross-env NODE_ENV=development eslint . --ext .js,.jsx,.ts,.tsx",
     "package": "ts-node ./.erb/scripts/clean.js dist && npm run build && electron-builder build --publish never",
     "rebuild": "electron-rebuild --parallel --types prod,dev,optional --module-dir release/app",
-    " ----------------- PROD -----------------": "",
     "start": "ts-node ./.erb/scripts/check-port-in-use.js && npm run start:renderer",
     "start:main": "cross-env NODE_ENV=development electronmon -r ts-node/register/transpile-only .",
     "start:preload": "cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.preload.dev.ts",
     "start:renderer": "cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack serve --config ./.erb/configs/webpack.config.renderer.dev.ts",
-    " ----------------- TEST -----------------": "",
-    "test": "jest",
-    " ----------------- UTILS -----------------": "",
-    "lint": "cross-env NODE_ENV=development eslint . --ext .js,.jsx,.ts,.tsx",
-    "typecheck": "tsc --noEmit"
+    "test": "jest"
   },
   "browserslist": [],
   "prettier": {
@@ -146,7 +141,6 @@
     "@teamsupercell/typings-for-css-modules-loader": "^2.5.2",
     "@testing-library/jest-dom": "^5.16.5",
     "@testing-library/react": "^14.0.0",
-    "@types/electron": "^1.6.10",
     "@types/jest": "^29.5.2",
     "@types/node": "20.2.5",
     "@types/react": "^18.2.8",
@@ -274,7 +268,7 @@
     }
   },
   "devEngines": {
-    "node": ">=20.x",
+    "node": ">=14.x",
     "npm": ">=7.x"
   },
   "electronmon": {
@@ -284,4 +278,4 @@
     ],
     "logLevel": "quiet"
   }
-}
+}
\ No newline at end of file
diff --git a/release/app/package-lock.json b/release/app/package-lock.json
index 9bc612701611b581dc0352103415899061aca957..a3a251a4a319449e2fa9fd107662f764b2768188 100644
--- a/release/app/package-lock.json
+++ b/release/app/package-lock.json
@@ -6,7 +6,7 @@
   "packages": {
     "": {
       "name": "transformerlab",
-      "version": "0.3.3",
+      "version": "0.2.14",
       "hasInstallScript": true,
       "license": "AGPL-3.0",
       "dependencies": {
@@ -147,4 +147,4 @@
       "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
     }
   }
-}
+}
\ No newline at end of file
diff --git a/src/main/preload.ts b/src/main/preload.ts
index 47ff3204b5e10e2c161f8f3f25e3974e064e1d94..7ab343a82b3f6a7d704d35181657fdfdf5f139ed 100644
--- a/src/main/preload.ts
+++ b/src/main/preload.ts
@@ -81,13 +81,11 @@ contextBridge.exposeInMainWorld('storage', {
 });
 
 contextBridge.exposeInMainWorld('sshClient', {
-  connect: (data: string) => ipcRenderer.invoke('ssh:connect', data),
-  data: (data: string) => ipcRenderer.send('ssh:data', data),
+  connect: (data) => ipcRenderer.invoke('ssh:connect', data),
+  data: (data) => ipcRenderer.send('ssh:data', data),
 
-  onData: (data: any) => ipcRenderer.on('ssh:data', data),
-  onSSHConnected: (callback: {
-    (event: IpcRendererEvent, data: string): void;
-  }) => ipcRenderer.on('ssh:connected', callback),
+  onData: (data) => ipcRenderer.on('ssh:data', data),
+  onSSHConnected: (callback) => ipcRenderer.on('ssh:connected', callback),
 
   removeAllListeners: () => {
     ipcRenderer.removeAllListeners('ssh:data');
@@ -96,5 +94,5 @@ contextBridge.exposeInMainWorld('sshClient', {
 });
 
 contextBridge.exposeInMainWorld('autoUpdater', {
-  onMessage: (data: any) => ipcRenderer.on('autoUpdater', data),
+  onMessage: (data) => ipcRenderer.on('autoUpdater', data),
 });
diff --git a/src/main/ssh-client.js b/src/main/ssh-client.js
index c752860b9529489596dc61ae87354622c49a28f4..70a9b2d3f8ad613be0f6fcac61f9e1f55cbbc0da 100644
--- a/src/main/ssh-client.js
+++ b/src/main/ssh-client.js
@@ -8,7 +8,7 @@ const HOME_DIR = app.getPath('home');
 const default_private_key = '';
 const default_private_key_location = HOME_DIR + '/.ssh/id_rsa';
 
-let mainWindow = null;
+var mainWindow = null;
 
 function sendToRenderer(channel, data) {
   if (mainWindow === null) {
@@ -119,6 +119,6 @@ ipcMain.handle('ssh:connect', (event, key) => {
 
 export default function setupSSHClient(browserWindow) {
   console.log('setting up ssh client');
-  // console.log(browserWindow);
+  console.log(browserWindow);
   mainWindow = browserWindow;
 }
diff --git a/src/main/util.ts b/src/main/util.ts
index 18bcd55a73af533d0aa3786c84a6cb05f82a8a53..1abafac94260e4f68fbdd075f39c597bffe96067 100644
--- a/src/main/util.ts
+++ b/src/main/util.ts
@@ -1,7 +1,6 @@
 /* eslint import/prefer-default-export: off */
 import { URL } from 'url';
 import path from 'path';
-import { ExecException } from 'child_process';
 const fs = require('fs');
 const os = require('os');
 const { spawn, exec, ChildProcess } = require('child_process');
@@ -133,21 +132,21 @@ export async function startLocalServer() {
   console.log('Local server started with pid', localServer.pid);
 
   return new Promise((resolve) => {
-    let err_msg: string;
+    let err_msg;
 
     // if there was an error spawning then stderr will be null
     if (localServer.stderr) {
-      localServer.stderr.on('data', (data: string) => {
+      localServer.stderr.on('data', (data) => {
         console.error(`stderr: ${data}`);
       });
     }
 
-    localServer.on('error', (err: string) => {
-      console.log(`child process failed: ${err}`);
-      err_msg = err;
+    localServer.on('error', (error_msg) => {
+      console.log(`child process failed: ${error_msg}`);
+      err_msg = error_msg;
     });
 
-    localServer.on('close', (code: number) => {
+    localServer.on('close', (code) => {
       console.log(`child process exited with code ${code}`);
 
       if (code === 0) {
@@ -171,7 +170,7 @@ export function killLocalServer() {
         `Killing local server with pid ${localServer.pid} and all it children`
       );
       var kill = require('tree-kill');
-      kill(localServer.pid, 'SIGTERM', function (err: string) {
+      kill(localServer.pid, 'SIGTERM', function (err) {
         console.log('Finished killing local server');
         console.log(err);
         resolve(err);
@@ -202,10 +201,10 @@ export async function installLocalServer() {
     ? {}
     : { shell: '/bin/bash', cwd: root_dir };
   try {
-    exec(
+    const child = exec(
       installScriptCommand,
       options,
-      (error: ExecException | null, stdout: string, stderr: string) => {
+      (error, stdout, stderr) => {
         if (error) {
           console.error(`exec error: ${error}`);
           return;
@@ -236,7 +235,7 @@ export async function checkDependencies() {
   let response = {
     status: '',
     message: '',
-    data: {},
+    data: [],
   };
 
   // check if we've done an install/update of dependencies with this build
@@ -277,7 +276,7 @@ export async function checkDependencies() {
     return response;
   }
 
-  const pipListNames = pipList.map((x: { name: string }) => x.name);
+  const pipListNames = pipList.map((x) => x.name);
   const keyDependencies = [
     'fastapi',
     'pydantic',
@@ -300,9 +299,9 @@ export async function checkDependencies() {
 
   response.data = missingDependencies;
   console.log('missingDependencies', missingDependencies);
-  if (missingDependencies.length > 0) {
+  if (missingDependencies.legnth > 0) {
     response.status = 'error';
-    const missingList = missingDependencies.join(', ');
+    const missingList = missingDependencies.data?.join(', ');
     response.message = `Missing dependencies including: ${missingList}...`;
   } else {
     response.status = 'success';
@@ -320,7 +319,7 @@ export async function checkIfCondaEnvironmentExists() {
   let response = {
     status: '',
     message: '',
-    data: {},
+    data: [],
   };
 
   console.log(JSON.stringify({ error, stdout, stderr }));
@@ -353,29 +352,18 @@ export async function checkIfCondaEnvironmentExists() {
   }
 }
 
-interface ExecError extends Error {
-  code?: number;     // Exit code of the shell command if the process exited on its own.
-  stdout?: string;   // Standard output from the command.
-  stderr?: string;   // Standard error output from the command.
-}
-
 /**
  *
  * @param argument parameter to pass to install.sh
  * @returns the stdout of the process or false on failure.
  */
-export async function executeInstallStep(argument: string): Promise<{
-  error: ExecException | null;
-  stdout: string;
-  stderr: string;
-}> {
+export async function executeInstallStep(argument: string) {
   const server_dir = await getTransformerLabCodeDir();
   if (!fs.existsSync(server_dir)) {
-    return {
-      error: new Error('TransformerLab directory has not been setup.'),
-      stdout: 'TransformerLab directory has not been setup.',
-      stderr: 'TransformerLab directory has not been setup.',
-    };
+    console.log(
+      'Install step failed. TransformerLab directory has not been setup.'
+    );
+    return false;
   }
 
   const installScriptFilename = 'install.sh';
@@ -395,19 +383,14 @@ export async function executeInstallStep(argument: string): Promise<{
   try {
     ({ error, stdout, stderr } = await awaitExec(exec_cmd, options));
   } catch (err) {
-
     console.log('Failed to execute install step', err);
     console.log(JSON.stringify(err));
-    if (err instanceof Error) {
-      const execError = err as ExecError;
-      return {
-        error: new Error(String(execError.code)),
-        stdout: execError.stdout?.toString() ?? '',
-        stderr: execError.stderr?.toString() ?? '',
-      };
-    }
+    return {
+      error: err?.code,
+      stdout: err?.stdout?.toString(),
+      stderr: err?.stderr?.toString(),
+    };
   }
-
   if (stdout) console.log(`${installScriptFilename} stdout:`, stdout);
   if (stderr) console.error(`${installScriptFilename} stderr:`, stderr);
   return { error, stdout, stderr };
diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx
index e318c51ee56aae8f6821ab44ede4729db1a7bec3..4fe74ca12d8e0d33b4ac3e06733e05efb77ce77d 100644
--- a/src/renderer/App.tsx
+++ b/src/renderer/App.tsx
@@ -18,7 +18,7 @@ import XtermJSDrawer from './components/Connect/XtermJS';
 // import OutputTerminal from './components/OutputTerminal';
 // import AutoUpdateModal from './components/AutoUpdateModal';
 
-const fetcher = (url: string) => fetch(url).then((res) => res.json());
+const fetcher = (url) => fetch(url).then((res) => res.json());
 
 export default function App() {
   const [experimentId, setExperimentId] = useState('');
diff --git a/src/renderer/components/AutoUpdateModal.tsx b/src/renderer/components/AutoUpdateModal.tsx
index bf21d5a307f5bd1f7ccc1d7d3ccf9d6f0318ddb2..4843b175e45135b20caf46a1cd487e5a23e8f0c1 100644
--- a/src/renderer/components/AutoUpdateModal.tsx
+++ b/src/renderer/components/AutoUpdateModal.tsx
@@ -1,14 +1,13 @@
 import React from 'react';
-import { Modal, ModalClose, Sheet, Typography } from '@mui/joy';
 
-window.autoUpdater.onMessage((message: Node) => {
-  // console.log('autoupdate message', message);
-  const container = document.getElementById('messages') as HTMLDivElement;
-  // const m = document.createElement('div');
-  // m.innerHTML = text;
+import { Modal, ModalClose, Sheet, Typography } from '@mui/joy';
+window.autoUpdater.onMessage((message) => {
+  console.log('autoupdate message', message);
+  var container = document.getElementById('messages');
+  var m = document.createElement('div');
+  m.innerHTML = text;
   container?.appendChild(message);
 });
-
 export default function AutoUpdateModal({}) {
   const [open, setOpen] = React.useState<boolean>(true);
 
diff --git a/src/renderer/components/Computer.tsx b/src/renderer/components/Computer.tsx
index 81b66bc5de66f893be1e687b1bb66b4141c5dcef..90274d0f46923197d7f29075b2d4fa02ad2faff1 100644
--- a/src/renderer/components/Computer.tsx
+++ b/src/renderer/components/Computer.tsx
@@ -24,25 +24,11 @@ import { formatBytes } from 'renderer/lib/utils';
 import { useServerStats } from 'renderer/lib/transformerlab-api-sdk';
 
 function getSystemProperties() {
-  const information = document.getElementById('info') as HTMLPreElement;
+  const information = document.getElementById('info');
   information.innerText = `This app is using Chrome (v${window.platform.chrome()}), Node.js (v${window.platform.node()}), and Electron (v${window.platform.electron()})`;
 }
 
-interface ComputerCardProps {
-  title: string;
-  description?: string;
-  chip?: string;
-  icon: React.ReactNode;
-  children: React.ReactNode;
-}
-
-function ComputerCard({
-  children,
-  title,
-  description = '',
-  chip = '',
-  icon,
-}: ComputerCardProps) {
+function ComputerCard({ children, title, description = '', chip = '', icon }) {
   return (
     <Card variant="outlined">
       <CardContent>
@@ -113,7 +99,7 @@ export default function Computer() {
                 title="GPU Specs"
                 image={undefined}
               >
-                {server.gpu?.map((g: Record<string, any>) => {
+                {server.gpu?.map((g) => {
                   return (
                     <>
                       🔥 {g.name}
diff --git a/src/renderer/components/Connect/LocalConnection.tsx b/src/renderer/components/Connect/LocalConnection.tsx
index 7412a0b5d0f82bf52bfa0fb597a97c4268710d5e..8f4cbeb559ccc0d0792ceb0ab00c5784da5c202f 100644
--- a/src/renderer/components/Connect/LocalConnection.tsx
+++ b/src/renderer/components/Connect/LocalConnection.tsx
@@ -13,24 +13,43 @@ import {
 import { CheckCircle2, PlayIcon, RotateCcwIcon } from 'lucide-react';
 import { useEffect, useState } from 'react';
 import { useCheckLocalConnection } from 'renderer/lib/transformerlab-api-sdk';
+
 import { FaApple } from 'react-icons/fa6';
-import {
-  LocalConnectionProvider,
-  useLocalConnectionContext,
-} from './context/localConnectionContext';
-import { setIntervalXTimes, isStep, Steps } from './utils';
-import { Message } from './types/Message';
 
-function CheckIfInstalled() {
-  const { activeStep, setActiveStep } = useLocalConnectionContext();
+// Runs a callback every delay milliseconds, up to repetitions times.
+// If the callback returns true, the interval is cleared.
+// If the callback returns false, and the interval has run repetitions times, the notSuccessful callback is run.
+function setIntervalXTimes(callback, notSuccessful, delay, repetitions) {
+  var x = 0;
+  var intervalID = window.setInterval(async function () {
+    console.log(`trying ${x} times`);
+    const response = await callback();
+
+    if (response) {
+      window.clearInterval(intervalID);
+    } else if (++x === repetitions) {
+      notSuccessful();
+      window.clearInterval(intervalID);
+    }
+  }, delay);
+}
 
+const Steps = [
+  'CHECK_IF_INSTALLED',
+  'CHECK_VERSION',
+  'CHECK_IF_CONDA_INSTALLED',
+  'CHECK_IF_CONDA_ENVIRONMENT_EXISTS',
+  'CHECK_IF_PYTHON_DEPENDENCIES_INSTALLED',
+  'CHECK_IF_SERVER_RUNNING_ON_PORT_8000',
+  'CHECK_FOR_IMPORTANT_PLUGINS',
+];
+
+function CheckIfInstalled({ activeStep, setActiveStep }) {
   const [installStatus, setInstallStatus] = useState('notstarted'); // notstarted, pending, success, error
-  const [installErrorMessage, setInstallErrorMessage] = useState<string | null>(
-    null
-  );
+  const [installErrorMessage, setInstallErrorMessage] = useState(null);
 
   useEffect(() => {
-    if (!isStep(activeStep)) return;
+    if (activeStep !== Steps.indexOf('CHECK_IF_INSTALLED')) return;
     (async () => {
       // First check if there are any system requirement issues
       // If not, then check if installed locally
@@ -123,9 +142,7 @@ function CheckIfInstalled() {
   );
 }
 
-function CheckCurrentVersion() {
-  const { activeStep = 0, setActiveStep } = useLocalConnectionContext();
-
+function CheckCurrentVersion({ activeStep, setActiveStep }) {
   const [version, setVersion] = useState('pending'); // pending, or #.#.#
   const [release, setRelease] = useState('');
   const [installStatus, setInstallStatus] = useState('notstarted'); // notstarted, pending, success, error
@@ -221,9 +238,7 @@ function CheckCurrentVersion() {
   );
 }
 
-function RunServer() {
-  const { activeStep, setActiveStep } = useLocalConnectionContext();
-
+function RunServer({ activeStep, setActiveStep }) {
   const [thinking, setThinking] = useState(false);
   const {
     server,
@@ -256,70 +271,72 @@ function RunServer() {
   }, [activeStep, server]);
 
   return (
-    <Stack spacing={1}>
-      {activeStep >= Steps.indexOf('CHECK_IF_SERVER_RUNNING_ON_PORT_8000') &&
-        server &&
-        !serverError && <Chip color="success">Success!</Chip>}
-      {activeStep >= Steps.indexOf('CHECK_IF_SERVER_RUNNING_ON_PORT_8000') &&
-        (!server || serverError) && <Chip color="danger">Not Running</Chip>}
-      <ButtonGroup variant="plain" spacing={1}>
-        {activeStep == Steps.indexOf('CHECK_IF_SERVER_RUNNING_ON_PORT_8000') &&
-          (!server || serverError ? (
-            thinking ? (
-              <CircularProgress color="primary" />
-            ) : (
-              <>
-                <Button
-                  variant="solid"
-                  onClick={async () => {
-                    setThinking(true);
-                    const start_process =
-                      await window.electron.ipcRenderer.invoke(
-                        'server:startLocalServer'
-                      );
-
-                    if (start_process?.status == 'error') {
-                      const response_text =
-                        'Failed to start server: \n' + start_process?.message;
-                      alert(response_text);
-                      setThinking(false);
-                      return;
-                    }
-                    //set interval to check if server is running every 2 seconds, 15 times:
-                    setIntervalXTimes(
-                      async () => {
-                        if (!server || serverError) return false;
-                        setThinking(false);
-                        setActiveStep(
-                          Steps.indexOf(
-                            'CHECK_IF_SERVER_RUNNING_ON_PORT_8000'
-                          ) + 1
+    <>
+      <Stack spacing={1}>
+        {activeStep >= Steps.indexOf('CHECK_IF_SERVER_RUNNING_ON_PORT_8000') &&
+          server &&
+          !serverError && <Chip color="success">Success!</Chip>}
+        {activeStep >= Steps.indexOf('CHECK_IF_SERVER_RUNNING_ON_PORT_8000') &&
+          (!server || serverError) && <Chip color="danger">Not Running</Chip>}
+        <ButtonGroup variant="plain" spacing={1}>
+          {activeStep ==
+            Steps.indexOf('CHECK_IF_SERVER_RUNNING_ON_PORT_8000') &&
+            (!server || serverError ? (
+              thinking ? (
+                <CircularProgress color="primary" />
+              ) : (
+                <>
+                  <Button
+                    variant="solid"
+                    onClick={async () => {
+                      setThinking(true);
+                      const start_process =
+                        await window.electron.ipcRenderer.invoke(
+                          'server:startLocalServer'
                         );
-                        return true;
-                      },
-                      () => {
+
+                      if (start_process?.status == 'error') {
+                        const response_text =
+                          'Failed to start server: \n' + start_process?.message;
+                        alert(response_text);
                         setThinking(false);
-                      },
-                      2000,
-                      15
-                    );
-                  }}
-                >
-                  Start
-                </Button>
-              </>
-            )
-          ) : (
-            ''
-          ))}
-      </ButtonGroup>
-    </Stack>
+                        return;
+                      }
+                      //set interval to check if server is running every 2 seconds, 15 times:
+                      setIntervalXTimes(
+                        async () => {
+                          if (!server || serverError) return false;
+                          setThinking(false);
+                          setActiveStep(
+                            Steps.indexOf(
+                              'CHECK_IF_SERVER_RUNNING_ON_PORT_8000'
+                            ) + 1
+                          );
+                          return true;
+                        },
+                        () => {
+                          setThinking(false);
+                        },
+                        2000,
+                        15
+                      );
+                    }}
+                  >
+                    Start
+                  </Button>
+                </>
+              )
+            ) : (
+              ''
+            ))}
+        </ButtonGroup>
+      </Stack>
+    </>
   );
 }
 
-function CheckForPlugins() {
-  const { activeStep, setActiveStep } = useLocalConnectionContext();
-  const [missingPlugins, setMissingPlugins] = useState([]);
+function CheckForPlugins({ activeStep, setActiveStep }) {
+  const [missingPlugins, setMissingPlugins] = useState(null);
   const [installing, setInstalling] = useState(false);
 
   useEffect(() => {
@@ -348,7 +365,7 @@ function CheckForPlugins() {
         )}
 
         <Typography level="body-sm">
-          {window.platform.isMac() && window.platform.arch() == 'arm64' && (
+          {platform.isMac() && platform.arch() == 'arm64' && (
             <>
               You are running on a <FaApple /> Mac with <b>Apple Silicon</b>
               .&nbsp;
@@ -420,8 +437,7 @@ function CheckForPlugins() {
   );
 }
 
-function CheckIfCondaInstalled() {
-  const { activeStep, setActiveStep } = useLocalConnectionContext();
+function CheckIfCondaInstalled({ activeStep, setActiveStep }) {
   const [installStatus, setInstallStatus] = useState(''); // notstarted, pending, success, error
 
   useEffect(() => {
@@ -503,15 +519,9 @@ function CheckIfCondaInstalled() {
   );
 }
 
-function CheckIfCondaEnvironmentExists() {
-  const { activeStep, setActiveStep } = useLocalConnectionContext();
-  const [installStatus, setInstallStatus] = useState<
-    'success' | 'notstarted' | 'pending' | 'error' | ''
-  >(''); // notstarted, pending, success, error
-  const [errorMessage, setErrorMessage] = useState<{
-    message: string;
-    data: any;
-  } | null>(null);
+function CheckIfCondaEnvironmentExists({ activeStep, setActiveStep }) {
+  const [installStatus, setInstallStatus] = useState(''); // notstarted, pending, success, error
+  const [errorMessage, setErrorMessage] = useState(null);
 
   useEffect(() => {
     if (activeStep !== Steps.indexOf('CHECK_IF_CONDA_ENVIRONMENT_EXISTS'))
@@ -618,10 +628,9 @@ function CheckIfCondaEnvironmentExists() {
   );
 }
 
-function CheckDependencies() {
-  const { activeStep, setActiveStep } = useLocalConnectionContext();
+function CheckDependencies({ activeStep, setActiveStep }) {
   const [installStatus, setInstallStatus] = useState(''); // notstarted, pending, success, error
-  const [errorMessage, setErrorMessage] = useState<Message>(null);
+  const [errorMessage, setErrorMessage] = useState(null);
 
   useEffect(() => {
     if (activeStep !== Steps.indexOf('CHECK_IF_PYTHON_DEPENDENCIES_INSTALLED'))
@@ -632,7 +641,10 @@ function CheckDependencies() {
         'server:checkDependencies'
       );
 
-      if (ipcResponse?.status == 'success' && ipcResponse?.data?.length == 0) {
+      if (
+        ipcResponse?.status == 'success' &&
+        ipcResponse?.data?.length == 0
+      ) {
         setInstallStatus('success');
         setActiveStep(
           Steps.indexOf('CHECK_IF_PYTHON_DEPENDENCIES_INSTALLED') + 1
@@ -653,78 +665,76 @@ function CheckDependencies() {
   }, [activeStep]);
 
   return (
-    <Stack spacing={1}>
-      {installStatus == 'success' && <Chip color="success">Success!</Chip>}
-      {installStatus == 'pending' && (
-        <>
-          <CircularProgress color="primary" />
-          <Typography level="body-sm" color="warning">
-            Installing. This can take a long while.
-          </Typography>
-        </>
-      )}
-      {activeStep == Steps.indexOf('CHECK_IF_PYTHON_DEPENDENCIES_INSTALLED') &&
-        installStatus == 'notstarted' && (
-          <ButtonGroup variant="plain" spacing={1}>
-            <Button
-              variant="solid"
-              size="sm"
-              startDecorator={<RotateCcwIcon size="16px" />}
-              onClick={async () => {
-                setInstallStatus('pending');
-                setErrorMessage(null);
-                await window.electron.ipcRenderer.invoke(
-                  'server:install_install-dependencies'
-                );
+    <>
+      <Stack spacing={1}>
+        {installStatus == 'success' && <Chip color="success">Success!</Chip>}
+        {installStatus == 'pending' && (
+          <>
+            <CircularProgress color="primary" />
+            <Typography level="body-sm" color="warning">
+              Installing. This can take a long while.
+            </Typography>
+          </>
+        )}
+        {activeStep ==
+          Steps.indexOf('CHECK_IF_PYTHON_DEPENDENCIES_INSTALLED') &&
+          installStatus == 'notstarted' && (
+            <ButtonGroup variant="plain" spacing={1}>
+              <Button
+                variant="solid"
+                size="sm"
+                startDecorator={<RotateCcwIcon size="16px" />}
+                onClick={async () => {
+                  setInstallStatus('pending');
+                  setErrorMessage(null);
+                  await window.electron.ipcRenderer.invoke(
+                    'server:install_install-dependencies'
+                  );
 
-                const ipcResponse = await window.electron.ipcRenderer.invoke(
-                  'server:checkDependencies'
-                );
+                  const ipcResponse =
+                    await window.electron.ipcRenderer.invoke(
+                      'server:checkDependencies'
+                    );
 
-                if (
-                  ipcResponse?.status == 'success' &&
-                  ipcResponse?.data?.length == 0
-                ) {
-                  setInstallStatus('success');
-                  setActiveStep(
-                    Steps.indexOf('CHECK_IF_PYTHON_DEPENDENCIES_INSTALLED') + 1
-                  );
-                  return;
-                }
-
-                if (ipcResponse?.status == 'error') {
-                  setErrorMessage({
-                    message: ipcResponse?.message,
-                    data: ipcResponse?.data,
-                  });
-                } else {
-                  setErrorMessage(null);
-                }
-              }}
-            >
-              Install Dependencies
-            </Button>
-          </ButtonGroup>
-        )}
+                  if (
+                    ipcResponse?.status == 'success' &&
+                    ipcResponse?.data?.length == 0
+                  ) {
+                    setInstallStatus('success');
+                    setActiveStep(
+                      Steps.indexOf('CHECK_IF_PYTHON_DEPENDENCIES_INSTALLED') +
+                        1
+                    );
+                    return;
+                  }
 
-      <Typography level="body-sm" color="warning">
-        {errorMessage?.message}
-      </Typography>
-      <Typography level="body-sm" color="neutral">
-        {errorMessage?.data?.stdout} {errorMessage?.data?.stderr}
-      </Typography>
-    </Stack>
-  );
-}
+                  if (ipcResponse?.status == 'error') {
+                    setErrorMessage({
+                      message: ipcResponse?.message,
+                      data: ipcResponse?.data,
+                    });
+                  } else {
+                    setErrorMessage(null);
+                  }
+                }}
+              >
+                Install Dependencies
+              </Button>
+            </ButtonGroup>
+          )}
 
-interface InstallStepProps {
-  children: React.ReactNode;
-  title: string;
-  thisStep: number;
+        <Typography level="body-sm" color="warning">
+          {errorMessage?.message}
+        </Typography>
+        <Typography level="body-sm" color="neutral">
+          {errorMessage?.data?.stdout} {errorMessage?.data?.stderr}
+        </Typography>
+      </Stack>
+    </>
+  );
 }
 
-function InstallStep({ children, thisStep, title }: InstallStepProps) {
-  const { activeStep, setActiveStep } = useLocalConnectionContext();
+function InstallStep({ children, thisStep, title, activeStep, setActiveStep }) {
   return (
     <Step
       indicator={
@@ -744,84 +754,108 @@ function InstallStep({ children, thisStep, title }: InstallStepProps) {
   );
 }
 
-interface InstallStepperProps {
-  setServer: (server: string) => void;
-}
-
-function InstallStepper({ setServer }: InstallStepperProps) {
+function InstallStepper({ setServer }) {
   const [activeStep, setActiveStep] = useState(
     Steps.indexOf('CHECK_IF_INSTALLED')
-  );
+  ); // 0, 1, 2
 
   function tryToConnect() {
     const fullServer = 'http://' + 'localhost' + ':' + '8000' + '/';
-    window.TransformerLab = {
-      API_URL: fullServer,
-    };
-
+    window.TransformerLab = {};
+    window.TransformerLab.API_URL = fullServer;
     setActiveStep(Steps.indexOf('CHECK_IF_INSTALLED'));
     setServer(fullServer);
   }
-
   return (
-    <LocalConnectionProvider>
-      <Sheet
-        sx={{
-          display: 'flex',
-          flexDirection: 'column',
-          overflow: 'hidden',
-          height: '100%',
-        }}
+    <Sheet
+      sx={{
+        display: 'flex',
+        flexDirection: 'column',
+        overflow: 'hidden',
+        height: '100%',
+      }}
+    >
+      <Stepper
+        orientation="vertical"
+        sx={{ display: 'flex', overflow: 'auto' }}
       >
-        <Stepper
-          orientation="vertical"
-          sx={{ display: 'flex', overflow: 'auto' }}
+        {/* Active Step: {activeStep} */}
+        <InstallStep
+          thisStep={Steps.indexOf('CHECK_IF_INSTALLED')}
+          title="Check if Server is Installed at ~/.transformerlab/"
+          activeStep={activeStep}
+          setActiveStep={setActiveStep}
         >
-          {/* Active Step: {activeStep} */}
-          <InstallStep
-            thisStep={Steps.indexOf('CHECK_IF_INSTALLED')}
-            title="Check if Server is Installed at ~/.transformerlab/"
-          >
-            <CheckIfInstalled />
-          </InstallStep>
-          <InstallStep
-            thisStep={Steps.indexOf('CHECK_VERSION')}
-            title="Check Current Version"
-          >
-            <CheckCurrentVersion />
-          </InstallStep>
-          <InstallStep
-            thisStep={Steps.indexOf('CHECK_IF_CONDA_INSTALLED')}
-            title="Check if Conda is Installed at ~/.transformerlab/miniconda3/"
-          >
-            <CheckIfCondaInstalled />
-          </InstallStep>
-          <InstallStep
-            thisStep={Steps.indexOf('CHECK_IF_CONDA_ENVIRONMENT_EXISTS')}
-            title="Check if Conda Environment 'transformerlab' Exists"
-          >
-            <CheckIfCondaEnvironmentExists />
-          </InstallStep>
-          <InstallStep
-            thisStep={Steps.indexOf('CHECK_IF_PYTHON_DEPENDENCIES_INSTALLED')}
-            title="Check if Python Dependencies are Installed"
-          >
-            <CheckDependencies />
-          </InstallStep>
-          <InstallStep
-            thisStep={Steps.indexOf('CHECK_IF_SERVER_RUNNING_ON_PORT_8000')}
-            title="Check if Server is Running Locally on Port 8000"
-          >
-            <RunServer />
-          </InstallStep>
-          <InstallStep
-            thisStep={Steps.indexOf('CHECK_FOR_IMPORTANT_PLUGINS')}
-            title="Check for Important Plugins"
-          >
-            <CheckForPlugins />
-          </InstallStep>
-        </Stepper>
-
+          <CheckIfInstalled
+            activeStep={activeStep}
+            setActiveStep={setActiveStep}
+          />
+        </InstallStep>
+        <InstallStep
+          thisStep={Steps.indexOf('CHECK_VERSION')}
+          title="Check Current Version"
+          activeStep={activeStep}
+          setActiveStep={setActiveStep}
+        >
+          <CheckCurrentVersion
+            activeStep={activeStep}
+            setActiveStep={setActiveStep}
+          />
+        </InstallStep>
+        <InstallStep
+          thisStep={Steps.indexOf('CHECK_IF_CONDA_INSTALLED')}
+          title="Check if Conda is Installed at ~/.transformerlab/miniconda3/"
+          activeStep={activeStep}
+          setActiveStep={setActiveStep}
+        >
+          <CheckIfCondaInstalled
+            activeStep={activeStep}
+            setActiveStep={setActiveStep}
+          />
+        </InstallStep>
+        <InstallStep
+          thisStep={Steps.indexOf('CHECK_IF_CONDA_ENVIRONMENT_EXISTS')}
+          title="Check if Conda Environment 'transformerlab' Exists"
+          activeStep={activeStep}
+          setActiveStep={setActiveStep}
+        >
+          <CheckIfCondaEnvironmentExists
+            activeStep={activeStep}
+            setActiveStep={setActiveStep}
+          />
+        </InstallStep>
+        <InstallStep
+          thisStep={Steps.indexOf('CHECK_IF_PYTHON_DEPENDENCIES_INSTALLED')}
+          title="Check if Python Dependencies are Installed"
+          activeStep={activeStep}
+          setActiveStep={setActiveStep}
+        >
+          <CheckDependencies
+            activeStep={activeStep}
+            setActiveStep={setActiveStep}
+          />
+        </InstallStep>
+        <InstallStep
+          thisStep={Steps.indexOf('CHECK_IF_SERVER_RUNNING_ON_PORT_8000')}
+          title="Check if Server is Running Locally on Port 8000"
+          activeStep={activeStep}
+          setActiveStep={setActiveStep}
+        >
+          <RunServer activeStep={activeStep} setActiveStep={setActiveStep} />
+        </InstallStep>
+        <InstallStep
+          thisStep={Steps.indexOf('CHECK_FOR_IMPORTANT_PLUGINS')}
+          title="Check for Important Plugins"
+          activeStep={activeStep}
+          setActiveStep={setActiveStep}
+        >
+          <CheckForPlugins
+            activeStep={activeStep}
+            setActiveStep={setActiveStep}
+          />
+        </InstallStep>
+      </Stepper>
+      {
         <Button
           size="lg"
           variant="solid"
@@ -833,9 +867,13 @@ function InstallStepper({ setServer }: InstallStepperProps) {
         >
           Connect
         </Button>
-      </Sheet>
-    </LocalConnectionProvider>
+      }
+    </Sheet>
   );
 }
 
-export default InstallStepper;
+function LocalConnection({ setServer }) {
+  return <InstallStepper setServer={setServer} />;
+}
+
+export default LocalConnection;
diff --git a/src/renderer/components/Connect/context/index.ts b/src/renderer/components/Connect/context/index.ts
deleted file mode 100644
index 65db0994f24a7eb181da75e296925f441d695987..0000000000000000000000000000000000000000
--- a/src/renderer/components/Connect/context/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from './localConnectionContext'
diff --git a/src/renderer/components/Connect/context/localConnectionContext.tsx b/src/renderer/components/Connect/context/localConnectionContext.tsx
deleted file mode 100644
index f8eea5ea1c3f35d4363bc5cd528cef6800b7fccf..0000000000000000000000000000000000000000
--- a/src/renderer/components/Connect/context/localConnectionContext.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-import { createContext, useContext, useState } from 'react';
-
-interface LocalConnectionContext {
-  children?: React.ReactNode;
-  activeStep: number;
-  setActiveStep: React.Dispatch<React.SetStateAction<number>>;
-}
-
-const LocalConnectionContext = createContext<LocalConnectionContext>({
-  activeStep: 0,
-  setActiveStep: (_val) => {},
-});
-
-const LocalConnectionProvider: React.FC<{
-  children: React.ReactNode;
-}> = ({ children }) => {
-  const [activeStep, setActiveStep] = useState<number>(0);
-  return (
-    <LocalConnectionContext.Provider value={{ activeStep, setActiveStep }}>
-      {children}
-    </LocalConnectionContext.Provider>
-  );
-};
-
-const useLocalConnectionContext = () => {
-  const context = useContext(LocalConnectionContext);
-  if (!context) {
-    throw new Error(
-      'useLocalConnectionContext must be used within a LocalConnectionProvider'
-    );
-  }
-  return context;
-};
-
-export { LocalConnectionProvider, useLocalConnectionContext };
diff --git a/src/renderer/components/Connect/types/Message.ts b/src/renderer/components/Connect/types/Message.ts
deleted file mode 100644
index cd385c70c9fbc7a49af236686570e79bed23fdba..0000000000000000000000000000000000000000
--- a/src/renderer/components/Connect/types/Message.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export type Message = {
-  message: string;
-  data: any
-} | null;
diff --git a/src/renderer/components/Connect/utils/index.ts b/src/renderer/components/Connect/utils/index.ts
deleted file mode 100644
index 45cb61e4f0e26a53b4091d0a5119577430006343..0000000000000000000000000000000000000000
--- a/src/renderer/components/Connect/utils/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './isStep'
-export * from './setIntervalXTimes'
diff --git a/src/renderer/components/Connect/utils/isStep.ts b/src/renderer/components/Connect/utils/isStep.ts
deleted file mode 100644
index ae4662ef9dc50c22f99a3fee65f28db25ce4dfe3..0000000000000000000000000000000000000000
--- a/src/renderer/components/Connect/utils/isStep.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export const Steps = [
-  'CHECK_IF_INSTALLED',
-  'CHECK_VERSION',
-  'CHECK_IF_CONDA_INSTALLED',
-  'CHECK_IF_CONDA_ENVIRONMENT_EXISTS',
-  'CHECK_IF_PYTHON_DEPENDENCIES_INSTALLED',
-  'CHECK_IF_SERVER_RUNNING_ON_PORT_8000',
-  'CHECK_FOR_IMPORTANT_PLUGINS',
-] as const;
-export type Step = (typeof Steps)[number];
-
-export function isStep(value: any): value is Step {
-  return Steps.includes(value as Step);
-}
diff --git a/src/renderer/components/Connect/utils/setIntervalXTimes.ts b/src/renderer/components/Connect/utils/setIntervalXTimes.ts
deleted file mode 100644
index 0cbabf2b21d0db3c00ace2d69d90169a8a281e78..0000000000000000000000000000000000000000
--- a/src/renderer/components/Connect/utils/setIntervalXTimes.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-// Runs a callback every delay milliseconds, up to repetitions times.
-// If the callback returns true, the interval is cleared.
-// If the callback returns false, and the interval has run repetitions times, the notSuccessful callback is run.
-export function setIntervalXTimes(
-  callback: () => any,
-  notSuccessful: () => void,
-  delay: number,
-  repetitions: number
-) {
-  let x = 0;
-  const intervalID = window.setInterval(async function () {
-    console.log(`trying ${x} times`);
-    const response = await callback();
-
-    if (response) {
-      window.clearInterval(intervalID);
-    } else if (++x === repetitions) {
-      notSuccessful();
-      window.clearInterval(intervalID);
-    }
-  }, delay);
-
-  return intervalID;
-}
diff --git a/src/renderer/components/Logs.tsx b/src/renderer/components/Logs.tsx
index 92d8924c01a932f1848994a6dfd738b4a633aa65..748e15be5561c754b8a54f4c1eca94a45da295a3 100644
--- a/src/renderer/components/Logs.tsx
+++ b/src/renderer/components/Logs.tsx
@@ -14,16 +14,14 @@ import * as chatAPI from 'renderer/lib/transformerlab-api-sdk';
 
 import useSWR from 'swr';
 
-const fetcher = (url: string) => fetch(url).then((res) => res.text());
+const fetcher = (url) => fetch(url).then((res) => res.text());
 
-function objectMinusPrompt({
-  prompt,
-  ...rest
-}: Record<string, any>): Record<string, any> {
+function objectMinusPrompt(obj) {
+  const { prompt, ...rest } = obj;
   return rest;
 }
 
-function renderJSONLinesLog(logs: string) {
+function renderJSONLinesLog(logs) {
   return logs?.split('\n').map((line, i) => {
     try {
       const line_object = JSON.parse(line);
@@ -69,7 +67,7 @@ export default function Logs({}) {
           flexDirection: 'column',
         }}
       >
-        <AccordionGroup>{renderJSONLinesLog(data ?? '')}</AccordionGroup>
+        <AccordionGroup>{renderJSONLinesLog(data)}</AccordionGroup>
       </Box>
     </Sheet>
   );
diff --git a/src/renderer/components/MainAppPanel.tsx b/src/renderer/components/MainAppPanel.tsx
index 3f8c93ef2adfbcd2e7157e0df18993b2683dd403..019f1c3595bffed026f270523f73baa47d8f4cdb 100644
--- a/src/renderer/components/MainAppPanel.tsx
+++ b/src/renderer/components/MainAppPanel.tsx
@@ -86,7 +86,7 @@ export default function MainAppPanel({
     updateConfigs();
   }
 
-  function setAdaptor(name: string) {
+  function setAdaptor(name) {
     fetch(
       chatAPI.GET_EXPERIMENT_UPDATE_CONFIG_URL(
         experimentInfo?.id,
diff --git a/src/renderer/components/ModelCurrentlyPlayingBar.tsx b/src/renderer/components/ModelCurrentlyPlayingBar.tsx
index 0b27f3a2218680d11d347b970eb7c87e30e2bd9e..9ffb032abd71e1242c705c74ab23acb335939379 100644
--- a/src/renderer/components/ModelCurrentlyPlayingBar.tsx
+++ b/src/renderer/components/ModelCurrentlyPlayingBar.tsx
@@ -6,13 +6,7 @@ import {
 import { Box, Button, CircularProgress, Typography } from '@mui/joy';
 import TinyCircle from './Shared/TinyCircle';
 
-interface ModelCurrentlyPlayingProps {
-  experimentInfo: Record<string, any>;
-}
-
-export default function ModelCurrentlyPlaying({
-  experimentInfo,
-}: ModelCurrentlyPlayingProps) {
+export default function ModelCurrentlyPlaying({ experimentInfo }) {
   const { models, isError, isLoading } = useModelStatus();
 
   const inferenceParams = experimentInfo?.config?.inferenceParams
@@ -56,7 +50,7 @@ export default function ModelCurrentlyPlaying({
         variant="plain"
         sx={{ display: models?.length > 0 ? 'flex' : 'none' }}
       >
-        {models?.length === 0 ? (
+        {models?.length == 0 ? (
           <CircularProgress color="warning" />
         ) : (
           <StopCircleIcon />
diff --git a/src/renderer/components/TransformerLabSettings.tsx b/src/renderer/components/TransformerLabSettings.tsx
index aa72337b900ede7e1b2ebb41fcdb6c0b3fbb26a5..4134fa3f1d02d04ccca0935b51773204f680f854 100644
--- a/src/renderer/components/TransformerLabSettings.tsx
+++ b/src/renderer/components/TransformerLabSettings.tsx
@@ -17,7 +17,7 @@ import * as chatAPI from 'renderer/lib/transformerlab-api-sdk';
 import useSWR from 'swr';
 import { EyeIcon, EyeOffIcon } from 'lucide-react';
 
-const fetcher = (url: string) => fetch(url).then((res) => res.json());
+const fetcher = (url) => fetch(url).then((res) => res.json());
 
 export default function TransformerLabSettings({}) {
   const [showPassword, setShowPassword] = React.useState(false);
@@ -52,16 +52,12 @@ export default function TransformerLabSettings({}) {
               endDecorator={
                 <IconButton
                   onClick={() => {
-                    const hfToken = document.getElementsByName(
-                      'hftoken'
-                    )[0] as HTMLInputElement;
-
-                    if (hfToken.type === 'text') {
-                      hfToken.type = 'password';
+                    var x = document.getElementsByName('hftoken')[0];
+                    if (x.type === 'text') {
+                      x.type = 'password';
                     } else {
-                      hfToken.type = 'text';
+                      x.type = 'text';
                     }
-
                     setShowPassword(!showPassword);
                   }}
                 >
@@ -72,10 +68,7 @@ export default function TransformerLabSettings({}) {
           )}
           <Button
             onClick={async () => {
-              const tokenElement = document.getElementsByName(
-                'hftoken'
-              )[0] as HTMLInputElement;
-              const token = tokenElement.value;
+              const token = document.getElementsByName('hftoken')[0].value;
               await fetch(
                 chatAPI.Endpoints.Config.Set(
                   'HuggingfaceUserAccessToken',
diff --git a/src/renderer/components/Welcome.tsx b/src/renderer/components/Welcome.tsx
index a16faec4497a5d08ed1e50c0fb878aa7e4d9ee7d..fded8eceb3c7b127b7cb147a129c3235f7e90967 100644
--- a/src/renderer/components/Welcome.tsx
+++ b/src/renderer/components/Welcome.tsx
@@ -1,8 +1,12 @@
 /* eslint-disable jsx-a11y/anchor-is-valid */
 
-import { Sheet, Stack, Typography } from '@mui/joy';
+import { Button, Sheet, Stack, Typography } from '@mui/joy';
+import { ArrowRightCircleIcon, FlaskConicalIcon } from 'lucide-react';
+
+async function testStore() {}
 
 import labImage from '../img/lab.jpg';
+
 import flaskLogo from '../img/flask.png';
 
 function LogoComponent() {
@@ -10,15 +14,13 @@ function LogoComponent() {
     <img
       src={flaskLogo}
       width="38"
-      style={{
-        verticalAlign: 'middle',
-        marginBottom: '10px',
-        display: 'inline-block',
-      }}
+      style={{ verticalAlign: 'middle', marginBottom: '10px' }}
     />
   );
 }
 
+testStore();
+
 export default function Welcome() {
   return (
     <Sheet
diff --git a/src/renderer/preload.d.ts b/src/renderer/preload.d.ts
index 3ca15afc70a423ca534d696004b6d5120dc56841..3ff48d7b91ae443f317367c9f4ef75e7d41615f9 100644
--- a/src/renderer/preload.d.ts
+++ b/src/renderer/preload.d.ts
@@ -1,27 +1,10 @@
 import { ElectronHandler } from 'main/preload';
 
-interface Platform {
-  node: () => string,
-  chrome: () => string,
-  electron: () => string,
-  isMac: () => string,
-  isWindows: () => string,
-  isLinux: () => string,
-  platform: () => string,
-  arch: () => string,
-}
-
 declare global {
   // eslint-disable-next-line no-unused-vars
   interface Window {
     electron: ElectronHandler;
-    TransformerLab: {
-      API_URL?: string;
-    }
-    platform: Platform
-    storage: Storage
   }
-
 }
 
 export {};