refactoring and drying