Lots of code movement here, but it allows the typesetter to be an independent (inheritable) object - allows for variable height frames, grid typesetting etc.
Tighten leading.
Debugging in the new world order.
I am still not convinced that this is correct; leading and baselines confuse me. But it seems to be better.
Using a matrix means you need to translate manually.