#15 Enhanced JavaDoc and implemented unit tests