Refactored listener system; listeners now receive events relating to a specific request. If the listener is re-used for a new request; it is un-bound from the previous request.