2 stop connection

Potential approach for issue #2. The diff looks a bit muddled, but basically I pulled all of the event handlers out in to actual methods rather than lambdas, which are then subscribed to in `Initialize()` and unsubscribed from in `Stop()`. It it probably easier to look at the raw file than the diff for review purposes.