Here's a simpler implemention of #249

This avoids a circular import by burying an import rather than folding
two files together (#275).