diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0192a7fa773c7d3d61ac24abdd06f4918454e20b..ea57924f1e5364e60b9e304d0f4a3e30b933bf1c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,10 +14,6 @@ All notable changes to this project will be documented in this file.
 - the margins are now set using relative values, which makes them adapt to different paper sizes
 - add alignment parameter to `\declarationofauthorship`, it is still by default aligned to the bottom of the page, but can now be pushed to the top using `\declarationofauthorship[t]`
 
-## 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 0884eb0d3d0dc4c20ef205c39697acd5dc310b20..e7d8036ccdc9974a22fcca003436f88fe51d3e3a 100644
--- a/HsH-classes.dtx
+++ b/HsH-classes.dtx
@@ -114,10 +114,12 @@
 \if@todos
 % new paperwidth is everything without the right marging plus new stuff for marginpar
 % rightmargin = ((1-0,75<paperwidth>) - 0.08<bindingoffset>)/2 = 0.915
-  \PassOptionsToPackage{paperwidth=0.915\paperwidth+\marginparsep+\marginparwidth+0.25cm, right=\marginparsep+\marginparwidth+0.25cm}{geometry}
+  \setlength{\marginparwidth}{6cm}
+  \PassOptionsToPackage{paperwidth=\dimexpr +0.915\paperwidth+\marginparsep+\marginparwidth+0.25cm, right=\dimexpr +\marginparsep+\marginparwidth+0.25cm}{geometry}
 \else
   \PassOptionsToPackage{nomarginpar}{geometry}
 \fi
+\RequirePackage{geometry}
 %
 % language specific localisation
 \if@german
