def validate(self, processes=1, fast=False):
        """Checks the structure and contents are valid. If you supply
        the parameter fast=True the Payload-Oxum (if present) will
        be used to check that the payload files are present and
        accounted for, instead of re-calculating fixities and
        comparing them against the manifest. By default validate()
        will re-calculate fixities (fast=False).
        """
        self._validate_structure()
        self._validate_bagittxt()
        self._validate_contents(processes=processes, fast=fast)
        return True