I agree, there should be a better way, but in this case I think there's no need for a type-safe variant. We can just delete this and use lambdas with captures, but as you know our delegates don't support them yet. Hint: please add :)