comment and refactor