reduce # of exceptions thrown
privatize
(auto) unregister event handler