def perform_extra_setups(self):
        """Perform specific checks/setups recursively.

        This method is called recursively from the menu
        manager instance __init__ method to setup all
        submenus recursively. It only needs to be called
        once.
        """
        ### check need to make children scrollable according
        ### to whether or not they trespass the boundaries
        self.check_scrollability()

        ### manage scrollability and behaviours on
        ### children recursively
        self.check_clean_bg()

        ### define behaviours depending on scrollability or
        ### lack thereof
        self.define_behaviours()

        ### execute this method on the each child, if it has
        ### such method (this cause the method to execute
        ### recursively until the last item in the branch)

        for child in self.children:

            try:
                method = child.perform_extra_setups
            except AttributeError:
                pass
            else:
                method()
Perform specific checks/setups recursively.

        This method is called recursively from the menu
        manager instance __init__ method to setup all
        submenus recursively. It only needs to be called
        once.
        
nodezator/menu/submenu/main.py