refactoring
code