Added comments to explain stuff