make it so each routine gets a channel