Tests are using new wireup behavior.
diff --git a/benchmark-disruptor/writer_await_test.go b/benchmark-disruptor/writer_await_test.go
index 81f453e..f782ac1 100644
--- a/benchmark-disruptor/writer_await_test.go
+++ b/benchmark-disruptor/writer_await_test.go
@@ -8,16 +8,19 @@
 
 func BenchmarkWriterAwaitOne(b *testing.B) {
 	ringBuffer := [RingBufferSize]int64{}
-	written, read := disruptor.NewCursor(), disruptor.NewCursor()
-	reader := disruptor.NewReader(read, written, written, SampleConsumer{&ringBuffer})
-	writer := disruptor.NewWriter(written, read, RingBufferSize)
-	reader.Start()
+	controller := disruptor.
+		Configure(RingBufferSize).
+		WithConsumerGroup(SampleConsumer{&ringBuffer}).
+		Build()
+	controller.Start()
+	writer := controller.Writer()
 
 	iterations := int64(b.N)
+	sequence := disruptor.InitialSequenceValue
+
 	b.ReportAllocs()
 	b.ResetTimer()
 
-	sequence := disruptor.InitialSequenceValue
 	for sequence < iterations {
 		sequence += ReserveOne
 		writer.Await(sequence)
@@ -25,20 +28,24 @@
 		writer.Commit(sequence, sequence)
 	}
 
-	reader.Stop()
+	b.StopTimer()
+	controller.Stop()
 }
 func BenchmarkWriterAwaitMany(b *testing.B) {
 	ringBuffer := [RingBufferSize]int64{}
-	written, read := disruptor.NewCursor(), disruptor.NewCursor()
-	reader := disruptor.NewReader(read, written, written, SampleConsumer{&ringBuffer})
-	writer := disruptor.NewWriter(written, read, RingBufferSize)
-	reader.Start()
+	controller := disruptor.
+		Configure(RingBufferSize).
+		WithConsumerGroup(SampleConsumer{&ringBuffer}).
+		Build()
+	controller.Start()
+	writer := controller.Writer()
 
 	iterations := int64(b.N)
+	sequence := disruptor.InitialSequenceValue
+
 	b.ReportAllocs()
 	b.ResetTimer()
 
-	sequence := disruptor.InitialSequenceValue
 	for sequence < iterations {
 		sequence += ReserveMany
 		writer.Await(sequence)
@@ -50,5 +57,6 @@
 		writer.Commit(sequence, sequence)
 	}
 
-	reader.Stop()
+	b.StopTimer()
+	controller.Stop()
 }
