optionally use ArrayViews