diff --git a/src/commands.c b/src/commands.c
index 13e9c330aedcb9d3c1c0979a5b22fd7844516ada..2623128c335586612da928c41b98e879a1001a33 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -3,6 +3,9 @@
 #include <string.h>
 #include <assert.h>
 
+#include <wait.h>
+#include <unistd.h>
+
 #include "commands.h"
 #include "built_in.h"
 
@@ -49,6 +52,19 @@ int evaluate_command(int n_commands, struct single_command (*commands)[512])
       return 0;
     } else if (strcmp(com->argv[0], "exit") == 0) {
       return 1;
+    } else if (strcmp(com->argv[0], com->argv)) { //compare input command = argv
+        int pid = fork(); //create child
+        int *parentStatus;
+
+        if (pid < 0) { //failed process
+          fprintf(stderr,"Failed create process\n");
+        }
+        else if (pid == 0) {
+          fprintf(stderr,"Execv doesn't execute\n");
+        }
+        else {
+          wait(parentStatus);
+        }
     } else {
       fprintf(stderr, "%s: command not found\n", com->argv[0]);
       return -1;
diff --git a/src/signal_handlers.c b/src/signal_handlers.c
index 4b6fe2e073f327917964b5327b6649f74bcbda1e..f65cd8a77e1c70df3f0d0ec44af9fa3b13e3c1d9 100644
--- a/src/signal_handlers.c
+++ b/src/signal_handlers.c
@@ -1,11 +1,17 @@
+#include <stdio.h>
+#include <signal.h>
 #include "signal_handlers.h"
 
 void catch_sigint(int signalNo)
 {
+  printf("you input Ctrl + C\n");
+  signal(signalNo,SIG_IGN);
   // TODO: File this!
 }
 
 void catch_sigtstp(int signalNo)
 {
+  printf("you input Ctrl + Z\n");
+  signal(signalNo,SIG_IGN);
   // TODO: File this!
 }