This one should be a separate PR, I think, since it'll be a big change and add conflicts.