added comments and editted punctuation