Maybe we've talked about this, I don't remember. But does it make sense to have tCallback defined in an "internal" header file, but then have it used in all the public headers? Having Dummy in internal.h makes sense, since it isn't exposed in any of the headers, but having tCallback there feels a little weird.