at least it seems like that was a bug. hopefully i didn't just break other things
mostly as-is, taken from `rattail.fablib` subpackage