diff --git a/Project.toml b/Project.toml
index 2bcb091f173afbe6bb84e36809eb49e26e976b47..c4ee45ae3d0a23810d5eb51e60160447c54b00ff 100644
--- a/Project.toml
+++ b/Project.toml
@@ -1,7 +1,7 @@
 name = "KM3io"
 uuid = "2cab5852-6f21-4982-99b0-6a4792870cfb"
 authors = ["Tamas Gal", "Johannes Schumann"]
-version = "0.16.1"
+version = "0.16.2"
 
 [deps]
 Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
diff --git a/src/KM3io.jl b/src/KM3io.jl
index 611f4321c8ac5bd80cb1ca89e11afcf54bfee2cb..75df8d56f9287e45870109ec9961c1822fc31b16 100644
--- a/src/KM3io.jl
+++ b/src/KM3io.jl
@@ -56,6 +56,8 @@ export most_frequent, categorize, nthbitset
 
 export cherenkov, CherenkovPhoton, azimuth, zenith, theta, phi
 
+export MCEventMatcher
+
 export CHClient, CHTag, subscribe, @ip_str
 
 @template (FUNCTIONS, METHODS, MACROS) =
@@ -100,6 +102,7 @@ include("tools/general.jl")
 include("tools/daq.jl")
 include("tools/trigger.jl")
 include("tools/reconstruction.jl")
+include("tools/helpers.jl")
 
 include("physics.jl")
 
diff --git a/src/tools/helpers.jl b/src/tools/helpers.jl
new file mode 100644
index 0000000000000000000000000000000000000000..cfaa44c798fd9c18e60c1ba1935c214619b66ee5
--- /dev/null
+++ b/src/tools/helpers.jl
@@ -0,0 +1,20 @@
+"""
+A basic container type to assist the matching of MC events in the offline tree
+with the events in the online tree.
+"""
+# TODO: add tests (need a proper testfile in km3net-testdata)
+struct MCEventMatcher
+    f::ROOTFile
+end
+Base.length(itr::MCEventMatcher) = length(itr.f.online.events)
+Base.lastindex(itr::MCEventMatcher) = length(itr)
+function Base.getindex(itr::MCEventMatcher, idx::Integer)
+    event = itr.f.online.events[idx]
+    mc_idx = event.header.trigger_counter + 1
+    mc_event = itr.f.offline[mc_idx]
+    (event, mc_event)
+end
+function Base.iterate(itr::MCEventMatcher, state=1)
+    state > length(itr) && return nothing
+    (itr[state], state + 1)
+end
diff --git a/test/tools.jl b/test/tools.jl
index 4a920e0f3e911236c82ef3fcacb18d104a0f8405..83507ed4438643a205b52c20d4bf62208fceeacf 100644
--- a/test/tools.jl
+++ b/test/tools.jl
@@ -307,3 +307,23 @@ end
 
     close(f)
 end
+
+
+@testset "helpers" begin
+    f = ROOTFile(datapath("mupage", "mcv8.1.mupage_tuned_100G.sirene.jterbr00013288.10.root"))
+    for (event, mc_event) in MCEventMatcher(f)
+        continue
+    end
+
+    rbr = MCEventMatcher(f)
+    event, mc_event = rbr[1]
+    @assert 756 == length(event.snapshot_hits)
+    @assert 28 == length(event.triggered_hits)
+    @assert 94 == length(mc_event.mc_hits)
+    @assert 2 == length(mc_event.mc_trks)
+    event, mc_event = rbr[end]
+    @assert 707 == length(event.snapshot_hits)
+    @assert 27== length(event.triggered_hits)
+    @assert 111 == length(mc_event.mc_hits)
+    @assert 4 == length(mc_event.mc_trks)
+end