Added documentation to all the classes