refactoring yay