ShellClient refactoring