Is `IOError` a good idea in here? Or what else should be raised?