incredibly hard setTimeout exercise involving scope and clearing the timer before it is defined