diff --git a/c_src/util.c b/c_src/util.c
index cbb5331..0ede4a2 100644
--- a/c_src/util.c
+++ b/c_src/util.c
@@ -52,6 +52,7 @@
     const ERL_NIF_TERM* tuple;
     int arity;
     int number_or_equal;
+    int add_offset;
 
     if(!enif_get_tuple(env, selector, &arity, &tuple)) {
         return 0;
@@ -65,7 +66,7 @@
         return 0;
     }
 
-    if(arity == 2) {
+    if(arity >= 2) {
         if(IS_ATOM(tuple[1], lt)) {
             *or_equal = 0;
             *offset = 0;
@@ -78,15 +79,11 @@
         } else if(IS_ATOM(tuple[1], gteq)) {
             *or_equal = 0;
             *offset = 1;
-        } else {
-            return 0;
-        }
-    } else if(arity == 3) {
-        if(IS_ATOM(tuple[1], true)) {
+        } else if(IS_ATOM(tuple[1], true)) {
             *or_equal = 1;
         } else if(IS_ATOM(tuple[1], false)) {
             *or_equal = 0;
-        } if(enif_get_int(env, tuple[1], &number_or_equal)) {
+        } else if(enif_get_int(env, tuple[1], &number_or_equal)) {
             if(number_or_equal) {
                 *or_equal = 1;
             } else {
@@ -95,16 +92,23 @@
         } else {
             return 0;
         }
-
-        if(!enif_get_int(env, tuple[2], offset)) {
-            return 0;
-        }
-    } else {
-        // Technically this is dead code, but keeping
-        // it here in case the arity conditional earlier
-        // in this function is ever changed.
-        return 0;
     }
 
-    return 1;
+    if(arity == 2) {
+        return 1;
+    }
+
+    if(arity == 3) {
+        if(!enif_get_int(env, tuple[2], &add_offset)) {
+            return 0;
+        }
+
+        *offset += add_offset;
+        return 1;
+    }
+
+    // Technically this is dead code, but keeping
+    // it here in case the arity conditional earlier
+    // in this function is ever changed.
+    return 0;
 }
\ No newline at end of file
