refactoring with gabe