implemented shell invocation