Finished version1 , add all comment