Shell with generic ShellState