Refactoring:
* add comments