I would like to explain if they asked. And give some comments on the code to tell what is the code doing.