diff --git a/py/obj.h b/py/obj.h
index 356e722..6e57966 100644
--- a/py/obj.h
+++ b/py/obj.h
@@ -454,6 +454,8 @@
 mp_obj_t mp_obj_tuple_make_new(mp_obj_t type_in, uint n_args, uint n_kw, const mp_obj_t *args);
 
 // list
+struct _mp_obj_list_t;
+void mp_obj_list_init(struct _mp_obj_list_t *o, uint n);
 mp_obj_t mp_obj_list_append(mp_obj_t self_in, mp_obj_t arg);
 void mp_obj_list_get(mp_obj_t self_in, uint *len, mp_obj_t **items);
 void mp_obj_list_set_len(mp_obj_t self_in, uint len);
diff --git a/py/objlist.c b/py/objlist.c
index 531e4b8..538cba7 100644
--- a/py/objlist.c
+++ b/py/objlist.c
@@ -8,13 +8,7 @@
 #include "obj.h"
 #include "runtime0.h"
 #include "runtime.h"
-
-typedef struct _mp_obj_list_t {
-    mp_obj_base_t base;
-    machine_uint_t alloc;
-    machine_uint_t len;
-    mp_obj_t *items;
-} mp_obj_list_t;
+#include "objlist.h"
 
 STATIC mp_obj_t mp_obj_new_list_iterator(mp_obj_list_t *list, int cur);
 STATIC mp_obj_list_t *list_new(uint n);
@@ -363,12 +357,16 @@
     .locals_dict = (mp_obj_t)&list_locals_dict,
 };
 
-STATIC mp_obj_list_t *list_new(uint n) {
-    mp_obj_list_t *o = m_new_obj(mp_obj_list_t);
+void mp_obj_list_init(mp_obj_list_t *o, uint n) {
     o->base.type = &mp_type_list;
     o->alloc = n < LIST_MIN_ALLOC ? LIST_MIN_ALLOC : n;
     o->len = n;
     o->items = m_new(mp_obj_t, o->alloc);
+}
+
+STATIC mp_obj_list_t *list_new(uint n) {
+    mp_obj_list_t *o = m_new_obj(mp_obj_list_t);
+    mp_obj_list_init(o, n);
     return o;
 }
 
diff --git a/py/objlist.h b/py/objlist.h
new file mode 100644
index 0000000..cc8d7de
--- /dev/null
+++ b/py/objlist.h
@@ -0,0 +1,6 @@
+typedef struct _mp_obj_list_t {
+    mp_obj_base_t base;
+    machine_uint_t alloc;
+    machine_uint_t len;
+    mp_obj_t *items;
+} mp_obj_list_t;
