Simply test un register and deregister pair
Add delegate for shutdown
Allocate on the heap and register that pointer