create a custom shell