take returns a limited stream, not an iterator