Insert a new node containing *value* into this tree such that its
        structure as a binary search tree is preserved.

def insert(self, value):
        """
        Insert a new node containing *value* into this tree such that its
        structure as a binary search tree is preserved.
        """
        side = '_lesser' if value < self.value else '_greater'
        child = getattr(self, side)
        if child is None:
            setattr(self, side, _BinarySearchTree(value))
        else:
            child.insert(value)