public void Fire(object sender, EventArgs e, IPublication publication)
{
this.extensionHost.ForEach(extension => extension.FiringEvent(this, publication, sender, e));
this.Clean();
var handlers = this.GetSubscriptionHandlers();
this.CallSubscriptionHandlers(sender, e, handlers, publication);
this.extensionHost.ForEach(extension => extension.FiredEvent(this, publication, sender, e));
}