adding sio I/O