New design

Probably needs a migration test.