added throw IOException declarations