protected override void ApplicationStarted()
        {
            _availableComponents = _groupFactory.GetComponentTypes
                                   .Select(x => Activator.CreateInstance(x) as IComponent)
                                   .ToArray();

            var groups = _groupFactory.CreateTestGroups().ToArray();

            foreach (var group in groups)
            {
                EntityCollectionManager.CreateObservableGroup(group);
            }

            var firstRun  = ProcesEntities(10000);
            var secondRun = ProcesEntities(10000);
            var thirdRun  = ProcesEntities(10000);

            Console.WriteLine($"Finished In: {(firstRun + secondRun + thirdRun).TotalSeconds}s");
            Console.WriteLine($"First Took: {firstRun.TotalSeconds}s");
            Console.WriteLine($"Second Took: {secondRun.TotalSeconds}s");
            Console.WriteLine($"Third Took: {thirdRun.TotalSeconds}s");
            Console.WriteLine("Press Enter To Exit");
            Console.ReadKey();
        }