make MODE thingies into interfaces so they have a stable cross-process hash