Плохо, что вам пришлось переписывать часть кода шелла.
Надо инициализировать шелл командами и стейтом извне.