Hmm then maybe you should rename 'playbackToCurrent_' - it's name does not indicate that it would be clearing the program cache, and it's difficult for someone looking at the code to figure that out. Having an explicit 'clearCache' in your markArgsReset_ and markArgsAltered_ methods would be much more clear.