add comments and refactor long string