Add io.Writer support