added initial support for a shell mode