Add some comments for ease of understanding