some more io changes to make this more smooth