protected abstract string GetInvokationResult(object sender, TimerFinishedEventArgs e);
 protected override string GetInvokationResult(object sender, TimerFinishedEventArgs e)
 => $"{nameof(SecondTimeObserver)}'s timer is up at: {e.InvokationTime:T}";
 private void InvokeAction(object sender, TimerFinishedEventArgs e)
 {
     Console.WriteLine($"{GetType().Name}: ended up at {DateTime.Now:T}");
     _triggerResults.Add(GetInvokationResult(sender, e));
 }