Error handling Using execve instead of execlp after forking command history (up arrow gives prev command) Incorporating more of bash features ( to be elaborated later) using sigAction instead of signal putting tokenizing logic in a separate function