use new io api