add JavaDoc and Exceptions
add