Renaming, refactoring and add comments
Add comments and refactoring