public string RegisterHarvester(List <string> arguments)
    {
        switch (arguments[0])
        {
        case "Sonic":
            //this.harvesters.Add(arguments[1], new SonicHarvester(arguments[1], double.Parse(arguments[2]), double.Parse(arguments[3]), int.Parse(arguments[4])));
            this.harvesters.Add(arguments[1], HarvesterFactory.MakeSonicHarvester(arguments[1], double.Parse(arguments[2]), double.Parse(arguments[3]), int.Parse(arguments[4])));
            break;

        case "Hammer":
            //this.harvesters.Add(arguments[1], new HammerHarvester(arguments[1], double.Parse(arguments[2]), double.Parse(arguments[3])));
            this.harvesters.Add(arguments[1], HarvesterFactory.MakeHammerHarverster(arguments[1], double.Parse(arguments[2]), double.Parse(arguments[3])));
            break;
        }

        return($"Successfully registered {arguments[0]} Harvester - {arguments[1]}");
    }
    private Harvester MakeHarvester(List <string> arguments)
    {
        Harvester harvester         = null;
        string    type              = arguments[0];
        string    id                = arguments[1];
        double    oreOutput         = double.Parse(arguments[2]);
        double    energyRequirement = double.Parse(arguments[3]);

        if (type == "Hammer")
        {
            harvester = HarvesterFactory.MakeHammerHarvester(id, oreOutput, energyRequirement);
        }
        else
        {
            int sonicFactor = int.Parse(arguments[4]);
            harvester = HarvesterFactory.MakeSonicHarvester(id, oreOutput, energyRequirement, sonicFactor);
        }
        return(harvester);
    }