Seems like we could do these patterns better and have them switch back and forth based on an argument. But ... that's under-the-hood, so we can tinker with that later.