Added some normal comments to understand it easier.