are those the only choices? an `else` to be catch all at the end, maybe just raise a `NotImplementedError`?