The subs maybe need some minor check.

Some upper and lower case letters.

I >l and so on.