After some discussion about this yesterday, @jdob and I decided to leave this as is for now for the sake of time.

I think there are probably some good opportunities to refactor this in the future to address the weird OO pattern here, but this code does function well for the time being despite being weird, and I do have a lot to accomplish this sprint.