public string RegisterHarvester(List <string> arguments) { Harvester harvester; var type = arguments[0]; var id = arguments[1]; var oreOutput = double.Parse(arguments[2]); var energyRequirement = double.Parse(arguments[3]); if (CheckIdUniqueness("harvester", id)) { if (type == "Sonic") { var sonicFactor = int.Parse(arguments[4]); try { harvester = HarvesterFactory.CreateSonic(id, oreOutput, energyRequirement, sonicFactor); } catch (Exception e) { return(e.Message); } } else { try { harvester = HarvesterFactory.CreateHammer(id, oreOutput, energyRequirement); } catch (Exception e) { return(e.Message); } } Harvesters.Add(harvester); return($"Successfully registered {type} Harvester - {id}"); } return("Harvester is not registered, because of it's id"); }