#15 Add javadoc to core classes