add some comments for the codes