fix on_model_change hooks