channels now get allocated when first command is received instead of at the start of Viper