diff --git a/src/main/java/io/takima/Yatzy.java b/src/main/java/io/takima/Yatzy.java
index c8a684ffdd3818525cf52b8923416c2a5aa6bcd0..14fd3a4e78a8d17b530ee7458bd1b00eed3b7099 100644
--- a/src/main/java/io/takima/Yatzy.java
+++ b/src/main/java/io/takima/Yatzy.java
@@ -19,25 +19,8 @@ public final class Yatzy {
         return 0;
     }
 
-    public static int ones(int d1, int d2, int d3, int d4, int d5) {
-        int sum = 0;
-        if (d1 == 1) {
-            sum++;
-        }
-        if (d2 == 1) {
-            sum++;
-        }
-        if (d3 == 1) {
-            sum++;
-        }
-        if (d4 == 1) {
-            sum++;
-        }
-        if (d5 == 1) {
-            sum++;
-        }
-
-        return sum;
+    public static int ones(Roll roll) {
+        return roll.toStream().filter(i -> i == 1).sum();
     }
 
     public static int twos(int d1, int d2, int d3, int d4, int d5) {
diff --git a/src/test/java/io/takima/YatzyTest.java b/src/test/java/io/takima/YatzyTest.java
index 689ffbbf4674e7f0da186e62934bee9fd7417880..7f687951c832245fba864abd60bd3af2f009c112 100644
--- a/src/test/java/io/takima/YatzyTest.java
+++ b/src/test/java/io/takima/YatzyTest.java
@@ -31,10 +31,10 @@ class YatzyTest {
     @Test
     void onesShouldSumAllOneDices() {
         assertAll(
-            () -> assertEquals(1, Yatzy.ones(1, 2, 3, 4, 5)),
-            () -> assertEquals(2, Yatzy.ones(1, 2, 1, 4, 5)),
-            () -> assertEquals(0, Yatzy.ones(6, 2, 2, 4, 5)),
-            () -> assertEquals(4, Yatzy.ones(1, 2, 1, 1, 1))
+            () -> assertEquals(1, Yatzy.ones(roll(1, 2, 3, 4, 5))),
+            () -> assertEquals(2, Yatzy.ones(roll(1, 2, 1, 4, 5))),
+            () -> assertEquals(0, Yatzy.ones(roll(6, 2, 2, 4, 5))),
+            () -> assertEquals(4, Yatzy.ones(roll(1, 2, 1, 1, 1)))
         );
     }