hooray better refactoring!