IIRC this now uses return / fall through model to handle catch-all