Throw IOException, added new methods