This is obviously not ready, but here's a draft with what i could figure
out so far. The commit log is suprisingly unhelpful, but I found ivct on
a mail from two decades ago and figured I'd get started and throw up a
draft for discussion.
There's some duplication here but I can't think of a more logical way to
do it initially.