Make calling validate_patch the responsibility of Patch type