we could make the namespace comparable to avoid the range effect.
I feel bad duplicating all this switch case code