def __init__(object, depth, id_attr, children_attr, expanded_nodes=[]):
    """
        'object' is the object that is being wrapped

        'depth' is the positional depth of the node in the tree

        'id_attr' should point to an attribute/method name of 'object'
        (and all other wrapped objects), giving each object a unique
        id in the tree.

        'children_attr' should point to an attribute/method name of
        'object' containing/resulting object's children.

        'expanded_nodes' is a list containing ids of nodes that are
        expanded from the beginning.
        """
