diff --git a/firanka/builders.py b/firanka/builders.py
index dea2b20175bb89b5bf3e31aefe8c622749f8d7aa..84ac31bf12973799d18a10c17609fa0b29c43d38 100644
--- a/firanka/builders.py
+++ b/firanka/builders.py
@@ -43,7 +43,7 @@ class DiscreteSeriesBuilder(object):
         for k, v in self.series.data:
             if k in cp_new_data:
                 v = cp_new_data.pop(k)
-            new_data.append((k, v))
+            new_data.add((k, v))
 
         # Add those that remained
         for k, v in cp_new_data.items():
diff --git a/firanka/series/bundle.py b/firanka/series/bundle.py
index d73920c8d5fb512720eb52138848913932d7cbeb..999d358f19c63986b4a06cc667772d62ca21fed0 100644
--- a/firanka/series/bundle.py
+++ b/firanka/series/bundle.py
@@ -19,7 +19,7 @@ class SeriesBundle(Series):
                                   (p.domain for p in series),
                                   REAL_SET)
 
-        super(SeriesBundle, self).__init__(domain)
+        super().__init__(domain)
 
         self.series = series
 
@@ -32,7 +32,7 @@ class DiscreteSeriesBundle(SeriesBundle):
         """
         :raise TypeError: if not all series are discrete
         """
-        super(DiscreteSeriesBundle, self).__init__(*series)
+        super().__init__(*series)
 
         if any((not isinstance(s, DiscreteSeries)) for s in series):
             raise TypeError('All series must be discrete')
@@ -57,6 +57,6 @@ class DiscreteSeriesBundle(SeriesBundle):
             if len(data) > 0 and data[-1][1] == v:
                 continue
             else:
-                data.append((k, v))
+                data.add((k, v))
 
         return DiscreteSeries([(k, self._get_for(k)) for k in keys], self.domain)