wrapper_io functions