let it throw IOException to the top