generalized notification eventArgs to IDictionary
changed member types to interface instead of specific implementation for util containers
changed Assert.Throws to generic form for shorter code