The ordering of parameters here doesn't make a huge amount of sense. We should either process `defaults` in reverse order (so earlier dicts in the arg list always override later ones) or put `original` at the end (so later ones always override earlier ones). Either way, having `original` as a separate param isn't really necessary.