shell's class channel interactive behaviour decoupled