Added javadoc to all the classes explaining what the class does