// if you don't call SetOwner() or provide an owner in the ctor
// then you must override Notify() in order to receive the timer
// if you don't call SetOwner() or provide an owner in the ctor
// then you must override Notify() in order to receive the timer