ensure markers are destroyed before creating new ones

Why? You can already get the model within callbacks. We are already getting heat for pumping stuff into the gMarker object.