Previous fix for singleton destructors was actually bad, ended up calling all destructors twice, this fixes it
- explicit call to destructor on singleton release