added some documentation to all the classes