Separated benchmarks for CompositeBarrier.
diff --git a/barrier.go b/barrier.go
index 5810851..d3f442f 100644
--- a/barrier.go
+++ b/barrier.go
@@ -10,6 +10,6 @@
 	} else if len(upstream) == 1 {
 		return upstream[0]
 	} else {
-		return NewCompositeBarrier(upstream)
+		return NewCompositeBarrier(upstream...)
 	}
 }
diff --git a/barrier_test.go b/barrier_test.go
index 7ecfd8a..e17d31a 100644
--- a/barrier_test.go
+++ b/barrier_test.go
@@ -13,15 +13,3 @@
 		barrier.Load()
 	}
 }
-
-func BenchmarkBarrierLoadMultiple(b *testing.B) {
-	barrier := NewBarrier(NewCursor(), NewCursor(), NewCursor(), NewCursor())
-
-	iterations := int64(b.N)
-	b.ReportAllocs()
-	b.ResetTimer()
-
-	for i := int64(0); i < iterations; i++ {
-		barrier.Load()
-	}
-}
diff --git a/composite_barrier.go b/composite_barrier.go
index 67baf10..ef863f6 100644
--- a/composite_barrier.go
+++ b/composite_barrier.go
@@ -4,7 +4,7 @@
 	cursors []*Cursor
 }
 
-func NewCompositeBarrier(upstream []*Cursor) *CompositeBarrier {
+func NewCompositeBarrier(upstream ...*Cursor) *CompositeBarrier {
 	cursors := make([]*Cursor, len(upstream))
 	copy(cursors, upstream)
 	return &CompositeBarrier{cursors}
@@ -14,9 +14,9 @@
 	minimum := MaxSequenceValue
 
 	for _, item := range this.cursors {
-		cursor := item.Load()
-		if cursor < minimum {
-			minimum = cursor
+		sequence := item.Load()
+		if sequence < minimum {
+			minimum = sequence
 		}
 	}
 
diff --git a/composite_barrier_test.go b/composite_barrier_test.go
new file mode 100644
index 0000000..3975ec9
--- /dev/null
+++ b/composite_barrier_test.go
@@ -0,0 +1,15 @@
+package disruptor
+
+import "testing"
+
+func BenchmarkCompositeBarrierLoad(b *testing.B) {
+	barrier := NewCompositeBarrier(NewCursor(), NewCursor(), NewCursor(), NewCursor())
+
+	iterations := int64(b.N)
+	b.ReportAllocs()
+	b.ResetTimer()
+
+	for i := int64(0); i < iterations; i++ {
+		barrier.Load()
+	}
+}