abstracted outputChannels concept