Added Unit Testing and JavaDoc