more OOP ShellState