the internals now trigger events for open and close, so you can bind to those externally for extensions.