arraystream: keep less state