improve the shell