diff --git a/benchmark-disruptor/writer_reservation_multiple_readers_test.go b/benchmark-disruptor/writer_reservation_multiple_readers_test.go
index 2bd8775..27c97d0 100644
--- a/benchmark-disruptor/writer_reservation_multiple_readers_test.go
+++ b/benchmark-disruptor/writer_reservation_multiple_readers_test.go
@@ -8,45 +8,43 @@
 
 func BenchmarkWriterReserveOneMultipleReaders(b *testing.B) {
 	ringBuffer := [RingBufferSize]int64{}
-	written, read1, read2 := disruptor.NewCursor(), disruptor.NewCursor(), disruptor.NewCursor()
-	reader1 := disruptor.NewReader(read1, written, written, SampleConsumer{&ringBuffer})
-	reader2 := disruptor.NewReader(read2, written, written, SampleConsumer{&ringBuffer})
-	barrier := disruptor.NewCompositeBarrier(read1, read2)
-	writer := disruptor.NewWriter(written, barrier, RingBufferSize)
-
-	reader1.Start()
-	reader2.Start()
+	controller := disruptor.
+		Configure(RingBufferSize).
+		WithConsumerGroup(SampleConsumer{&ringBuffer}, SampleConsumer{&ringBuffer}).
+		Build()
+	controller.Start()
+	writer := controller.Writer()
 
 	iterations := int64(b.N)
+	sequence := disruptor.InitialSequenceValue
+
 	b.ReportAllocs()
 	b.ResetTimer()
 
-	sequence := disruptor.InitialSequenceValue
 	for sequence < iterations {
 		sequence = writer.Reserve(ReserveOne)
 		ringBuffer[sequence&RingBufferMask] = sequence
 		writer.Commit(sequence, sequence)
 	}
 
-	reader1.Stop()
-	reader2.Stop()
+	b.StopTimer()
+	controller.Stop()
 }
 func BenchmarkWriterReserveManyMultipleReaders(b *testing.B) {
 	ringBuffer := [RingBufferSize]int64{}
-	written, read1, read2 := disruptor.NewCursor(), disruptor.NewCursor(), disruptor.NewCursor()
-	reader1 := disruptor.NewReader(read1, written, written, SampleConsumer{&ringBuffer})
-	reader2 := disruptor.NewReader(read2, written, written, SampleConsumer{&ringBuffer})
-	barrier := disruptor.NewCompositeBarrier(read1, read2)
-	writer := disruptor.NewWriter(written, barrier, RingBufferSize)
-
-	reader1.Start()
-	reader2.Start()
+	controller := disruptor.
+		Configure(RingBufferSize).
+		WithConsumerGroup(SampleConsumer{&ringBuffer}, SampleConsumer{&ringBuffer}).
+		Build()
+	controller.Start()
+	writer := controller.Writer()
 
 	iterations := int64(b.N)
+	sequence := disruptor.InitialSequenceValue
+
 	b.ReportAllocs()
 	b.ResetTimer()
 
-	sequence := disruptor.InitialSequenceValue
 	for sequence < iterations {
 		sequence = writer.Reserve(ReserveMany)
 
@@ -57,6 +55,6 @@
 		writer.Commit(sequence, sequence)
 	}
 
-	reader1.Stop()
-	reader2.Stop()
+	b.StopTimer()
+	controller.Stop()
 }
diff --git a/benchmark-disruptor/writer_reservation_test.go b/benchmark-disruptor/writer_reservation_test.go
index 4be4238..98745e7 100644
--- a/benchmark-disruptor/writer_reservation_test.go
+++ b/benchmark-disruptor/writer_reservation_test.go
@@ -8,36 +8,43 @@
 
 func BenchmarkWriterReserveOne(b *testing.B) {
 	ringBuffer := [RingBufferSize]int64{}
-	written, read := disruptor.NewCursor(), disruptor.NewCursor()
-	reader := disruptor.NewReader(read, written, written, SampleConsumer{&ringBuffer})
-	writer := disruptor.NewWriter(written, read, RingBufferSize)
-	reader.Start()
+	controller := disruptor.
+		Configure(RingBufferSize).
+		WithConsumerGroup(SampleConsumer{&ringBuffer}).
+		Build()
+	controller.Start()
+	writer := controller.Writer()
 
 	iterations := int64(b.N)
+	sequence := disruptor.InitialSequenceValue
+
 	b.ReportAllocs()
 	b.ResetTimer()
 
-	sequence := disruptor.InitialSequenceValue
 	for sequence < iterations {
 		sequence = writer.Reserve(ReserveOne)
 		ringBuffer[sequence&RingBufferMask] = sequence
 		writer.Commit(sequence, sequence)
 	}
 
-	reader.Stop()
+	b.StopTimer()
+	controller.Stop()
 }
 func BenchmarkWriterReserveMany(b *testing.B) {
 	ringBuffer := [RingBufferSize]int64{}
-	written, read := disruptor.NewCursor(), disruptor.NewCursor()
-	reader := disruptor.NewReader(read, written, written, SampleConsumer{&ringBuffer})
-	writer := disruptor.NewWriter(written, read, RingBufferSize)
-	reader.Start()
+	controller := disruptor.
+		Configure(RingBufferSize).
+		WithConsumerGroup(SampleConsumer{&ringBuffer}).
+		Build()
+	controller.Start()
+	writer := controller.Writer()
 
 	iterations := int64(b.N)
+	sequence := disruptor.InitialSequenceValue
+
 	b.ReportAllocs()
 	b.ResetTimer()
 
-	sequence := disruptor.InitialSequenceValue
 	for sequence < iterations {
 		sequence = writer.Reserve(ReserveMany)
 
@@ -48,5 +55,6 @@
 		writer.Commit(sequence, sequence)
 	}
 
-	reader.Stop()
+	b.StopTimer()
+	controller.Stop()
 }