OK so this idea is a bit Pythonic... I'm keeping it here for posterity but I
can't help but feel there's a more OOP way to do this.