It's like your example, but there are multiple paths for it to follow so I have to hang the callback on a lot of functions