add comments, and a  little modify