writing a shell for educational purposes