def __call__(cls, parent=None, **kwargs):
    """ Create a new instance of the enamldef class.

        This method will create the new instance, then populate that
        instance with children defined in the enamldef. Once those
        children are added, the __init__ method of the instance will
        be invoked with the provided arguments.

        Parameters
        ----------
        parent : Object or None
            The parent object of the new instance.

        **kwargs
            Additional keyword arguments to pass to the constructor.

        """
    instance = cls.__new__(cls)
    cls.__node__(instance)
    instance.__init__(parent, **kwargs)
    return instance
