can't we avoid the additional isInitialized variable by having _listener and _controller default to NULL (which matches our convention elsewhere in the code) and then just call delete on both of those?