In the future we might want to make two, three, and four arg versions of this to avoid the `new Object[]` allocation. But let's not prematurely optimize... (unless Jesse tells us to).