diff --git a/NzbDrone.Common/Eventing/EventAggregator.cs b/NzbDrone.Common/Eventing/EventAggregator.cs
new file mode 100644
index 000000000..bb76f8479
--- /dev/null
+++ b/NzbDrone.Common/Eventing/EventAggregator.cs
@@ -0,0 +1,174 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+
+//From http://caliburnmicro.codeplex.com/
+
+namespace NzbDrone.Common.Eventing
+{
+ ///
+ /// Enables loosely-coupled publication of and subscription to events.
+ ///
+ public class EventAggregator : IEventAggregator
+ {
+ readonly List handlers = new List();
+
+ ///
+ /// The default thread marshaller used for publication;
+ ///
+ public static Action DefaultPublicationThreadMarshaller = action => action();
+
+ ///
+ /// Processing of handler results on publication thread.
+ ///
+ public static Action