Another more-function-y refactor