adjust $destroy procedure so final cleanup happens after transition finishes