now with IOerror support (not)