Added comments to describe everything