more io interface work