A simple shell that supports supoorts background and forground execution, piping with some error handling. It also supoorts internal commands like exit, cd.