Wrote new templated class Caller that abstracts out the differences between function and member function pointers. The next step is to replace the current timerHook coding with these new pointers
Removing the timerHook class from this program was ez-pz. Now the Timer class runs on the much better looking Caller<void> structure, we've increased class separation since you don't need to inherit TimerHook anymore. All in all this is a great improvement. The only thing that this is worse for is the fact that the Timer's callbacks (or Callers I suppose) can go bad, but that would be the fault of whoever uses that Timer in that case.