public string RegisterHarvester(List <string> arguments) { try { var type = arguments[0]; var id = arguments[1]; var oreOutput = double.Parse(arguments[2]); var energyRequirement = double.Parse(arguments[3]); if (type == "Sonic") { //factory that return harvester var sonicHarvesterFactory = new HarvesterFactory(); var sonicFactor = int.Parse(arguments[4]); var sonicHarvester = sonicHarvesterFactory.GenerateSonicHarvester(id, oreOutput, energyRequirement, sonicFactor); //add to list harvesters.Add(sonicHarvester); return($"Successfully registered Sonic Harvester - {sonicHarvester.Id}"); } // if type == Hammer var hammerHarvesterFactory = new HarvesterFactory(); var hammerHarvester = hammerHarvesterFactory.GenerateHammerHarvester(id, oreOutput, energyRequirement); //add to list harvesters.Add(hammerHarvester); return($"Successfully registered Hammer Harvester - {hammerHarvester.Id}"); } catch (Exception e) { return($"Harvester is not registered, because of it's {e.Message}"); } }