So actually your problem inspired me to write a full explanation on my blog. Because I had this problem as well before, and I think it’s an interesting problem to highlight callback design patterns.
I posted here:
An additional solution for you is to use Patch(), I didn’t think about it at first.