diff --git a/OBIA/OBIABase.py b/OBIA/OBIABase.py
index 276b359a324cd55fea00188cc699068716dc314b..1680405b79602fa87d8d1a28560f5ddc424f9335 100644
--- a/OBIA/OBIABase.py
+++ b/OBIA/OBIABase.py
@@ -46,6 +46,7 @@ class OBIABase:
         self.raster_stats = []
         self.raster_var_names = []
         self.raster_groups = []
+        self.n_vars = 0
 
     def init_ref_db(self, vector_file, id_field, class_field):
         ras_id = otb.Registry.CreateApplication('Rasterization')
@@ -161,8 +162,9 @@ class OBIABase:
         ds = None
         to_append = [raster_name + '_{}_{}'.format(i+1,j.value) for i in range(n_bands) for j in stats]
         if as_group:
-            self.raster_groups.extend(range(len(self.raster_var_names), len(self.raster_var_names)+len(to_append)))
+            self.raster_groups.extend(range(self.n_vars, self.n_vars+len(to_append)))
         self.raster_var_names.append(to_append)
+        self.n_vars += len(to_append)
         return
 
     def add_raster_time_series_for_stats(self, raster_list, ts_name=None, stats=[OStats.MEAN]):
@@ -174,7 +176,7 @@ class OBIABase:
         assert all(x == n_bands[0] for x in n_bands)
         n_bands = n_bands[0]
 
-        pos = len(self.raster_var_names)
+        pos = self.n_vars
         for i,r in enumerate(raster_list):
             if ts_name is not None:
                 raster_name = '{}_D{}'.format(ts_name,i)
@@ -224,7 +226,6 @@ class OBIABase:
         for g in self.raster_groups:
             tmp = X[:,g]
             m,M = np.percentile(tmp, [2, 98])
-            print("For g = {}, m = {}, M = {}".format(g,m,M))
             if isinstance(g, list):
                 for x in g:
                     p2[x] = m
@@ -236,3 +237,16 @@ class OBIABase:
         Y = self.ref_db['class'].to_numpy(dtype=int)
         G = self.ref_db['polygon_id'].to_numpy(dtype=int)
         return X,Y,G,p2,p98
+
+    def tiled_data(self, normalize=None):
+        vars = [item for sublist in self.raster_var_names for item in sublist]
+        for tilenum in self.tiles.keys():
+            tile_data = self.get_full_stats_on_tile(tilenum)
+            L = tile_data.index.to_numpy(dtype=np.int)
+            X = tile_data[vars].to_numpy()
+            if normalize is not None:
+                X = (X - normalize[0]) / (normalize[1] - normalize[0])
+            yield L,X
+
+    def populate_map(self, tilenum, labels):
+        return
\ No newline at end of file