Cleaning up notifications

1. Making Notification class private
2. Adding overload of constructor that takes an Action<T>