public MachineController(UtilizationTable holder, MachineTable machineTable, ContainersType containerTypes)
        {
            MachineTable            = machineTable;
            ReadyMachineTable       = new MachineTable();
            PoweredOffMachinesTable = new MachineTable();

            ContainerTypes = containerTypes;
            DataHolder     = holder;
            Task t = new Task(async() =>
            {
                while (Started)
                {
                    var currentTotal = MachineTable.GetHostsCount();
                    var mcount       = Convert.ToInt32(currentTotal * 0.05);
                    var rcount       = ReadyMachineTable.GetHostsCount();
                    if (!StartingMachine)
                    {
                        if (mcount > rcount && PoweredOffMachinesTable.GetHostsCount() > 0)
                        {
                            await WakeIdleHost();
                        }
                        else if (mcount < rcount)
                        {
                            await PowerOffExtraMachines();
                        }
                    }
                    //else
                    //{

                    //}
                    await Task.Delay(Global.Second);
                }
            });

            t.Start();
        }