diff --git a/mysh b/mysh
new file mode 100755
index 0000000000000000000000000000000000000000..0f3527030ea36fd60c29e3debfce8e555908f47a
Binary files /dev/null and b/mysh differ
diff --git a/src/commands.c b/src/commands.c
index a8c22bc09f6b4e5ce39ecbbea5b316fbb7761a73..12501142bdadda0125df11eab8ff62cb5413a9e6 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -1,7 +1,15 @@
+#include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
+#include <unistd.h>
 
 #include "commands.h"
 
+#define true 1
+#define false 0
+
+char current_dir[1000];
+
 int do_cd(int argc, char** argv) {
   if (!validate_cd_argv(argc, argv)){
     return -1;
@@ -25,9 +33,9 @@ int do_pwd(int argc, char** argv) {
     return -1;
   }
   // TODO: Fill it!
-  char current_dir[1000];
+  
   getcwd(current_dir,1000);
-  printf("%s",current_dir);
+  printf("ajou@ajou-VirtualBox:%s$ ",current_dir);
 
   return 0;
 }
@@ -46,7 +54,7 @@ int validate_cd_argv(int argc, char** argv) {
 
 int validate_pwd_argv(int argc, char** argv) {
   // TODO: Fill it!
-  if(argc == 2 && !(strcmp(argv[0],"cd"))){
+  if(argc == 1 && !(strcmp(argv[0],"pwd"))){
 	  return true;
   }
   else{
diff --git a/src/main.c b/src/main.c
index fddc6fc498fd16b68f563b15fe9853ce2292bfdb..c21c0ddfd22d8d3677e47d1a42083a5eaead645d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -5,6 +5,9 @@
 #include "commands.h"
 #include "utils.h"
 
+#define true 1
+#define false 0
+
 /**
  * Aliased command element
  *
@@ -80,6 +83,7 @@ apply_alias:
       for (int i = 0; i < n_aliased_command; ++i) {
         if (strcmp(argv[0], aliased_commands[i]->alias) == 0) {
           // TODO: fill here!
+	  strcpy(buf, aliased_commands[i] -> command);
 
           goto apply_alias;
         }
@@ -118,13 +122,18 @@ int do_alias(int argc, char** argv) {
     return -1;
 
   // TODO: Fill it!
+  char *token;
+  
 
   return 0;
 }
 
 int validate_alias_argv(int argc, char** argv) {
   // TODO: Fill it!
-  return 1;
+  if(argc < 2){
+	  return 1;
+  }
+  return 0;
 }
 
 
diff --git a/src/utils.c b/src/utils.c
index 2af60fdae81d42f53298b316f8c4ce773b9f712b..1dfcf3f5831d43ea0c83b38244e4f65b53709107 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -1,17 +1,21 @@
 #include "utils.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 
 void mysh_parse_command(const char* command,
                         int *argc, char*** argv)
 {
   // TODO: Fill this!
-  *argc = 0;
-  *avgv = (char**)malloc(sizeof(char)*15);
-  *argv = (char*)malloc(sizeof(char)*15);
-
+  int i = 0;
   char *token;
   char cmd[1000];
   char seps[] = " \t\n";
 
+  *argc = 0;
+  *argv = (char**)malloc(sizeof(char)*15);
+  (*argv)[i] = (char*)malloc(sizeof(char)*15);
+
   strcpy(cmd,command);
   token = strtok(cmd,seps);
 
@@ -24,7 +28,8 @@ void mysh_parse_command(const char* command,
   while(token != NULL){
 	  strcpy((*argv)[i],token);
 	  i++;
-	  (*argv)[i] = (char*)malloc(sizeof(char)*10);
+	  (*argv)[i] = (char*)malloc(sizeof(char)*15);
+	  token = strtok(NULL,seps);
 	  (*argc)++;
   }
 }