Refactoring and keeping it DRY