custom shell written in C