def create_term(self, lemma, pos, morphofeat, tokens, id=None):
        """
        Create a new term and add it to the term layer
        @type lemma: string
        @param lemma: The lemma of the term
        @type pos: string
        @param pos: The postrag(rst letter) of the POS attribute
        @type morphofeat: string
        @param morphofeat: The morphofeat (full morphological features) of the term
        @type tokens: sequence of L{Cwf}
        @param tokens: the token(s) that this term describes
        @type id: string
        @param id: the id of the term, if not given an id tXXX will be created
        """
        if id is None:
            n = 1 if self.term_layer is None else len(self.term_layer.idx) + 1
            id = "t{n}".format(**locals())
        new_term = Cterm(type=self.type)
        new_term.set_id(id)
        new_term.set_lemma(lemma)
        new_term.set_pos(pos)
        new_term.set_morphofeat(morphofeat)
        new_span = Cspan()
        for token in tokens:
            new_span.add_target_id(token.get_id())
        new_term.set_span(new_span)
        self.add_term(new_term)
        return new_term