remember to run tests after refactoring. oops.