diff --git a/student-distrib/bootimg b/student-distrib/bootimg
index 4a464ceb3fc8176e22145112ad23995764e3b49c..8fa7600672cf3a1a64abf6bdb9c39c7bb4c19934 100755
Binary files a/student-distrib/bootimg and b/student-distrib/bootimg differ
diff --git a/student-distrib/mp3.img b/student-distrib/mp3.img
index 0521e3fd466ab5e2a974b840b1a2c89b0d2a82b1..f9b0e7abb3187b7e61a08ceca85b733bb666c00b 100755
Binary files a/student-distrib/mp3.img and b/student-distrib/mp3.img differ
diff --git a/student-distrib/proc.h b/student-distrib/proc.h
index bd6628e99fa8c6cf095bb827c510a0b6c07ecc5a..765c57b61daca3711e04908ecedf8384a72f5c4f 100644
--- a/student-distrib/proc.h
+++ b/student-distrib/proc.h
@@ -7,9 +7,6 @@
 #include "terminal.h"
 #include "filesys.h"
 
-/* Mask to get 8KB page */
-#define PCB_M           0xFFFFE000
-
 extern int32_t fail(); // Error handling helper function
 extern void control_initilization(void);
 extern void exit(void);
diff --git a/student-distrib/scheduler.c b/student-distrib/scheduler.c
index 23ad1dce5c7aa30720f14e2e37d7c34b3dee735a..fcedaf302460ccede5aef7ff53609d7d632c6865 100644
--- a/student-distrib/scheduler.c
+++ b/student-distrib/scheduler.c
@@ -1,8 +1,12 @@
 #include "scheduler.h"
 
+/* The scheduler function
+ *
+ * DISCRIPTION: This function switch running process every 15 ms
+ *
+ */
 void scheduler(void){
-    
-    //printf("schedule counter = %d\n", ++counter);
+
     // Bookkeeping
     pcb_t * curr_pcb = terminal[running_terminal].pcb;
 
@@ -10,7 +14,7 @@ void scheduler(void){
     {
 
         // initialize pcb and set esp and ebp
-        // scheduler_flag used in execute to override pcb_init ebp and esp 
+        // scheduler_flag used in execute to override pcb_init ebp and esp
         pcb_t pcb;
         pcb.scheduler_flag = 1;
 
@@ -24,8 +28,6 @@ void scheduler(void){
 
         terminal[running_terminal].pcb = &pcb;
 
-        //printf("[SCHEDULE] ebp = %x , esp = %x\n", pcb.current_ebp, pcb.current_esp);
-
         switch_terminal(running_terminal);
 
         printf("terminal = %d\n", running_terminal);
@@ -57,19 +59,12 @@ void scheduler(void){
 
     pcb_t* next_pcb = terminal[running_terminal].pcb;
 
-    //printf("[SCHEDULE] curr_pcb = %x , next_pcb = %x\n", curr_pcb, next_pcb);
-
     // update current pid, tss and remap paging
     remap_proc(next_pcb->pid);
 
     tss.ss0 = KERNEL_DS;
     tss.esp0 = _8_MB - _8_KB * (next_pcb->pid);
 
-    //printf("[SCHEDULE] esp = %x ebp = %x pid = %d pcb = %x\n", next_pcb->current_esp, next_pcb->current_ebp, next_pcb->pid, next_pcb);
-
-    // cli();
-    //while(1);
-
     send_eoi(0);
 
     asm volatile(
diff --git a/student-distrib/scheduler.h b/student-distrib/scheduler.h
index 52a3c62313531b737f04d60c594f6705fc6405bb..09b4e954efd14029f910c7bf9d635f11833d6b0c 100644
--- a/student-distrib/scheduler.h
+++ b/student-distrib/scheduler.h
@@ -1,10 +1,15 @@
 #include "lib.h"
 #include "types.h"
 #include "x86_desc.h"
-#include "terminal.h"
-#include "syscall.h"
-#include "paging.h"
 
-int32_t remap_proc(int32_t pid);
 
 extern void scheduler(void);
+
+/* function needed from other place */
+int32_t execute (const uint8_t* command);
+
+int32_t switch_terminal(int32_t term_id);
+
+int32_t remap_proc(int32_t pid);
+void remap2(int32_t term_id);
+void remap_vidmem();
diff --git a/student-distrib/syscall.c b/student-distrib/syscall.c
index cdc4873d8d286bc32a18ef01ccf3d5c6bb63ea57..b1e412d6e9cb5ff2d51154b7c0021c5a73e76a2c 100644
--- a/student-distrib/syscall.c
+++ b/student-distrib/syscall.c
@@ -103,7 +103,7 @@ int32_t execute(const uint8_t* command)
     int32_t ret, arg_num; //number that indicated special command
 
     int32_t pid = set_pid();
-    //if( pid == -1) return -1; // reach max process 
+    //if( pid == -1) return -1; // reach max process
 
     ret = parse_cmd(command, parsed_cmd, argv);