Extract ResponderProxy from persistence aspect

Clean up and generalise adding callbacks to the responder object