You have a bunch of XYZPatch classes that just define VTable indices and then this class which looks like it should be the same (based on the name) but does way more. I would suggest we separate the two things. One hierarchy called `IUnknownVTable`, `IInternetProtocolRootVTable`, etc. and the other deriving from `URLMonPatchBase` with all the patching stuff.