private static List<Letter> getLetters(final String word)
    {
        char[] txt = word.toLowerCase().toCharArray();
        List<Letter> letters = new ArrayList<>();
        Letter lastLetter = null;
        for (int i = 0; i < txt.length; i++)
        {
            char c = txt[i];
            // A, E, I, O, U are vowels by nature
            if (!isConsonant(c))
            {
                if (lastLetter != null && lastLetter instanceof Vowel)
                {
                    lastLetter.add(c);
                }
                else
                {
                    lastLetter = new Vowel(c);
                    letters.add(lastLetter);
                }
            }
            // Y is only a vowel if there is a preceding consonant!
            else if (i > 0 && c == 'y' && lastLetter instanceof Consonant)
            {
                lastLetter = new Vowel(c);
                letters.add(lastLetter);
            }
            // We have a consonant here
            else
            {
                // if this is the first character or a consonant after a vowel
                if (lastLetter == null || lastLetter instanceof Vowel)
                {
                    lastLetter = new Consonant(c);
                    letters.add(lastLetter);
                }
                else
                {
                    lastLetter.add(c);
                }
            }
        }
        return letters;
    }