And actually, that use of `BaseMessageRecord` looks a bit suspicious to me.  Do we really need it?