adding comments to the classes explaining why they are what they are