refactoring
additional refactored