def pop(self, i=None):
        """remove the ith term from the term list

        Parameters
        ---------
        i : int, optional
            term to remove from term list

            by default the last term is popped.

        Returns
        -------
        term : Term
        """
        if i == None:
            i = len(self) - 1

        if i >= len(self._terms) or i < 0:
            raise ValueError('requested pop {}th term, but found only {} terms'\
                            .format(i, len(self._terms)))

        term = self._terms[i]
        self._terms = self._terms[:i] + self._terms[i+1:]
        return term