more work on IO