this may break bc (the `IOException` may be used on a userland)