I haven't moved the code to an io folder as experimental is currently very empty and this improvement would perhaps be most appropriate when it moves out of experimental.