switched to ioexceptions