diff --git a/dune/fufem/CMakeLists.txt b/dune/fufem/CMakeLists.txt
index 1b1f16f1bcc2b9040aa200dd702eb420d90fe8d2..85d4421d25893f1c270c6d0d4dbf3356da38fe31 100644
--- a/dune/fufem/CMakeLists.txt
+++ b/dune/fufem/CMakeLists.txt
@@ -1,5 +1,7 @@
 add_subdirectory(assemblers)
 add_subdirectory(estimators)
+add_subdirectory(geometry)
+add_subdirectory(grid)
 add_subdirectory(functions)
 add_subdirectory(functionspacebases)
 add_subdirectory(functiontools)
@@ -22,7 +24,6 @@ install(FILES
     boundingbox.hh
     box.hh
     concept.hh
-    convexpolyhedron.hh
     dataio.hh
     dgindexset.hh
     dgpqkindexset.hh
@@ -34,7 +35,6 @@ install(FILES
     facelocalfiniteelement.hh
     formatstring.hh
     globalintersectioniterator.hh
-    hierarchic-approximation.hh
     improvegrid.hh
     interval.hh
     lumpmatrix.hh
@@ -44,7 +44,6 @@ install(FILES
     mappedmatrix.hh
     matlab_io.hh
     orientedsubface.hh
-    polyhedrondistance.hh
     prolongboundarypatch.hh
     readbitfield.hh
     referenceelementhelper.hh
diff --git a/dune/fufem/geometry/CMakeLists.txt b/dune/fufem/geometry/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8cbe112e7ba1076b220ea4b2daa16c544d4a60c0
--- /dev/null
+++ b/dune/fufem/geometry/CMakeLists.txt
@@ -0,0 +1,4 @@
+install(FILES
+    convexpolyhedron.hh
+    polyhedrondistance.hh
+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dune/fufem/grid)
diff --git a/dune/fufem/convexpolyhedron.hh b/dune/fufem/geometry/convexpolyhedron.hh
similarity index 90%
rename from dune/fufem/convexpolyhedron.hh
rename to dune/fufem/geometry/convexpolyhedron.hh
index 5b78d25f66f2ffe0975c7931ce1ca2f70a6c0d73..4dbdfffe16ba95343adfd3e38adad5467909e22f 100644
--- a/dune/fufem/convexpolyhedron.hh
+++ b/dune/fufem/geometry/convexpolyhedron.hh
@@ -1,5 +1,5 @@
-#ifndef DUNE_FUFEM_CONVEXPOLYHEDRON_HH
-#define DUNE_FUFEM_CONVEXPOLYHEDRON_HH
+#ifndef DUNE_FUFEM_GEOMETRY_CONVEXPOLYHEDRON_HH
+#define DUNE_FUFEM_GEOMETRY_CONVEXPOLYHEDRON_HH
 
 #include <dune/fufem/arithmetic.hh>
 
diff --git a/dune/fufem/polyhedrondistance.hh b/dune/fufem/geometry/polyhedrondistance.hh
similarity index 97%
rename from dune/fufem/polyhedrondistance.hh
rename to dune/fufem/geometry/polyhedrondistance.hh
index b76e397a89f43da22c40403bbc902cd43c81099d..f0ba119cccc2a8232640f8de5d538f40488fb03b 100644
--- a/dune/fufem/polyhedrondistance.hh
+++ b/dune/fufem/geometry/polyhedrondistance.hh
@@ -1,12 +1,12 @@
-#ifndef DUNE_FUFEM_POLYHEDRONDISTANCE_HH
-#define DUNE_FUFEM_POLYHEDRONDISTANCE_HH
+#ifndef DUNE_FUFEM_GEOMETRY_POLYHEDRONDISTANCE_HH
+#define DUNE_FUFEM_GEOMETRY_POLYHEDRONDISTANCE_HH
 
 // Based on the closest point projection from dune-contact
 
 #include <dune/common/dynvector.hh>
 #include <dune/common/dynmatrix.hh>
 
-#include <dune/fufem/convexpolyhedron.hh>
+#include <dune/fufem/geometry/convexpolyhedron.hh>
 
 template <class Coordinate, class Matrix>
 void populateMatrix(ConvexPolyhedron<Coordinate> const &segment,
diff --git a/dune/fufem/grid/CMakeLists.txt b/dune/fufem/grid/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..099d642cb1548efd0d03cf08f13f166ec5621b4e
--- /dev/null
+++ b/dune/fufem/grid/CMakeLists.txt
@@ -0,0 +1,3 @@
+install(FILES
+    hierarchic-approximation.hh
+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dune/fufem/grid)
diff --git a/dune/fufem/hierarchic-approximation.hh b/dune/fufem/grid/hierarchic-approximation.hh
similarity index 97%
rename from dune/fufem/hierarchic-approximation.hh
rename to dune/fufem/grid/hierarchic-approximation.hh
index daf61a398bfc82ca18bc3e8e8fd3602b67215248..e8ca38d47de808c498d5a6380ddaa9ebadb8464a 100644
--- a/dune/fufem/hierarchic-approximation.hh
+++ b/dune/fufem/grid/hierarchic-approximation.hh
@@ -1,5 +1,5 @@
-#ifndef DUNE_FUFEM_HIERARCHIC_APPROXIMATION_HH
-#define DUNE_FUFEM_HIERARCHIC_APPROXIMATION_HH
+#ifndef DUNE_FUFEM_GRID_HIERARCHIC_APPROXIMATION_HH
+#define DUNE_FUFEM_GRID_HIERARCHIC_APPROXIMATION_HH
 
 // Based on
 // dune/grid/utility/hierarchicsearch.hh
diff --git a/dune/fufem/test/test-polyhedral-minimisation.cc b/dune/fufem/test/test-polyhedral-minimisation.cc
index 38e37efa37e7f5e4c678bc795bb87d7d83b33426..960cdb2d61db41a7f7eeff1863123d489cec5eae 100644
--- a/dune/fufem/test/test-polyhedral-minimisation.cc
+++ b/dune/fufem/test/test-polyhedral-minimisation.cc
@@ -4,7 +4,7 @@
 
 #include <dune/common/fvector.hh>
 
-#include <dune/fufem/polyhedrondistance.hh>
+#include <dune/fufem/geometry/polyhedrondistance.hh>
 
 int main() {
   using LocalVector = Dune::FieldVector<double, 2>;