/// <inheritdoc />
        protected override void Load()
        {
            if (!IsLoaded)
            {
                var eventGeneratorToLoad = LocalConfiguration.EventGenerators;
                var cwd = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

                foreach (var eg in eventGeneratorToLoad)
                {
                    try
                    {
                        SimpleLogger.Information($"Loading Event Generator: {eg.Name}, from DLL: {eg.Dll}");
                        var      absolutePath = Path.IsPathRooted(eg.Dll) ? eg.Dll : Path.Combine(cwd, eg.Dll);
                        Assembly assembly     = Assembly.LoadFrom(absolutePath);
                        Type     type         = assembly.GetType(eg.Name);
                        EventGenerators.Add((IEventGenerator)Activator.CreateInstance(type));
                    }
                    catch (Exception e)
                    {
                        SimpleLogger.Error($"Couldn't load Event Generator: {eg.Name}, from DLL: {eg.Dll}. Exception {e}");
                    }
                }
            }

            IsLoaded = true;
        }