I've added some comments.