add BatchedStream abstraction; sequence::batchN