add client_shell, and remove type argument from handlers