def split_sequences2d(sequences, seq_splitter_d1, seq_splitter_d2):
    """Split a sequence into its second level hierarchy components
       e.g. Split a string into its component words and characters.
    [
    'a brown cat sat on the red mat',
    'a gray fox jumped over the dog',
    'Phil saw Feel feel the feels'
    ]
    will become
    [
      [['a'], ['b', 'r', 'o', 'w', 'n'], ['c', 'a', 't'], ['s', 'a', 't'], ['o', 'n'], ['t', 'h', 'e'], ['r', 'e', 'd'], ['m', 'a', 't']],
      [['a'], ['g', 'r', 'a', 'y'], ['f', 'o', 'x'], ['j', 'u', 'm', 'p', 'e', 'd'], ['o', 'v', 'e', 'r'], ['t', 'h', 'e'], ['d', 'o', 'g']],
      [['P', 'h', 'i', 'l'], ['s', 'a', 'w'], ['F', 'e', 'e', 'l'], ['f', 'e', 'e', 'l'], ['t', 'h', 'e'], ['f', 'e', 'e', 'l', 's']]
    ]

       This will result in a doubly nested list"""
    splitted_seqs_d1 = [seq_splitter_d1(seqs) for seqs in sequences]
    splitted_seqs_d2 = []
    for splitted_seq_d1 in splitted_seqs_d1:
        splitted_seq_d2 = [seq_splitter_d2(seq_d2) for seq_d2
                           in splitted_seq_d1]
        splitted_seqs_d2.append(splitted_seq_d2)
    return splitted_seqs_d2