change the io interface