Added Javadoc for most classes and method