refactoring and adding a description