Some comments to explain the functions