diff --git a/src/main/java/org/apache/cassandra/distributed/shared/AbstractBuilder.java b/src/main/java/org/apache/cassandra/distributed/shared/AbstractBuilder.java
index cc341a3..d601cda 100644
--- a/src/main/java/org/apache/cassandra/distributed/shared/AbstractBuilder.java
+++ b/src/main/java/org/apache/cassandra/distributed/shared/AbstractBuilder.java
@@ -29,6 +29,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
+import java.util.function.BiConsumer;
 import java.util.function.Consumer;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
@@ -52,6 +53,7 @@
     private Consumer<IInstanceConfig> configUpdater;
     private ClassLoader sharedClassLoader = Thread.currentThread().getContextClassLoader();
     private int broadcastPort = 7012;
+    private BiConsumer<ClassLoader, Integer> instanceInitializer = (cl, id) -> {};
 
     public AbstractBuilder(Factory<I, C, B> factory)
     {
@@ -94,6 +96,11 @@
         return broadcastPort;
     }
 
+    public BiConsumer<ClassLoader, Integer> getInstanceInitializer()
+    {
+        return instanceInitializer;
+    }
+
     public C start() throws IOException
     {
         C cluster = createWithoutStarting();
@@ -255,6 +262,12 @@
         return (B) this;
     }
 
+    public B withInstanceInitializer(BiConsumer<ClassLoader, Integer> instanceInitializer)
+    {
+        this.instanceInitializer = instanceInitializer;
+        return (B) this;
+    }
+
     static String dcName(int index)
     {
         return "datacenter" + index;
