I did this in trac5563 premium branch (there are two commits because RADIUS also has a host backend). Note as these backends are child/derived classes when you forget something it is not very visible...

I reviewed your changes both in the main repo and in the premium repo. The unit tests pass now and I don't see anything wrong in the code. You can merge this. However, this is quite an intrusive change because it removes the APIs that have been there for quite a long time. If anyone has hooks libraries using them they will get into trouble. I think it is fine, but you should provide a clear ChangeLog entry indicating that this incompatible change has been introduced. In addition, we need to bump up the library major version number for the 1.4 release. Finally, the release notes must clearly state that we have made this change.