refactoring and documentation
refactoring and documentation