comments to explain every line of the code