Also, this is dependent on stop clearing the timeout before calling start again, may want to clear the timeout before creating a new one just to ensure nothing wrong ever happens here.  If it was C# there'd be a Debug.Assert :smile: 

Completely optional since it is functionally correct based on how the code is today though.