Is there any particular reason to call `initialize(this)` after the call to `setup`?
If not, it would be better to call it first, so that we will ensure registering the unload handler and call its dispose method on unload, _even if an exception happens during `setup`._