As edge cases keep popping up, I prefer to have this as a single function, eventually we may have to do some space  or accent normalization.