added comments to all classes and methods