Model destroy() function that sends destroy event before calling destructors, which wasn't happening before and causing major issues