This should be called when we want to detect a change in the status of the system regarding the transient list
        This function also applies changes due to regex_set updates if needed
        _transient_change_detect -> _transient_change_diff -> _update_transients

def transient_change_detect(self, *class_build_args, **class_build_kwargs):
        """
        This should be called when we want to detect a change in the status of the system regarding the transient list
        This function also applies changes due to regex_set updates if needed
        _transient_change_detect -> _transient_change_diff -> _update_transients
        """

        transient_detected = set(self.get_transients_available())
        #TODO : unify that last_got_set with the *_available. they are essentially the same
        tst_gone = self.last_transients_detected - transient_detected

        # print("INTERFACING + {transient_detected}".format(**locals()))
        # print("INTERFACING - {tst_gone}".format(**locals()))

        dt = self.transient_change_diff(
            # we start interfacing with new matches,
            # but we also need to update old matches that match regex now
            transient_appeared=transient_detected,
            transient_gone=tst_gone,
            *class_build_args,
            **class_build_kwargs
        )

        self.last_transients_detected.update(transient_detected)
        if tst_gone:
            self.last_transients_detected.difference_update(tst_gone)

        return dt