diff --git a/doc/Doxyfile.extra.in b/doc/Doxyfile.extra.in
index a1b2202ba712f4f7253a75142de70d8b26b5d344..2266c668b99dfb00f22ab4330df6171b725406e9 100644
--- a/doc/Doxyfile.extra.in
+++ b/doc/Doxyfile.extra.in
@@ -100,7 +100,7 @@ HIDE_UNDOC_MEMBERS     = NO
 # If set to NO (the default) these classes will be included in the various
 # overviews. This option has no effect if EXTRACT_ALL is enabled.
 
-#HIDE_UNDOC_CLASSES     = NO
+HIDE_UNDOC_CLASSES     = YES
 
 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
 # friend (class|struct|union) declarations.
@@ -316,6 +316,7 @@ FILE_PATTERNS          = *.cc *.cpp *.h *.hpp *.hxx *.hh *.dox *.md *.py
 # for example use the pattern */test/*
 
 EXCLUDE_PATTERNS      += CMake* \
+                         */d-practical-exercises/src/* \
                          *.txt \
                          *.sh \
                          *.orig \
@@ -338,7 +339,8 @@ EXCLUDE_PATTERNS      += CMake* \
 # wildcard * is used, a substring. Examples: ANamespace, AClass,
 # AClass::ANamespace, ANamespace::*Test
 
-EXCLUDE_SYMBOLS        = internal::*
+EXCLUDE_SYMBOLS        = internal::* \
+                         *Visitor
 
 # The IMAGE_PATH tag can be used to specify one or more files or
 # directories that contain image that are included in the documentation (see