diff --git a/cpp/CgalLabelledImage.cpp b/cpp/CgalLabelledImage.cpp
index aa7dd2b9a7daea57fe6d5dc7ed670b49bd482bf4..ed754bac786d5353dbf01dd049109c36f9425392 100644
--- a/cpp/CgalLabelledImage.cpp
+++ b/cpp/CgalLabelledImage.cpp
@@ -3,7 +3,7 @@
 #include "CgalLabelledImage.h"
 
 
-int buildCgalImage(Eigen::Array<unsigned short, Eigen::Dynamic, 1> image_array, Eigen::Array<int, 3, 1> shape, Eigen::Array<double, 3, 1> voxelsize)
+CGAL::Image_3 buildCgalImage(Eigen::Array<unsigned short, Eigen::Dynamic, 1> image_array, Eigen::Array<int, 3, 1> shape, Eigen::Array<double, 3, 1> voxelsize)
 {
     _image* image = _createImage(
         shape(0), shape(1), shape(2), 1,
@@ -20,7 +20,6 @@ int buildCgalImage(Eigen::Array<unsigned short, Eigen::Dynamic, 1> image_array,
             }
         }
     }
-    CGAL::Image_3 cgal_image(image);
 
-    return 0;
+    return CGAL::Image_3(image);
 }
diff --git a/cpp/CgalLabelledImage.h b/cpp/CgalLabelledImage.h
index 8a8200dc56443c483b1dce1ae348dacc68ac20ca..ba288125b6cc28bddac3b9ca0f3637b9de98f7d6 100644
--- a/cpp/CgalLabelledImage.h
+++ b/cpp/CgalLabelledImage.h
@@ -5,4 +5,4 @@
 #include <Eigen/Dense>
 
 
-int buildCgalImage(Eigen::Array<unsigned short, Eigen::Dynamic, 1> image_array, Eigen::Array<int, 3, 1> shape, Eigen::Array<double, 3, 1> voxelsize={1.0, 1.0, 1.0});
\ No newline at end of file
+CGAL::Image_3 buildCgalImage(Eigen::Array<unsigned short, Eigen::Dynamic, 1> image_array, Eigen::Array<int, 3, 1> shape, Eigen::Array<double, 3, 1> voxelsize={1.0, 1.0, 1.0});
\ No newline at end of file
diff --git a/wrp/LabelledTetrahedralMeshWrapper.cpp b/wrp/LabelledTetrahedralMeshWrapper.cpp
index 6c9a1a6cf949c889e0319a3a0ff4ffcc35b4b6a3..744befaa7970b07c328b7915dc0e43d36e27d1f4 100644
--- a/wrp/LabelledTetrahedralMeshWrapper.cpp
+++ b/wrp/LabelledTetrahedralMeshWrapper.cpp
@@ -7,6 +7,16 @@
 
 namespace py = pybind11;
 
+
+int cgalLabelledImage(Eigen::Array<unsigned short, Eigen::Dynamic, 1> image_array, Eigen::Array<int, 3, 1> shape, Eigen::Array<double, 3, 1> voxelsize)
+{
+    CGAL::Image_3 image = buildCgalImage(image_array, shape, voxelsize);
+    if ((image.xdim() != shape(0)) || (image.ydim() != shape(1)) || (image.zdim() != shape(2))) {
+        return EXIT_FAILURE;
+    }
+    return 0;
+}
+
 PYBIND11_MODULE(_wrp, m) {
     py::class_<LabelledTetrahedralMesh>(m, "LabelledTetrahedralMesh")
         .def(py::init<>())
@@ -18,5 +28,5 @@ PYBIND11_MODULE(_wrp, m) {
 
     m.def("make_tetrahedron", &makeTetrahedron);
 
-    m.def("build_cgal_image", &buildCgalImage, py::arg("image_array"), py::arg("shape"), py::arg("voxelsize"));
+    m.def("build_cgal_image", &cgalLabelledImage, py::arg("image_array"), py::arg("shape"), py::arg("voxelsize"));
 }
\ No newline at end of file