error checking in io