diff --git a/userprog/syscall.c b/userprog/syscall.c
index 3c01e635115bc60e1e213cf27574f532b14a17a9..55e9ffe91f27173f2ef6daa1d311dcd6e1bb3148 100644
--- a/userprog/syscall.c
+++ b/userprog/syscall.c
@@ -58,9 +58,6 @@ syscall_handler (struct intr_frame *f UNUSED)
   case SYSCALL_HALT:
     syscall_halt(f);
     break;
-  case SYSCALL_EXIT:
-    syscall_exit(f);
-    break;
   case SYSCALL_EXEC:
     syscall_exec(f);
     break;
@@ -78,6 +75,6 @@ syscall_handler (struct intr_frame *f UNUSED)
 	  break;
   default:
     printf ("WARNING: Invalid Syscall (%d)\n", syscall_number);
-    thread_exit ();
-  }
+	thread_exit();
+  }  
 }
diff --git a/userprog/syscall_filesize.c b/userprog/syscall_filesize.c
index cdf87d038feca3cebc55f381a13e288a5eca11c9..ebfbf76167d58126c5c6cee9bb7da6c6764922c6 100644
--- a/userprog/syscall_filesize.c
+++ b/userprog/syscall_filesize.c
@@ -1,13 +1,20 @@
+/*
+ * Returns the size, in bytes, of the file open as fd.
+ *
+ * Authored by Alex Stratford
+ */
+
 #include "system_calls.h"
 #include "filesys/file.h"
 
-int syscall_filesize(struct intr_frame *file_descriptor) {
+int syscall_filesize(struct intr_frame *f) {
+	// pop off first int argument from interrupt frame
+	int file_descriptor = *((int*)f->esp + 1);
     // Described in system_calls.h, stores file descriptors mapped to files
 	struct file_map *file_map = get_file(file_descriptor); 
-	int size;
 	if (file_map == NULL) // Checking if file is empty or non-existent
 		return -1; // Returning failure state
 	// Using the file_length function in file.h to get the length and store it
-	size = file_length(file_map->file); 
-	return size;
+	int size = file_length(file_map->file); 
+	f->eax = size;
 }
\ No newline at end of file
diff --git a/userprog/system_calls.h b/userprog/system_calls.h
index ab1d03adfc5a75d6f548c27de8667477b4cde3c0..21d6f9f95f9ba4a77c47687ad5f95a1c9de9c25e 100644
--- a/userprog/system_calls.h
+++ b/userprog/system_calls.h
@@ -18,14 +18,6 @@ struct file_map
  */
 void syscall_halt(struct intr_frame *f);
 
-/*
- * Terminates the current user program, returning status to the kernel. If the
- * process's parent waits for it (see below), this is the status that will be
- * returned. Conventionally, a status of 0 indicates success and nonzero
- * values indicate errors. 
- */
-void syscall_exit(struct intr_frame *f);
-
 /*
  * Runs the executable whose name is given in cmd_line, passing any given
  * arguments, and returns the new process's program id (pid). Must return pid
@@ -44,7 +36,8 @@ void syscall_wait(struct intr_frame *f);
 /*
 * Returns the size, in bytes, of the file open as fd.
 */
-int syscall_filesize(struct intr_frame *file_descriptor)
+int syscall_filesize(struct intr_frame *f)
+
 /*
  * NOTE: There are more system calls implemented by Pintos but we are not
  * implementing them because the assignment brief does not ask of it.