          orig_key = span.key
          orig_size = tokens.length
          self._split_affixes(span, &prefixes, &suffixes)
          self._attach_tokens(tokens, start, span, &prefixes, &suffixes)
          self._save_cached(&tokens.lex[orig_size], orig_key, tokens.length - orig_size)
  
      cdef UniStr* _split_affixes(self, UniStr* string, vector[const Lexeme*] *prefixes,
                                  vector[const Lexeme*] *suffixes) except NULL:
          cdef size_t i
          cdef UniStr prefix
 
</s> remove         '''Retrieve a pointer to a Lexeme from the lexicon.'''
 </s> add         '''Get a pointer to a Lexeme from the lexicon, creating a new Lexeme
        if necessary, using memory acquired from the given pool.  If the pool
        is the lexicon's own memory, the lexeme is saved in the lexicon.''' </s> remove     cdef int _save_cached(self, const Lexeme* const* tokens, hash_t key, int n) except -1
 </s> add     cdef int _save_cached(self, const TokenC* tokens, hash_t key, int n) except -1 </s> remove             attr = get_attr(self.lex[i], attr_id)
 </s> add             attr = get_attr(self.data[i].lex, attr_id) </s> remove             lexemes[i] = tokens[i]
 </s> add             lexemes[i] = tokens[i].lex </s> remove         self.lex[self.length] = lexeme
        self.idx[self.length] = idx
        self.pos[self.length] = 0
        self.ner[self.length] = 0
 </s> add         cdef TokenC* t = &self.data[self.length]
        t.lex = lexeme
        t.idx = idx
        t.pos = 0
        t.sense = 0
        self._save_cached(&tokens.data[orig_size], orig_key, tokens.length - orig_size)
          orig_key = span.key
          orig_size = tokens.length
          self._split_affixes(span, &prefixes, &suffixes)
          self._attach_tokens(tokens, start, span, &prefixes, &suffixes)
        self._save_cached(&tokens.data[orig_size], orig_key, tokens.length - orig_size)
  
      cdef UniStr* _split_affixes(self, UniStr* string, vector[const Lexeme*] *prefixes,
                                  vector[const Lexeme*] *suffixes) except NULL:
          cdef size_t i
          cdef UniStr prefix
keep keep keep keep replace keep keep keep keep keep
 * Introduce a TokenC struct, to handle token indices, pos tags and sense tags 
spacy/lang.pyx