public void Add(string input) { var baseNumber = Convert.ToInt32(input, 2); var root = baseNumber; var numberGenerator = new NumberGenerator(input); foreach (var num in numberGenerator) { if (unionFind.Contains(num)) { var newRoot = unionFind.Find(num); unionFind.Union(newRoot, root); root = newRoot; } else { unionFind.AddElement(num, root); } } }