Dynamic Timers In C++

Hello! I am trying to create timers dynamically in unreal engine c++, but cannot get them to work. When StartNewTimer() is called, PrintInteger() should be called after 3 seconds. However, this only works the first time StartNewTimer() is called and even though I am calling StartNewTimer() multiple times, PrintInteger is only being called once. Is there an error in how I am creating/ setting/ storing my timer handles?

//header:

TArray<FTimerHandle> TimerHandles; 


//cpp: 

void AMyGameMode::StartNewTimer(int32 MyInt)
{
    FTimerHandle NewTimerHandle; 
    FTimerDelegate TimerDelegate; 
    TimerDelegate.BindUFunction(this, FName("PrintInteger"), MyInt);
    TimerHandles.Emplace(NewTimerHandle); 
    GetWorld()->GetTimerManager().SetTimer(TimerHandles.Last(), TimerDelegate, 3.f, false);
    return; 
}

void AMyGameMode::PrintInteger(int32 MyInt)
{
    UE_LOG(LogTemp, Warning, TEXT("%d"), MyInt); 
}