@Jonathan Holland said:wrote this as a joke, but now I feel all dirty inside. ... The code appears to only manage loop state, nothing more. Can't you use a delegate to have the class actually run the loop code for you?