Think of the case where not every interview needs to have all the handlers that are potentially available to the interview. You can't pre-determine which ones need to be registered, and it's not feasible either to add every possible handler to the registry because that destroys the point of the registry if everything is in it. You're not going to write a different web socket handler for each kind of interview (i.e. all different combinations of event handlers) so how do you propose managing a large number of event handlers? 

You're also not thinking about how the web socket handler has to interplay with a normal HTTP RequestHandler. The web socket handler will be called __after__ the ```RequestHandler```, which means that none of the event handlers will be registered till a web socket connection is opened. Not every application is going to need a web socket connection, so how will those other applications register their handlers? If we also end up having more than just one web socket handler or request handler, then in how many places are you going to write the registry.register() code?

Having all the handlers in a list and then iterating through isn't really a good solution either. I was thinking more along the lines of having a dictionary of raw handlers available in the registry and then selectively adding them to the specific interview's registry by instantiating via a utility method. So all registry.register() would do is take a handler name, go find where that handler is defined, instantiate it, and add the instantiated object to the main ```interviews``` dict in the registry