Matt points out that you mean a OO style rather than a functional one. I'm not immediately convinced that this is a good model - we don't really have an object on which the deregistration operation makes sense, or which needs to keep any state around: fundamentally we need an AoR and possibly a binding ID to deregister, but it doesn't make sense to me to have it on the AoRData object, because we also need the full message data.

Do you have any better ideas on an OO structure?