ensure markers are destroyed before creating new ones

We need to be careful as this is getting circular. The other fix is to wrap calculator internally and pass the model in the callback.