please add comments in the code