falling back to the io.write principle