Add @throws Javadoc to public API
Add input validation to public API where needed
Add support for message args to exception classes