refactoring and add comments