refactoring. write description