hiding the sequencer struct and using only channels
updating q to work with new sequencer