This refactor scares me a bit. I'm not sure how to justify the 30 lines to 50 lines increase.