further work on the IO