We could consider extracting out `SignedAssertion` and `HostedAssertion` classes with the same interface to abstract this and make it more extensible, but maybe that's my java training coming back to haunt me.