added comments to make to make it nicer