Halt

This is a redo of #34 but targeting the new-interface branch