static void Main(string[] args)
        {
            var factory = RabbitFactory.GetFactory();

            if (args.Length == 0)
            {
                Logger.Log("Enter a consumer ID:", true);
                consumerId = Console.ReadLine();

                Logger.Log("Enter a broker ID (if random leave empty):", true);
                var broker = Console.ReadLine();

                if (string.IsNullOrWhiteSpace(broker))
                {
                    brokerId += GetRandomBroker();
                }
                else
                {
                    brokerId += broker;
                }
                Logger.Log($"Broker ID: {brokerId}", true);
            }
            else
            {
                consumerId = args[0];
                Logger.Log($"Consumer ID: {consumerId}", true);

                if (args.Length == 1)
                {
                    brokerId += GetRandomBroker();
                }
                else
                {
                    brokerId += args[1];
                }
                Logger.Log($"Broker ID: {brokerId}", true);
            }
            var publicationsQueueName = $"C{consumerId}";


            Subscriptions sub = new Subscriptions(brokerId, consumerId);

            var    subFeedThreadReference = new ThreadStart(sub.SendSubscriptions);
            Thread subFeedThread          = new Thread(subFeedThreadReference);

            subFeedThread.Start();


            using (var connection = factory.CreateConnection())
            {
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare(queue: publicationsQueueName,
                                         durable: true,
                                         exclusive: false,
                                         autoDelete: false,
                                         arguments: null);
                    channel.BasicQos(prefetchSize: 0, prefetchCount: 1, global: false);

                    var consumer = new EventingBasicConsumer(channel);
                    consumer.Received += ConsumePublications;
                    channel.BasicConsume(queue: publicationsQueueName,
                                         autoAck: true,
                                         consumer: consumer);
                    Logger.Log("Awaiting Messages...", true);

                    Console.ReadLine();
                    consumer.Received -= ConsumePublications;
                    Logger.Log("Writing to file latency results...");

                    CSVFileWriter f = new CSVFileWriter(consumerId, latency: Latencies);
                    f.WriteAllLatenciesInCSV();
                    Logger.Log("Finishd...");
                }
            }
        }