diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4be63359658ddb2d8351faec91f7317af53a2a6a..bf42c00bc64a5056d53c0b22cec4a5687f81c8d5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
 
 ## [Current]
 
+### Changed
+
+- the margins are now set using relative values, which makes them adapt to different paper sizes
+
+## Fixed
+
+- `geometry` is now deferred until `AtBeginDocument`, which allows the user to load and modify the package in his preamble
+
 ## [2.0]
 
 ### Changed
diff --git a/HsH-classes.dtx b/HsH-classes.dtx
index d985c1c61316e5753f42ec2b045d7d50e0bec6aa..d0bc09dfbda4933169a3011a5db57c0fe444d918 100644
--- a/HsH-classes.dtx
+++ b/HsH-classes.dtx
@@ -104,13 +104,12 @@
 %
 %<*article|report>
 % required for changing layout
-\PassOptionsToPackage{a4paper,vmargin=3cm,bindingoffset=1cm,textwidth=15.5cm}{geometry}
+\PassOptionsToPackage{vmargin=5\baselineskip,bindingoffset=0.08\paperwidth,textwidth=0.75\paperwidth}{geometry}
 \if@todos
   \PassOptionsToPackage{paperwidth=1.2\paperwidth,left=2cm}{geometry}
 \else
   \PassOptionsToPackage{nomarginpar}{geometry}
 \fi
-\RequirePackage{geometry}
 %
 % language specific localisation
 \if@german
@@ -313,7 +312,8 @@
 %% load config at beginning of document
 \AtBeginDocument{
   \makeatletter
-%<^*standalone>
+%<!standalone>  \RequirePackage{geometry}
+%<*!standalone>
 % solve some common errors:
   \@ifpackageloaded{biblatex}{
 % solves fontype warning in San-Serif
@@ -322,7 +322,7 @@
   \@ifpackageloaded{subfigure}{
     \newcommand{\subfigureautorefname}{\figureautorefname}
   }{}
-%<^*standalone>
+%</!standalone>
   \InputIfFileExists{config.tex}{
     \ClassInfo{\myClassName}{config.tex was found. Using it...}
   }{
diff --git a/src/HsH-article.cls b/src/HsH-article.cls
index 73b5a5d9243231ee36086fab421ed8fc2b6f4b5e..8838ab861c94750e7f0287b1c0d20252862980ec 100644
--- a/src/HsH-article.cls
+++ b/src/HsH-article.cls
@@ -82,13 +82,12 @@
 \RequirePackage{graphicx}
 \RequirePackage{amsmath}
 \if@german\RequirePackage{ziffer}\fi
-\PassOptionsToPackage{a4paper,vmargin=3cm,bindingoffset=1cm,textwidth=15.5cm}{geometry}
+\PassOptionsToPackage{vmargin=5\baselineskip,bindingoffset=0.08\paperwidth,textwidth=0.75\paperwidth}{geometry}
 \if@todos
   \PassOptionsToPackage{paperwidth=1.2\paperwidth,left=2cm}{geometry}
 \else
   \PassOptionsToPackage{nomarginpar}{geometry}
 \fi
-\RequirePackage{geometry}
 \if@german
   \PassOptionsToPackage{ngerman}{babel}
 \else
@@ -218,6 +217,7 @@
 %% load config at beginning of document
 \AtBeginDocument{
   \makeatletter
+  \RequirePackage{geometry}
   \@ifpackageloaded{biblatex}{
     \renewcommand*{\mkbibacro}[1]{\MakeUppercase{#1}}
   }{}
diff --git a/src/HsH-report.cls b/src/HsH-report.cls
index 017ac99cfab9cd4474c7aa3b91482cf0d9633edf..9cb90d9725ceacb5eeefafaf431679097ff38aca 100644
--- a/src/HsH-report.cls
+++ b/src/HsH-report.cls
@@ -82,13 +82,12 @@
 \RequirePackage{graphicx}
 \RequirePackage{amsmath}
 \if@german\RequirePackage{ziffer}\fi
-\PassOptionsToPackage{a4paper,vmargin=3cm,bindingoffset=1cm,textwidth=15.5cm}{geometry}
+\PassOptionsToPackage{vmargin=5\baselineskip,bindingoffset=0.08\paperwidth,textwidth=0.75\paperwidth}{geometry}
 \if@todos
   \PassOptionsToPackage{paperwidth=1.2\paperwidth,left=2cm}{geometry}
 \else
   \PassOptionsToPackage{nomarginpar}{geometry}
 \fi
-\RequirePackage{geometry}
 \if@german
   \PassOptionsToPackage{ngerman}{babel}
 \else
@@ -234,6 +233,7 @@
 %% load config at beginning of document
 \AtBeginDocument{
   \makeatletter
+  \RequirePackage{geometry}
   \@ifpackageloaded{biblatex}{
     \renewcommand*{\mkbibacro}[1]{\MakeUppercase{#1}}
   }{}
diff --git a/src/HsH-standalone.cls b/src/HsH-standalone.cls
index 742489d5fc437674ca55bb350cd78862620d74d3..b635ccd3ed858e580579b65a9747dc5d83d30402 100644
--- a/src/HsH-standalone.cls
+++ b/src/HsH-standalone.cls
@@ -91,12 +91,6 @@
 %% load config at beginning of document
 \AtBeginDocument{
   \makeatletter
-  \@ifpackageloaded{biblatex}{
-    \renewcommand*{\mkbibacro}[1]{\MakeUppercase{#1}}
-  }{}
-  \@ifpackageloaded{subfigure}{
-    \newcommand{\subfigureautorefname}{\figureautorefname}
-  }{}
   \InputIfFileExists{config.tex}{
     \ClassInfo{\myClassName}{config.tex was found. Using it...}
   }{