def __init__(self, tree, axes, style):

        # args includes axes
        self.tree = tree
        self.axes = axes
        self.style = style
        self.canvas = None
        self.external_axis = False

        # get the longest name for dimension fitting
        self.lname = 0
        if not all([i is None for i in self.style.tip_labels]):
            self.lname = max([len(str(i)) for i in self.style.tip_labels])

        # ntips and shape to fit with provided args
        self.get_dims_from_tree_size()

        # fills canvas and axes
        self.get_canvas_and_axes()

        # expand the domain/extents for the text
        # self.fit_tip_labels()

        # ticks for tree and scalebar
        self.add_axes_style()