shell interface