dont need to embed the io.Writer