def for_branch(self, branch):
        """
        Return a new CourseLocator for another branch of the same library (also version agnostic)
        """
        if self.org is None and branch is not None:
            raise InvalidKeyError(self.__class__, "Branches must have full library ids not just versions")
        return self.replace(branch=branch, version_guid=None)