Added documentation for most of the classes