added ignoring vowel like letters, combining duplicate encodings and making sure that first letter is upper case