diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts
index 1fa5227d084d742ae5f3b63745e48d9aa62ed421..949b990a9fe21502f4e36321c7062ddfef796c7b 100755
--- a/frontend/src/app/app.module.ts
+++ b/frontend/src/app/app.module.ts
@@ -4,7 +4,7 @@ import { HttpClientModule } from '@angular/common/http';
 import { RouterModule, Routes } from '@angular/router';
 import { AppRoutingModule } from './app-routing.module';
 import { AppComponent } from './app.component';
-import { VideoService } from './audio-upload.service';
+import { AudioService } from './audio-upload.service';
 import { AudioRecordingService } from './audio-recording.service';
 import { InterviewPaneComponent } from './interview-pane/interview-pane.component';
 import { GameMenuComponent } from './game-menu/game-menu.component';
@@ -24,7 +24,7 @@ import { ReactiveFormsModule } from '@angular/forms';
     HttpClientModule,
     ReactiveFormsModule 
   ],
-  providers: [VideoService, AudioRecordingService],
+  providers: [AudioService, AudioRecordingService],
   bootstrap: [AppComponent]
 })
 export class AppModule { }
diff --git a/frontend/src/app/audio-recording.service.ts b/frontend/src/app/audio-recording.service.ts
index d8cc0177ed0c1c0a01110730235d492e5b0ef45e..8f383d308a56264d88247636701ddd66fad472ca 100755
--- a/frontend/src/app/audio-recording.service.ts
+++ b/frontend/src/app/audio-recording.service.ts
@@ -74,10 +74,10 @@ export class AudioRecordingService {
   stopRecording() {
     if (this.recorder) {
       this.recorder.stop(
-          blob => {
-            const mp3Name = encodeURIComponent("output.mp3");
-            this.stopMedia();
-            this._recorded.next({ blob: blob, title: mp3Name });
+        blob => {
+          const mp3Name = encodeURIComponent("output.mp3");
+          this.stopMedia();
+          this._recorded.next({ blob: blob, title: mp3Name });
         },
       );
     }
diff --git a/frontend/src/app/audio-upload.service.ts b/frontend/src/app/audio-upload.service.ts
index 829094a8515551ec33e2cda80a68269f7b125484..0de4c2d2188a5ef9282a54b65b94d0d20417af1d 100755
--- a/frontend/src/app/audio-upload.service.ts
+++ b/frontend/src/app/audio-upload.service.ts
@@ -8,7 +8,7 @@ import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
 @Injectable({
   providedIn: 'root'
 })
-export class VideoService {
+export class AudioService {
   private apiUrl = 'http://localhost:8000/api/upload/';
 
   constructor(
@@ -17,7 +17,7 @@ export class VideoService {
     private sanitizer: DomSanitizer,
   ) { }
 
-  uploadVideo(formData: FormData): Observable<any> {
+  uploadAudio(formData: FormData): Observable<any> {
     return new Observable<any>((observer) => {
       this.http.post(this.apiUrl, formData, { responseType: 'blob' }).subscribe(
         async (response: Blob) => {  
diff --git a/frontend/src/app/interview-pane/interview-pane.component.html b/frontend/src/app/interview-pane/interview-pane.component.html
index f37a154ad3bfe31ac20892a9c77ab7ed20533758..d0c7770d47aba242f9263aa9f03937ac48eaa161 100644
--- a/frontend/src/app/interview-pane/interview-pane.component.html
+++ b/frontend/src/app/interview-pane/interview-pane.component.html
@@ -18,14 +18,8 @@
   <app-game-menu></app-game-menu>
   <app-options-column></app-options-column>
 
-  <div class="mic" id="mic" style="display: none;">
+  <div class="mic" id="mic" style="display: none;" (click)="toggleRecording()">
     <i class="mic-icon"></i>
     <div class="mic-shadow" id="micShadow"></div>
-    <button class="micro-button" *ngIf="audioBlobUrl" (click)="uploadAudio()">Upload</button>
-    <div *ngIf="audioBlobUrl">
-      <audio controls>
-        <source [src]="audioBlobUrl" type="audio/webm">
-      </audio>
-    </div>
-  </div>
+  </div>  
 </div>
diff --git a/frontend/src/app/interview-pane/interview-pane.component.ts b/frontend/src/app/interview-pane/interview-pane.component.ts
index 8789ff496ea5c6161a0d5cc3af0261fe943925e1..184c9656266d44844b140dc448cea701b03b890a 100644
--- a/frontend/src/app/interview-pane/interview-pane.component.ts
+++ b/frontend/src/app/interview-pane/interview-pane.component.ts
@@ -2,7 +2,7 @@ import { Component, OnInit, AfterViewInit } from '@angular/core';
 import { SharedService } from '../shared.service';
 import { AudioRecordingService } from '../audio-recording.service';
 import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
-import { VideoService } from '../audio-upload.service';
+import { AudioService } from '../audio-upload.service';
 
 @Component({
   selector: 'app-interview-pane',
@@ -23,7 +23,7 @@ export class InterviewPaneComponent implements OnInit, AfterViewInit {
     private audioRecordingService: AudioRecordingService,
     private sharedService: SharedService,
     private sanitizer: DomSanitizer,
-    private videoService: VideoService
+    private audioService: AudioService
   ) { }
 
   ngOnInit(): void {
@@ -48,7 +48,7 @@ export class InterviewPaneComponent implements OnInit, AfterViewInit {
 
     if (mic && micShadow) {
       mic.addEventListener('click', () => {
-        this.toggleRecording();
+        micShadow.classList.toggle('alt');
       });
     }
 
@@ -112,18 +112,24 @@ export class InterviewPaneComponent implements OnInit, AfterViewInit {
     }
   }
 
+  private textIntervalId: any;
+
   showText(text: string, container: HTMLElement): void {
     if (!container) return;
 
+    if (this.textIntervalId) {
+      clearInterval(this.textIntervalId);
+    }
+
     container.innerHTML = ''; 
     let index = 0;
 
-    const interval = setInterval(() => {
+    this.textIntervalId = setInterval(() => {
       if (index < text.length) {
         container.innerHTML += text[index];
         index++;
       } else {
-        clearInterval(interval);
+        clearInterval(this.textIntervalId);
       }
     }, 50);
   }
@@ -135,7 +141,7 @@ export class InterviewPaneComponent implements OnInit, AfterViewInit {
       this.stopRecording();
     }
   }
-
+  
   startRecording(): void {
     this.isRecording = true;
     this.audioRecordingService.startRecording();
@@ -144,34 +150,41 @@ export class InterviewPaneComponent implements OnInit, AfterViewInit {
     });
     this.audioRecordingService.getRecordedBlob().subscribe((data) => {
       this.audio = data;
+      console.log("Recorded audio data:", this.audio);
       this.audioBlobUrl = this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(this.audio.blob));
     });
   }
-
+  
   stopRecording(): void {
     this.audioRecordingService.stopRecording();
     this.isRecording = false;
+    setTimeout(() => {
+      this.uploadAudio();
+    }, 1000);
   }
-
+  
   uploadAudio(): void {
     if (this.audio && this.audio.blob) {
       const formData = new FormData();
       formData.append('audio', this.audio.blob, 'recording.webm');
+      
+      const videoList = this.sharedService.getCurrentVideoList();
+      if (videoList.length > 0) {
+        const selectedVideoId = videoList[videoList.length - 1].id; 
 
-      const audioList = this.sharedService.getCurrentVideoList();
-      if (audioList.length > 0) {
-        const selectedAudioId = audioList[audioList.length - 1].id;
+        formData.append('id', selectedVideoId);
 
-        formData.append('id', selectedAudioId);
-
-        this.videoService.uploadVideo(formData).subscribe(
-          (response: string) => {
+        this.audioService.uploadAudio(formData).subscribe(
+          (response: String) => {
             console.log("Response (uploadAudio): ", response);
+          },
+          (error) => {
+            console.error('Error uploading audio', error);
           }
         );
       } else {
         console.error('No audio data available');
       }
     }
-  }
+  }  
 }
diff --git a/frontend/src/app/shared.service.ts b/frontend/src/app/shared.service.ts
index 06974e2b2afa7b9d168d5dd13e526afdfa5b6a61..fbfc18a785c4cf34f0c6b899f10af1bcd1e06c04 100644
--- a/frontend/src/app/shared.service.ts
+++ b/frontend/src/app/shared.service.ts
@@ -12,9 +12,17 @@ export class SharedService {
   private numQuestions = new BehaviorSubject<number>(0);
   numQuestions$ = this.numQuestions.asObservable();
 
-  private selectedVideoId = new BehaviorSubject<number | null>(null);
-  selectedVideoId$ = this.selectedVideoId.asObservable();
 
+  // Audio from User
+  private audioListSource = new BehaviorSubject<{ id: string, urls: string[] }[]>([]);
+  audioList$ = this.audioListSource.asObservable();
+
+  updateAudioList(audioData: { id: string, urls: string[] }[]): void {
+    this.audioListSource.next(audioData);
+  }
+
+
+  // Hinata Videos
   private videoListSource = new BehaviorSubject<{ id: string, urls: string[], script: string }[]>([]);
   videoList$ = this.videoListSource.asObservable();
 
@@ -45,17 +53,13 @@ export class SharedService {
     this.videoListSource.next(videoData);
   }
 
-  getCurrentVideoList(): { id: string, urls: string[], script: string }[] {
+  getCurrentVideoList(): { id: string, urls: string[] }[] {
     return this.videoListSource.getValue();
   }
 
   private videoUrlsSource = new BehaviorSubject<string[]>([]);
   videoUrls$ = this.videoUrlsSource.asObservable();
 
-  setVideoUrls(videoUrls: string[]) {
-    this.videoUrlsSource.next(videoUrls);
-  }
-
   setJsonUploaded(isUploaded: boolean): void {
     this.jsonUploaded.next(isUploaded);
   }
@@ -63,8 +67,4 @@ export class SharedService {
   setNumQuestions(num: number): void {
     this.numQuestions.next(num);
   }
-
-  setSelectedVideoId(id: number): void {
-    this.selectedVideoId.next(id);
-  }
 }