moved subscriber operations to the demux