diff --git a/pythonbindings/src/gpu/submodules/grid_generator.cpp b/pythonbindings/src/gpu/submodules/grid_generator.cpp
index 041414acd4002da36e5ce74ac5b4ea77f909d95f..a10b48cc7b7048c1522a783542dadf66010c84b3 100644
--- a/pythonbindings/src/gpu/submodules/grid_generator.cpp
+++ b/pythonbindings/src/gpu/submodules/grid_generator.cpp
@@ -30,7 +30,7 @@ namespace grid_generator
         py::class_<GridFactory, std::shared_ptr<GridFactory>>(gridGeneratorModule, "GridFactory")
         .def_static("make", &GridFactory::make, py::return_value_policy::reference);
 
-        py::class_<BoundingBox>(gridGeneratorModule, "BoundingBox")
+        py::class_<BoundingBox, std::shared_ptr<BoundingBox>>(gridGeneratorModule, "BoundingBox")
         .def(py::init<real, real, real, real, real, real>(), py::arg("min_x"), py::arg("max_x"), py::arg("min_y"), py::arg("max_y"), py::arg("min_z"), py::arg("max_z"));
 
         py::class_<Object, std::shared_ptr<Object>>(gridGeneratorModule, "Object");
@@ -71,9 +71,10 @@ namespace grid_generator
         .def("add_geometry", py::overload_cast<Object*, uint>(&MultipleGridBuilder::addGeometry), py::arg("solid_object"), py::arg("level"))
         .def("get_number_of_levels", &MultipleGridBuilder::getNumberOfLevels)
         .def("build_grids", &MultipleGridBuilder::buildGrids, py::arg("lbm_or_gks"), py::arg("enable_thin_walls"))
-        .def("set_subdomain_box", &MultipleGridBuilder::setSubDomainBox)
+        .def("set_subdomain_box", &MultipleGridBuilder::setSubDomainBox, py::arg("bounding_box"))
         .def("find_communication_indices", &MultipleGridBuilder::findCommunicationIndices)
-        .def("set_communication_process", &MultipleGridBuilder::setCommunicationProcess);
+        .def("set_communication_process", &MultipleGridBuilder::setCommunicationProcess)
+        .def("set_number_of_layers", &MultipleGridBuilder::setNumberOfLayers, py::arg("number_of_layers_fine"), py::arg("number_of_layers_between_levels"));
 
         return gridGeneratorModule;
     }