Wow thank you for this, I always wondered how timers are implemented. Hoping I'll get to use this in the future.