Reworking version negotiation.

Incorporate the NBI switch as the primary cache for neogiated
information and capabilities.
Adding events to application.