added more documentation to classes