@@ -324,7 +326,6 @@
 %% load config at beginning of document
 \AtBeginDocument{
   \makeatletter
-%<!standalone>  \RequirePackage{geometry}
 %<*!standalone>
 % solve some common errors:
   \@ifpackageloaded{biblatex}{
diff --git a/src/HsH-article.cls b/src/HsH-article.cls
index 675aae7609c7d1cac9296db04fcad66b4437dfc3..2e04a9ace1187d238653a14f7e39ee497962d116 100644
--- a/src/HsH-article.cls
+++ b/src/HsH-article.cls
@@ -89,19 +89,21 @@
 \RequirePackage{lmodern}
 \RequirePackage{graphicx}
 \RequirePackage{amsmath}
-\if@german\RequirePackage{ziffer}\fi
 \PassOptionsToPackage{vmargin=5\baselineskip,bindingoffset=0.08\paperwidth,textwidth=0.75\paperwidth}{geometry}
 \if@todos
-  \PassOptionsToPackage{paperwidth=0.915\paperwidth+\marginparsep+\marginparwidth+0.25cm, right=\marginparsep+\marginparwidth+0.25cm}{geometry}
+  \setlength{\marginparwidth}{6cm}
+  \PassOptionsToPackage{paperwidth=\dimexpr +0.915\paperwidth+\marginparsep+\marginparwidth+0.25cm, right=\dimexpr +\marginparsep+\marginparwidth+0.25cm}{geometry}
 \else
   \PassOptionsToPackage{nomarginpar}{geometry}
 \fi
+\RequirePackage{geometry}
 \if@german
   \PassOptionsToPackage{ngerman}{babel}
 \else
   \PassOptionsToPackage{english}{babel}
 \fi
 \RequirePackage{babel}
+\iflanguage{ngerman}{\RequirePackage{ziffer}}{}%
 \PassOptionsToPackage{headsepline}{scrlayer-scrpage}
 \RequirePackage{scrlayer-scrpage}
 \RequirePackage{scrhack}
@@ -111,7 +113,7 @@
 \RequirePackage{caption}
 \RequirePackage{bookmark}
 \PassOptionsToPackage{babel}{csquotes}
-\if@german\PassOptionsToPackage{german=quotes}{csquotes}\fi
+\iflanguage{ngerman}{\PassOptionsToPackage{german=quotes}{csquotes}}{}%
 \RequirePackage{csquotes}
 \MakeOuterQuote{"}
 \if@todos
@@ -123,9 +125,9 @@
   \RequirePackage{todonotes}
   \setlength{\marginparwidth}{5.2cm}
 \else
-    \newcommand{\listoftodos}[1][]{}
-    \newcommand{\todo}[2][]{}
-    \newcommand{\missingfigure}[2][]{}
+    \newcommand{\listoftodos}[1]{}
+    \newcommand{\todo}[2]{}
+    \newcommand{\missingfigure}[2]{}
 \fi
 \RequirePackage{pgffor}
 %% options for not loaded packages ----------------------------------------------------------------
@@ -198,14 +200,15 @@
   \g@addto@macro\@floatboxreset\centering
   \setcapwidth{0.8\textwidth}
 \fi
-\if@german
+\iflanguage{english}{
+  \renewcaptionname{english}{\figurename}{Fig.}
+  \renewcaptionname{english}{\tablename}{Tab.}
+}{}%
+\iflanguage{ngerman}{
   \renewcaptionname{ngerman}{\figurename}{Abb.}
   \renewcaptionname{ngerman}{\tablename}{Tab.}
   \renewcaptionname{ngerman}{\abstractname}{Abstract}
-\else
-  \renewcaptionname{english}{\figurename}{Fig.}
-  \renewcaptionname{english}{\tablename}{Tab.}
-\fi
+}{}%
 
 %% styling for itemize
 \renewcommand{\labelitemi}{$\bullet$}
@@ -216,7 +219,7 @@
 %% do stuff
 \setlength\parindent{0pt}
 \raggedbottom
-\renewcommand{\layercontentsmeasure}{\@empty}
+\let\layercontentsmeasure\relax
 
 %% custom commands
 \newcommand{\uproman}[1]{\uppercase\expandafter{\romannumeral#1}}
@@ -225,7 +228,6 @@
 %% load config at beginning of document
 \AtBeginDocument{
   \makeatletter
-  \RequirePackage{geometry}
   \@ifpackageloaded{biblatex}{
     \renewcommand*{\mkbibacro}[1]{\MakeUppercase{#1}}
   }{}
@@ -241,33 +243,15 @@
   \providecommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}}
   \makeatother
 }
-%% decloration of Authorship ----------------------------------------------------------------------
+%% declaration of Authorship ----------------------------------------------------------------------
+\iflanguage{english}{
+  \setlocalecaption{english}{authorshipdeclaration}{Declaration of Authorship}
+}{}%
+\iflanguage{ngerman}{
+  \setlocalecaption{ngerman}{authorshipdeclaration}{Selbstst\"andigkeitserkl\"arung}
+}{}%
 \newif\if@oneAuthor \@oneAuthortrue
-\if@german
-  \setlocalecaption{ngerman}{dATitle}{Selbstständigkeitserklärung}
-  \setlocalecaption{ngerman}{dAPronomen}{\if@oneAuthor ich\else wir\fi}
-  \setlocalecaption{ngerman}{dAPluralendung}{\if@oneAuthor\else n\fi}
-  \setlocalecaption{ngerman}{dAGenitiv}{\if@oneAuthor mir\else uns\fi}
-  \setlocalecaption{ngerman}{dAText}{
-    Hiermit bestätige\dAPluralendungname\space\dAPronomenname, dass die folgende Arbeit eigenständig von \dAGenitivname\space allein erstellt
-    und unter Berücksichtigung der zur Verfügung gestellten Aufgabenstellung sowie dem Arbeitsmaterial unter Angabe aller verwendeten Quellen
-    erarbeitet wurde. Die Regelungen und Konsequenzen eines Plagiats, inklusive disziplinarischer Maßnahmen, sind \dAGenitivname\space
-    bewusst. Insbesondere wurden alle Zitate und gedanklichen Übernahmen als solche kenntlich gemacht.
-  }
-\else
-  \setlocalecaption{english}{dATitle}{Declaration of Authorship}
-  \setlocalecaption{english}{dAPronomen}{\if@oneAuthor I\else we\fi}
-  \setlocalecaption{english}{dAPronomenf}{\if@oneAuthor I\else We\fi}
-  \setlocalecaption{english}{dAPronomverb}{\if@oneAuthor am\else are\fi}
-  \setlocalecaption{english}{dAGenitiv}{\if@oneAuthor my\else our\fi}
-  \setlocalecaption{english}{dAText}{
-    \dAPronomenfname\space hereby certify that the work \dAPronomenname\space\dAPronomverbname\space submitting is entirely of
-    \dAGenitivname\space own making except where otherwise indicated. \dAPronomenfname\space\dAPronomverbname\space aware of regulations
-    concerning plagiarism, including disciplinary actions that may result from it. Any use of the works of any other author, in any form, is
-    properly acknowledged at their point of use.
-  }
-\fi
-\newcommand{\declarationAuthorship}[1][b]{
+\newcommand{\declarationofauthorship}[1][b]{
   \let\@param#1
   \renewcommand{\thanks}{\sbox0}
   \foreach \x [count=\i] in \@author{\ifnum\i>1\global\@oneAuthorfalse\fi}
@@ -275,9 +259,21 @@
   \if\@param b\vspace*{\fill}\fi
   {\rule{\textwidth}{0.1pt}}
   \vskip 3em
-  {\centering\huge\textbf{\dATitlename}\par}
+  {\centering\huge\bfseries\authorshipdeclarationname\par}
   \vskip 3em
-  {\dATextname\par}
+  \iflanguage{english}{
+    \if@oneAuthor I\else We\fi\space hereby certify that the work \if@oneAuthor I\else we\fi\space \if@oneAuthor am\else are\fi\space submitting
+    is entirely of \if@oneAuthor my\else our\fi own making except where otherwise indicated. \if@oneAuthor I\else We\fi\space
+    \if@oneAuthor am\else are\fi\space aware of regulations concerning plagiarism, including disciplinary actions that may result from it. Any use
+    of the works of any other author, in any form, is properly acknowledged at their point of use. \par
+  }{}%
+  \iflanguage{ngerman}{
+    Hiermit best{\"a}tige\if@oneAuthor\else n\fi\space \if@oneAuthor ich\else wir\fi, dass die folgende Arbeit eigenst{\"a}ndig von
+    \if@oneAuthor mir\else uns\fi\space allein erstellt und unter Ber{\"u}cksichtigung der zur Verf{\"u}gung gestellten Aufgabenstellung sowie dem
+    Arbeitsmaterial unter Angabe aller verwendeten Quellen erarbeitet wurde. Die Regelungen und Konsequenzen eines Plagiats, inklusive
+    disziplinarischer Ma{\ss}nahmen, sind \if@oneAuthor mir\else uns\fi\space bewusst. Insbesondere wurden alle Zitate und gedanklichen {\"U}bernahmen
+    als solche kenntlich gemacht. \par
+  }{}%
   {\raggedleft
     \foreach \x in \@author{
       \begin{tabular}[t]{r}
@@ -289,6 +285,8 @@
   \par}
   \if\@param t\vspace*{\fill}\fi
 }
+\let\declarationAuthorship\declarationofauthorship
+
 %% reconfig Titlepage -----------------------------------------------------------------------------
 \newtoks\@tabtoks
 \newcommand\addtabtoks[1]{\global\@tabtoks\expandafter{\the\@tabtoks#1}}
@@ -389,7 +387,7 @@
       \vskip 1em
       {\usekomafont{date}{\@date\par}}
       \vskip 1em
-     {\if\@professor\@empty\else\usekomafont{publishers}{Professor\if@german(in)/Lehrbeauftragte(r)\fi: \@professor}\fi}
+     {\if\@professor\@empty\else\usekomafont{publishers}{Professor\iflanguage{ngerman}{(in)/Lehrbeauftragte(r)}{}: \@professor}\fi}
       \ifx\@dedication\@empty\else
         \vskip 2em
         {\usekomafont{dedication}{\@dedication \par}}%
diff --git a/src/HsH-report.cls b/src/HsH-report.cls
index 498a9ba44be6b0e566b360b113a6a817dbc55d09..7d8282545c247b62e75f0f17a4983f121ac66733 100644
--- a/src/HsH-report.cls
+++ b/src/HsH-report.cls
@@ -89,19 +89,21 @@
 \RequirePackage{lmodern}
 \RequirePackage{graphicx}
 \RequirePackage{amsmath}
-\if@german\RequirePackage{ziffer}\fi
 \PassOptionsToPackage{vmargin=5\baselineskip,bindingoffset=0.08\paperwidth,textwidth=0.75\paperwidth}{geometry}
 \if@todos
-  \PassOptionsToPackage{paperwidth=0.915\paperwidth+\marginparsep+\marginparwidth+0.25cm, right=\marginparsep+\marginparwidth+0.25cm}{geometry}
+  \setlength{\marginparwidth}{6cm}
+  \PassOptionsToPackage{paperwidth=\dimexpr +0.915\paperwidth+\marginparsep+\marginparwidth+0.25cm, right=\dimexpr +\marginparsep+\marginparwidth+0.25cm}{geometry}
 \else
   \PassOptionsToPackage{nomarginpar}{geometry}
 \fi
+\RequirePackage{geometry}
 \if@german
   \PassOptionsToPackage{ngerman}{babel}
 \else
   \PassOptionsToPackage{english}{babel}
 \fi
 \RequirePackage{babel}
+\iflanguage{ngerman}{\RequirePackage{ziffer}}{}%
 \PassOptionsToPackage{headsepline}{scrlayer-scrpage}
 \RequirePackage{scrlayer-scrpage}
 \RequirePackage{scrhack}
@@ -111,7 +113,7 @@
 \RequirePackage{caption}
 \RequirePackage{bookmark}
 \PassOptionsToPackage{babel}{csquotes}
-\if@german\PassOptionsToPackage{german=quotes}{csquotes}\fi
+\iflanguage{ngerman}{\PassOptionsToPackage{german=quotes}{csquotes}}{}%
 \RequirePackage{csquotes}
 \MakeOuterQuote{"}
 \if@todos
@@ -123,9 +125,9 @@
   \RequirePackage{todonotes}
   \setlength{\marginparwidth}{5.2cm}
 \else
-    \newcommand{\listoftodos}[1][]{}
-    \newcommand{\todo}[2][]{}
-    \newcommand{\missingfigure}[2][]{}
+    \newcommand{\listoftodos}[1]{}
+    \newcommand{\todo}[2]{}
+    \newcommand{\missingfigure}[2]{}
 \fi
 \RequirePackage{pgffor}
 %% options for not loaded packages ----------------------------------------------------------------
@@ -199,14 +201,15 @@
   \g@addto@macro\@floatboxreset\centering
   \setcapwidth{0.8\textwidth}
 \fi
-\if@german
+\iflanguage{english}{
+  \renewcaptionname{english}{\figurename}{Fig.}
+  \renewcaptionname{english}{\tablename}{Tab.}
+}{}%
+\iflanguage{ngerman}{
   \renewcaptionname{ngerman}{\figurename}{Abb.}
   \renewcaptionname{ngerman}{\tablename}{Tab.}
   \renewcaptionname{ngerman}{\abstractname}{Abstract}
-\else
-  \renewcaptionname{english}{\figurename}{Fig.}
-  \renewcaptionname{english}{\tablename}{Tab.}
-\fi
+}{}%
 
 %% styling for itemize
 \renewcommand{\labelitemi}{$\bullet$}
@@ -217,7 +220,7 @@
 %% do stuff
 \setlength\parindent{0pt}
 \raggedbottom
-\renewcommand{\layercontentsmeasure}{\@empty}
+\let\layercontentsmeasure\relax
 
 %% define easy shorthands to switch pagenumbering
 \newif\if@mainmatter\@mainmattertrue
@@ -241,7 +244,6 @@
 %% load config at beginning of document
 \AtBeginDocument{
   \makeatletter
-  \RequirePackage{geometry}
   \@ifpackageloaded{biblatex}{
     \renewcommand*{\mkbibacro}[1]{\MakeUppercase{#1}}
   }{}
@@ -265,38 +267,23 @@
 }{%
   \ifx\@keywords\@empty\else
     \vskip 2em
-    \paragraph{\if@german Schlüsselwörter:\else Keywords:\fi}
+    \paragraph{%
+      \iflanguage{english}{Keywords}{}%
+      \iflanguage{ngerman}{Schlüsselwörter}{}%
+    }
     \@keywords
   \fi
   \endquotation
 }
-%% decloration of Authorship ----------------------------------------------------------------------
+%% declaration of Authorship ----------------------------------------------------------------------
+\iflanguage{english}{
+  \setlocalecaption{english}{authorshipdeclaration}{Declaration of Authorship}
+}{}%
+\iflanguage{ngerman}{
+  \setlocalecaption{ngerman}{authorshipdeclaration}{Selbstst\"andigkeitserkl\"arung}
+}{}%
 \newif\if@oneAuthor \@oneAuthortrue
-\if@german
-  \setlocalecaption{ngerman}{dATitle}{Selbstständigkeitserklärung}
-  \setlocalecaption{ngerman}{dAPronomen}{\if@oneAuthor ich\else wir\fi}
-  \setlocalecaption{ngerman}{dAPluralendung}{\if@oneAuthor\else n\fi}
-  \setlocalecaption{ngerman}{dAGenitiv}{\if@oneAuthor mir\else uns\fi}
-  \setlocalecaption{ngerman}{dAText}{
-    Hiermit bestätige\dAPluralendungname\space\dAPronomenname, dass die folgende Arbeit eigenständig von \dAGenitivname\space allein erstellt
-    und unter Berücksichtigung der zur Verfügung gestellten Aufgabenstellung sowie dem Arbeitsmaterial unter Angabe aller verwendeten Quellen
-    erarbeitet wurde. Die Regelungen und Konsequenzen eines Plagiats, inklusive disziplinarischer Maßnahmen, sind \dAGenitivname\space
-    bewusst. Insbesondere wurden alle Zitate und gedanklichen Übernahmen als solche kenntlich gemacht.
-  }
-\else
-  \setlocalecaption{english}{dATitle}{Declaration of Authorship}
-  \setlocalecaption{english}{dAPronomen}{\if@oneAuthor I\else we\fi}
-  \setlocalecaption{english}{dAPronomenf}{\if@oneAuthor I\else We\fi}
-  \setlocalecaption{english}{dAPronomverb}{\if@oneAuthor am\else are\fi}
-  \setlocalecaption{english}{dAGenitiv}{\if@oneAuthor my\else our\fi}
-  \setlocalecaption{english}{dAText}{
-    \dAPronomenfname\space hereby certify that the work \dAPronomenname\space\dAPronomverbname\space submitting is entirely of
-    \dAGenitivname\space own making except where otherwise indicated. \dAPronomenfname\space\dAPronomverbname\space aware of regulations
-    concerning plagiarism, including disciplinary actions that may result from it. Any use of the works of any other author, in any form, is
-    properly acknowledged at their point of use.
-  }
-\fi
-\newcommand{\declarationAuthorship}[1][b]{
+\newcommand{\declarationofauthorship}[1][b]{
   \let\@param#1
   \renewcommand{\thanks}{\sbox0}
   \foreach \x [count=\i] in \@author{\ifnum\i>1\global\@oneAuthorfalse\fi}
@@ -304,9 +291,21 @@
   \if\@param b\vspace*{\fill}\fi
   {\rule{\textwidth}{0.1pt}}
   \vskip 3em
-  {\centering\huge\textbf{\dATitlename}\par}
+  {\centering\huge\bfseries\authorshipdeclarationname\par}
   \vskip 3em
-  {\dATextname\par}
+  \iflanguage{english}{
+    \if@oneAuthor I\else We\fi\space hereby certify that the work \if@oneAuthor I\else we\fi\space \if@oneAuthor am\else are\fi\space submitting
+    is entirely of \if@oneAuthor my\else our\fi own making except where otherwise indicated. \if@oneAuthor I\else We\fi\space
+    \if@oneAuthor am\else are\fi\space aware of regulations concerning plagiarism, including disciplinary actions that may result from it. Any use
+    of the works of any other author, in any form, is properly acknowledged at their point of use. \par
+  }{}%
+  \iflanguage{ngerman}{
+    Hiermit best{\"a}tige\if@oneAuthor\else n\fi\space \if@oneAuthor ich\else wir\fi, dass die folgende Arbeit eigenst{\"a}ndig von
+    \if@oneAuthor mir\else uns\fi\space allein erstellt und unter Ber{\"u}cksichtigung der zur Verf{\"u}gung gestellten Aufgabenstellung sowie dem
+    Arbeitsmaterial unter Angabe aller verwendeten Quellen erarbeitet wurde. Die Regelungen und Konsequenzen eines Plagiats, inklusive
+    disziplinarischer Ma{\ss}nahmen, sind \if@oneAuthor mir\else uns\fi\space bewusst. Insbesondere wurden alle Zitate und gedanklichen {\"U}bernahmen
+    als solche kenntlich gemacht. \par
+  }{}%
   {\raggedleft
     \foreach \x in \@author{
       \begin{tabular}[t]{r}
@@ -318,6 +317,8 @@
   \par}
   \if\@param t\vspace*{\fill}\fi
 }
+\let\declarationAuthorship\declarationofauthorship
+
 %% reconfig Titlepage -----------------------------------------------------------------------------
 \newtoks\@tabtoks
 \newcommand\addtabtoks[1]{\global\@tabtoks\expandafter{\the\@tabtoks#1}}
@@ -434,7 +435,7 @@
       \vskip 1.5em
       {\usekomafont{date}{\@date\par}}
       \vskip \z@ \@plus3fill
-     {\if\@professor\@empty\else\usekomafont{publishers}{Professor\if@german(in)/Lehrbeauftragte(r)\fi: \@professor}\fi}
+     {\if\@professor\@empty\else\usekomafont{publishers}{Professor\iflanguage{ngerman}{(in)/Lehrbeauftragte(r)}{}: \@professor}\fi}
       \par
     \endgroup
     \vskip 3em
diff --git a/src/HsH-standalone.cls b/src/HsH-standalone.cls
index 4b2e13b6d1c6b1cee78ab23812e062f075aa4616..83f88a6bdd7c4a7178c320079012e0fa8fde20a9 100644
--- a/src/HsH-standalone.cls
+++ b/src/HsH-standalone.cls
@@ -84,7 +84,6 @@
 \RequirePackage{lmodern}
 \RequirePackage{graphicx}
 \RequirePackage{amsmath}
-\if@german\RequirePackage{ziffer}\fi
 %% options for not loaded packages ----------------------------------------------------------------
 \PassOptionsToPackage{free-standing-units}{siunitx}
 \PassOptionsToPackage{european,EFvoltages,straightvoltages,betterproportions}{circuitikz}
diff --git a/src/config.tex b/src/config.tex
index 59d28f2e02e07f1aa05bf6d525a0cb3bdf1e7fd7..1517eca756ecdcac524442b1bb488f4bf34148f6 100644
--- a/src/config.tex
+++ b/src/config.tex
@@ -25,9 +25,9 @@
   }
 }{}
 \@ifpackageloaded{siunitx}{
-  \if@german
+  \iflanguage{ngerman}{
     \sisetup{output-decimal-marker={,}} % use comma as dezimal
-  \fi
+  }{}%
   \sisetup{
     tight-spacing=true,
     per-mode=symbol,
@@ -70,9 +70,9 @@
 \@ifpackageloaded{pgfplots}{
   \usepgfplotslibrary{fillbetween} % mark areas under or between graphs
   \usetikzlibrary{patterns} % for using pattern in plots
-  \if@german
+  \iflanguage{ngerman}{
     \pgfplotsset{/pgf/number format/use comma}
-  \fi
+  }{}%
   \pgfplotsset{
     compat=1.16,
     /pgf/number format/read comma as period,