Documentation and exception changes

* Removed Override from interface implementation to target 1.5
* Improved commenting
* Fixed error message typo
* Changed `read` to throw IOException on InvocationTargetException