Use from_array instead of positional versions
diff --git a/c_src/decoder.c b/c_src/decoder.c
index a111ea4..8f78117 100644
--- a/c_src/decoder.c
+++ b/c_src/decoder.c
@@ -765,14 +765,7 @@
             return enif_make_tuple2(
                     env,
                     st->atom_iter,
-                    enif_make_tuple5(
-                            env,
-                            tmp_argv[0],
-                            tmp_argv[1],
-                            tmp_argv[2],
-                            tmp_argv[3],
-                            tmp_argv[4]
-                        )
+                    enif_make_tuple_from_array(env, tmp_argv, 5)
                 );
 #endif
         }
diff --git a/c_src/encoder.c b/c_src/encoder.c
index d8e774d..c4ab864 100644
--- a/c_src/encoder.c
+++ b/c_src/encoder.c
@@ -754,12 +754,7 @@
             return enif_make_tuple2(
                     env,
                     st->atom_iter,
-                    enif_make_tuple3(
-                            env,
-                            tmp_argv[0],
-                            tmp_argv[1],
-                            tmp_argv[2]
-                        )
+                    enif_make_tuple_from_array(env, tmp_argv, 3)
                 );
 #endif
         }