* refactoring
* adding comments