Using a StreamInterface instead