When you program something that has to deal with names, read this first:
https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/