diff --git a/CMakeLists.txt b/CMakeLists.txt
index 232eda0db64d9be4b7c3c9ad15deef3a53f169b4..712bbc8732d40b94486239c3ea2689ea6cc1606f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,6 +24,7 @@ add_subdirectory("dune")
 add_subdirectory("doc")
 add_subdirectory("lib")
 add_subdirectory("python")
+dune_python_install_package(PATH python)
 
 # finalize the dune project, e.g. generating config.h etc.
 finalize_dune_project(GENERATE_CONFIG_H_CMAKE)
diff --git a/dune/python/geometry/referenceelements.hh b/dune/python/geometry/referenceelements.hh
index 91339dfe250b478870b491faeb87847840869876..ba4959f0934506ef06872096ea8b23da3165e7ab 100644
--- a/dune/python/geometry/referenceelements.hh
+++ b/dune/python/geometry/referenceelements.hh
@@ -10,6 +10,9 @@
 #include <dune/geometry/referenceelements.hh>
 #include <dune/geometry/type.hh>
 
+#include <dune/python/common/fvector.hh>
+#include <dune/python/common/fmatrix.hh>
+
 #include <dune/python/geometry/quadraturerules.hh>
 #include <dune/python/pybind11/pybind11.h>
 
@@ -96,6 +99,11 @@ namespace Dune
       pybind11::options opts;
       opts.disable_function_signatures();
 
+      static const std::size_t dimension = RefElement::dimension;
+      typedef typename RefElement::ctype ctype;
+      registerFieldVector<ctype,dimension>( module );
+      registerFieldMatrix<ctype,dimension,dimension>( module );
+
       cls.def_property_readonly( "dimension", [] ( pybind11::object ) { return pybind11::int_( RefElement::dimension ); } );
 
       cls.def( "size", [] ( const RefElement &self, int c ) {
diff --git a/python/dune/geometry/CMakeLists.txt b/python/dune/geometry/CMakeLists.txt
index 73083d29f17734f7e1e76889c042119b084c1bfc..87cdacc35974670fd9db21b2d36bb09db17bd14e 100644
--- a/python/dune/geometry/CMakeLists.txt
+++ b/python/dune/geometry/CMakeLists.txt
@@ -4,3 +4,4 @@ add_python_targets(geometry
   quadpy
 )
 dune_add_pybind11_module(NAME _geometry)
+set_property(TARGET _geometry PROPERTY LINK_LIBRARIES dunecommon dunegeometry)