diff --git a/Project.toml b/Project.toml
index ca5795b8266550c0da2ecf8b8ad7b94cfd6e39c7..4e0bb0e9f5476323953af24b838c431c1db4a4ed 100644
--- a/Project.toml
+++ b/Project.toml
@@ -1,7 +1,7 @@
 name = "PlanarLarvae"
 uuid = "c2615984-ef14-4d40-b148-916c85b43307"
 authors = ["François Laurent", "Institut Pasteur"]
-version = "0.14"
+version = "0.14a"
 
 [deps]
 DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab"
diff --git a/src/Dataloaders.jl b/src/Dataloaders.jl
index 8edcde7951e1667881d5d289a0900c342f012240..f4176686fa03cd4cf62c2aea0b11b29293ad1463 100644
--- a/src/Dataloaders.jl
+++ b/src/Dataloaders.jl
@@ -322,17 +322,19 @@ end
 
 abstract type RatioBasedSampling end
 
-struct ClassRatios <: RatioBasedSampling
+mutable struct ClassRatios <: RatioBasedSampling
     selectors
     majority_minority_ratio
     rng
+    seed
 end
 
-struct IntraClassRatios <: RatioBasedSampling
+mutable struct IntraClassRatios <: RatioBasedSampling
     selectors
     majority_minority_ratio
     intraclass
     rng
+    seed
 end
 
 function withselectors(sampler::T, selectors) where {T}
@@ -364,9 +366,9 @@ function ratiobasedsampling(selectors, majority_minority_ratio; seed=nothing, rn
         if isnothing(rng)
             rng = Random.default_rng()
         end
-        Random.seed!(rng, seed)
+        #Random.seed!(rng, seed)
     end
-    LazyIndex(ClassRatios(asselectors(selectors), majority_minority_ratio, rng))
+    LazyIndex(ClassRatios(asselectors(selectors), majority_minority_ratio, rng, seed))
 end
 
 function ratiobasedsampling(selectors, majority_minority_ratio, intraclass;
@@ -376,7 +378,7 @@ function ratiobasedsampling(selectors, majority_minority_ratio, intraclass;
         if isnothing(rng)
             rng = Random.default_rng()
         end
-        Random.seed!(rng, seed)
+        #Random.seed!(rng, seed)
     end
     intraclass = if intraclass isa Pair
         Dict(asselector(intraclass.first) => intraclass.second)
@@ -384,7 +386,7 @@ function ratiobasedsampling(selectors, majority_minority_ratio, intraclass;
         Dict(asselector(selector) => f for (selector, f) in intraclass)
     end
     LazyIndex(IntraClassRatios(asselectors(selectors), majority_minority_ratio, intraclass,
-                               rng))
+                               rng, seed))
 end
 
 function init!(_)
@@ -677,6 +679,7 @@ function sample(f, loader::DataLoader, features=:spine; kwargs...)
 end
 
 function sample(file::Formats.PreloadedFile, window, ix::LazyIndex, features; kwargs...)
+    ix.sampler.rng = Random.seed!(Random.default_rng(), ix.sampler.seed)
     sample(ix.sampler, file, window, ix.targetcounts[file], features; kwargs...)
 end