diff --git a/km3io/gseagen.py b/km3io/gseagen.py
index 29d8db7882e4507bb9108c3031a55f35c448e796..c89d43d507991ce6027c72661c04a4d02f40db0e 100644
--- a/km3io/gseagen.py
+++ b/km3io/gseagen.py
@@ -48,5 +48,6 @@ class GSGReader:
                                              exclude={},
                                              update={},
                                              attrparser=lambda x: x,
-                                             flat=True)
+                                             flat=True,
+                                             interpretations={})
         return Branch(self._fobj, gseagen_events_mapper)
diff --git a/km3io/offline.py b/km3io/offline.py
index 14043bc88432082b4e7dcf3dfe741ae71e617f96..3949d0dc40ebdfa0f567ed9597352806941123e3 100644
--- a/km3io/offline.py
+++ b/km3io/offline.py
@@ -31,7 +31,8 @@ EVENTS_MAP = BranchMapper(name="events",
                               'n_mc_tracks': 'mc_trks'
                           },
                           attrparser=lambda a: a,
-                          flat=True)
+                          flat=True,
+                          interpretations={})
 
 SUBBRANCH_MAPS = [
     BranchMapper(name="tracks",
@@ -41,7 +42,8 @@ SUBBRANCH_MAPS = [
                  ['trks.usr_data', 'trks.usr', 'trks.fUniqueID', 'trks.fBits'],
                  update={},
                  attrparser=_nested_mapper,
-                 flat=False),
+                 flat=False,
+                 interpretations={}),
     BranchMapper(name="mc_tracks",
                  key="mc_trks",
                  extra={},
@@ -51,7 +53,8 @@ SUBBRANCH_MAPS = [
                  ],
                  update={},
                  attrparser=_nested_mapper,
-                 flat=False),
+                 flat=False,
+                 interpretations={}),
     BranchMapper(name="hits",
                  key="hits",
                  extra={},
@@ -61,7 +64,8 @@ SUBBRANCH_MAPS = [
                  ],
                  update={},
                  attrparser=_nested_mapper,
-                 flat=False),
+                 flat=False,
+                 interpretations={}),
     BranchMapper(name="mc_hits",
                  key="mc_hits",
                  extra={},
@@ -72,7 +76,8 @@ SUBBRANCH_MAPS = [
                  ],
                  update={},
                  attrparser=_nested_mapper,
-                 flat=False),
+                 flat=False,
+                 interpretations={}),
 ]
 
 
diff --git a/km3io/tools.py b/km3io/tools.py
index e443357aa1ec72278b7e44bc9f14ccc4175d0728..7ad055351726cb647cf81f42d4fea7121da93e3b 100644
--- a/km3io/tools.py
+++ b/km3io/tools.py
@@ -36,7 +36,7 @@ def _unfold_indices(obj, indices):
 
 BranchMapper = namedtuple(
     "BranchMapper",
-    ['name', 'key', 'extra', 'exclude', 'update', 'attrparser', 'flat'])
+    ['name', 'key', 'extra', 'exclude', 'update', 'attrparser', 'flat', 'interpretations'])
 
 
 class Branch:
@@ -102,6 +102,7 @@ class Branch:
 
     def __getkey__(self, key):
         out = self._branch[self._keymap[key]].lazyarray(
+            interpretation=self._mapper.interpretations.get(key),
             basketcache=BASKET_CACHE)
         return _unfold_indices(out, self._index_chain)