mutable on_destroy = (fun () -> ())