def check_impl(self):
        """
        sets self.changes to the result of self.changes_impl, then if any
        member of those checks shows as a change, will return
        True,None
        """

        c = False
        for change in self.collect():
            change.check()
            c = c or change.is_change()
        return c, None
sets self.changes to the result of self.changes_impl, then if any
        member of those checks shows as a change, will return
        True,None