Added comments to make the code more redable