diff --git a/socg-lipics-v2021.cls b/socg-lipics-v2021.cls
new file mode 100644
index 0000000000000000000000000000000000000000..84ca77f201b3f5ff5827bd39f0aa41eb9bcedf21
--- /dev/null
+++ b/socg-lipics-v2021.cls
@@ -0,0 +1,300 @@
+%% socg-lipics-v2021.cls 
+%% Authors: Michael Hoffmann <hoffmann@inf.ethz.ch> and Irina Kostitsyna <i.kostitsyna@tue.nl>
+%% Revision: $Rev: 6990 $ from $Date: 2021-02-16 15:30:31 +0100 (Tue, 16 Feb 2021) $
+%% wrapper around lipics-v2021 to obtain a more consistent line numbering
+%% we patch/hack some relevant commands and environments and see what happens...
+
+\NeedsTeXFormat{LaTeX2e}[2015/01/01]
+\ProvidesClass{socg-lipics-v2021}[2021/02/16 v0.8 Adapt LIPIcs class so that lineno counts and numbers more relevant lines]
+
+%% prefix output by classname
+\newcommand{\socgtypeout}[1]{\typeout{socg-lipics-v2021: #1}}%
+
+%% process options
+\RequirePackage{ifthen}
+\RequirePackage{letltxmacro}
+
+%% with nolines, run lipics plain
+\newboolean{socgnolines}\setboolean{socgnolines}{false}
+\DeclareOption{nolineno}{\setboolean{socgnolines}{true}}
+
+%% with noalgorithm2e, do not try to fix algorithm2e environments
+\newboolean{socgnoalgorithm2e}\setboolean{socgnoalgorithm2e}{false}
+\DeclareOption{noalgorithm2e}{\setboolean{socgnoalgorithm2e}{true}}
+%% with noalgorithms, do not try to fix algorithms (algorithm/algorithmic) package
+\newboolean{socgnoalgorithms}\setboolean{socgnoalgorithms}{false}
+\DeclareOption{noalgorithms}{\setboolean{socgnoalgorithms}{true}}
+%% with nosubfigcap, do not try to fix subcaptions
+\newboolean{socgnosubfigcap}\setboolean{socgnosubfigcap}{false}
+\DeclareOption{nosubfigcap}{\setboolean{socgnosubfigcap}{true}}
+%% with notab, do not wrap tabular into edtable
+\newboolean{socgnotab}\setboolean{socgnotab}{false}
+\DeclareOption{notab}{\setboolean{socgnotab}{true}}
+%% with notcolorbox, do not try to fix tcolorbox
+\newboolean{socgnotcolorbox}\setboolean{socgnotcolorbox}{false}
+\DeclareOption{notcolorbox}{\setboolean{socgnotcolorbox}{true}}
+%% pass all the rest to LIPIcs
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{lipics-v2021}}
+\ProcessOptions\relax
+
+%% set all line numbering options for algorithm2e
+\ifthenelse{\boolean{socgnolines}}{%
+}{%
+  \ifthenelse{\boolean{socgnoalgorithm2e}}{%
+  }{%
+    \PassOptionsToPackage{linesnumbered,commentsnumbered,inoutnumbered,titlenumbered}{algorithm2e}
+  }%
+  %% set longtable -> edtable option to handle tabular
+  \ifthenelse{\boolean{socgnotab}}{%
+  }{%
+    \PassOptionsToPackage{longtable}{lineno}}%
+}% !socgnolines
+
+%% load LIPIcs class
+\LoadClass{lipics-v2021}[2021/01/04]%
+
+\ifthenelse{\boolean{socgnolines}}{%
+  \newcounter{socglastlinecounter}%
+  \newcommand{\socgnl}{}%
+  \nolinenumbers%
+  \endinput
+}{}
+
+%% hide LIPIcs DOI
+\def\@DOIPrefix{}
+
+%% \socgnl = number line: allows to manually add the current linenumber to a
+%% single line if placed at the start of that line
+\newsavebox{\socgnlbox}%
+\newcommand{\socgnl}{%
+  \sbox{\socgnlbox}{\mbox{\linenumberfont\LineNumber\hskip\linenumbersep}}%
+  \hspace*{-\wd\socgnlbox}\usebox{\socgnlbox}\stepcounter{linenumber}%
+}
+
+%% used in captions
+\newcommand{\socglipicsyellowdot}{%
+  \kern0.05em{\color[rgb]{0.99,0.78,0.07}\rule{0.73em}{0.73em}}\hspace*{0.67em}}
+
+%% add line numbers to all captions
+\DeclareCaptionTextFormat{socgnumberitall}{\internallinenumbers #1}
+\captionsetup{textformat=socgnumberitall}%
+
+%% handle subcaptions (this is a hack, really)
+\ifthenelse{\boolean{socgnosubfigcap}}{
+}{%
+  \socgtypeout{fix subcaptions}
+  \RequirePackage{zref-savepos}
+  \newcounter{socgstartofnewfloat}\setcounter{socgstartofnewfloat}{0}
+  \newcounter{socglinenumbertmp}\newcounter{socglinenumbermax}
+  \newcounter{socgsubfigcount}\setcounter{socgsubfigcount}{0}
+  \newcounter{socgsubfiglastpos}\setcounter{socgsubfiglastpos}{0}
+  \let\socgsubcaption\subcaption%
+  \def\subcaption#1{%
+    \stepcounter{socgsubfigcount}%
+    \zsavepos{\arabic{socgsubfigcount}}%
+    \ifthenelse{\value{socgstartofnewfloat}=1\and\value{socgsubfiglastpos}>\zposx{\arabic{socgsubfigcount}}}{%
+      \socgtypeout{add newline in Fig. \thefigure : \thesubfigure}%
+      \setcounter{socgstartofnewfloat}{0}%
+    }{%
+    }%
+    \setcounter{socgsubfiglastpos}{\zposx{\arabic{socgsubfigcount}}}%
+    \ifthenelse{\value{socgstartofnewfloat}=0}{%
+      \setcounter{socgstartofnewfloat}{1}%
+      \setcounter{socglinenumbermax}{0}%
+      \setcounter{socglinenumbertmp}{\value{linenumber}}%
+    }{%
+      \setcounter{linenumber}{\value{socglinenumbertmp}}
+    }%
+    \socgsubcaption{\internallinenumbers #1}%
+    \ifthenelse{\value{linenumber} >\value{socglinenumbermax}}{%
+      \setcounter{socglinenumbermax}{\value{linenumber}}}%
+    {%
+    }%
+    \setcounter{linenumber}{\value{socglinenumbermax}}%
+  }
+  \let\socgendfigure\endfigure
+  \def\endfigure{\setcounter{socgstartofnewfloat}{0}\socgendfigure}
+  \let\socgendtable\endtable
+  \def\endtable{\setcounter{socgstartofnewfloat}{0}\socgendtable}
+
+  \@ifpackagelater{subcaption}{2019/08/28}{%
+    \socgtypeout{subcaption is from 2019+}
+    \let\socgsubcaptionminipage\subcaption@iiminipage
+    \renewcommand*\subcaption@iiminipage[3]{%
+      \let\socgrealsubcaption\subcaption%
+      \socgsubcaptionminipage{#1}{#2}{#3}%
+      \renewcommand{\caption}[1]{\socgrealsubcaption{##1}}\relax}%
+  }{%
+    \socgtypeout{subcaption is from before 2019}
+    %% replace subfigure/caption by subcaption
+    \renewcommand*\subcaption@minipage[2]{%
+      \minipage#1{#2}%
+      \renewcommand{\caption}[1]{\subcaption{##1}}\relax}%
+  }%
+}
+
+%% number footnotes by wrapping them into a minipage
+\let\socgfootnote=\footnote
+\newcommand{\socgnumberfootnotes}{%
+  \gdef\footnote##1{%
+    \socgfootnote{%
+      \begin{minipage}[t]{.978\linewidth}\internallinenumbers\setlength\linenumbersep{2em}
+        ##1
+      \end{minipage}\vspace{1pt plus .5pt minus .5pt}%
+    }%
+  }%
+}
+
+%% don't number frontmatter 
+\let\socgrealmaketitle=\maketitle
+\renewcommand{\maketitle}{\nolinenumbers\socgrealmaketitle\linenumbers}
+
+%% ... not even subject classification, doi, etc.
+\let\socgabstract=\abstract
+\let\socgendabstract=\endabstract
+\newcounter{socglastlinecounter}
+\renewenvironment{abstract}{%
+  \socgabstract%
+}{%
+  \par\begin{nolinenumbers}
+    \socgendabstract
+  \end{nolinenumbers}%
+  \socgnumberfootnotes%
+}
+%% to list the lines, look where the references start
+\RequirePackage[absolute]{textpos}
+\AtBeginDocument{%
+  \let\socgthebibliography=\thebibliography
+  \renewcommand{\thebibliography}{%
+    \setcounter{socglastlinecounter}{\value{linenumber}}%
+    \addtocounter{socglastlinecounter}{-1}%
+    \makeatletter\write\@auxout{\noexpand\setcounter{socglastlinecounter}{\thesocglastlinecounter}}\makeatother%
+    \socgthebibliography}%
+  \begin{textblock*}{.75\textwidth}(\oddsidemargin,28mm)
+    {\ifnum\value{socglastlinecounter}>500\color{red}\fi{\bfseries Lines:\enskip}\arabic{socglastlinecounter}\hfill}
+  \end{textblock*}}
+
+%% wrap tabular into edtable
+\ifthenelse{\boolean{socgnotab}}{%
+}{%
+  \socgtypeout{fix tabular}
+  \let\socgtabular\tabular%
+  \let\endsocgtabular\endtabular%
+  \renewenvironment{tabular}{\begin{edtable}{socgtabular}}{\end{edtable}}%
+}
+
+%% fix align etc. "double line number issue"
+%% see https://tex.stackexchange.com/questions/436011/linenomath-printing-extra-numbers-on-last-line-of-multline-align-flalign-envir
+\newcommand*{\socgPatchAmsMathEnvironmentForLineno}[1]{%
+  \renewenvironment{#1}%
+  {\linenomath\postdisplaypenalty=0\csname old#1\endcsname}%
+  {\csname oldend#1\endcsname\endlinenomath}}%
+\newcommand*\socgpatchBothAmsMathEnvironmentsForLineno[1]{%
+  \socgPatchAmsMathEnvironmentForLineno{#1}%
+  \socgPatchAmsMathEnvironmentForLineno{#1*}}%
+\AtBeginDocument{%
+  \socgpatchBothAmsMathEnvironmentsForLineno{align}%
+  \socgpatchBothAmsMathEnvironmentsForLineno{flalign}%
+  \socgpatchBothAmsMathEnvironmentsForLineno{alignat}%
+  \socgpatchBothAmsMathEnvironmentsForLineno{gather}%
+  \socgpatchBothAmsMathEnvironmentsForLineno{multline}}%
+
+%% number tcolorboxes (just the vanilla ones...)
+\ifthenelse{\boolean{socgnotcolorbox}}{%
+}{%
+  \socgtypeout{fix tcolorbox}
+  \AtBeginDocument{%
+    \@ifpackageloaded{tcolorbox}{%
+      \LetLtxMacro\socgtcolorbox\tcolorbox%
+      \LetLtxMacro\endsocgtcolorbox\endtcolorbox%
+      \renewenvironment{tcolorbox}[1][]{%
+        \nolinenumbers%
+        \socgtcolorbox[#1]\internallinenumbers%
+        \addtolength{\linenumbersep}{\kvtcb@leftupper}%
+        \addtolength{\linenumbersep}{\kvtcb@boxsep}}{%
+        \endsocgtcolorbox%
+        \endnolinenumbers}%
+    }{%
+    }% package tcolorbox loaded 
+  }% AtBeginDocument
+}% if socgtcolorbox
+
+%% fix algorithms
+\ifthenelse{\boolean{socgnoalgorithms}}{%
+}{%
+  \newboolean{socgalgorithmicorx}\setboolean{socgalgorithmicorx}{false}
+  \AtBeginDocument{%
+    \@ifpackageloaded{algorithmic}{\setboolean{socgalgorithmicorx}{true}}{}
+    \@ifpackageloaded{algorithmicx}{\setboolean{socgalgorithmicorx}{true}}{}
+    \ifthenelse{\boolean{socgalgorithmicorx}}{%
+      \socgtypeout{fix algorithmic(x)}%
+      \LetLtxMacro\socgalgorithmic\algorithmic%
+      \LetLtxMacro\endsocgalgorithmic\endalgorithmic%
+      \renewenvironment{algorithmic}[1][]{%
+        \socgalgorithmic[#1]\internallinenumbers}{%
+        \endsocgalgorithmic}% end of environment algorithmic
+    }{%
+    }% package algorithmic or algorithmicx loaded 
+    \@ifpackageloaded{algorithm}{%
+      \socgtypeout{fix algorithm}
+      \LetLtxMacro\socgalgorithms\algorithm%
+      \LetLtxMacro\endsocgalgorithms\endalgorithm%
+      \renewenvironment{algorithm}[1][]{%
+        \socgalgorithms[#1]%
+        \LetLtxMacro\socgcaption\caption%
+        \renewcommand{\caption}[2][]{%
+          \socgcaption[##1]{\internallinenumbers ##2}}%
+      }{\endsocgalgorithms}% end of environment algorithm
+    }{%
+    }% package algorithm loaded 
+  }% AtBeginDocument
+}% if socgalgo
+    
+%% fix algorithm2e
+\ifthenelse{\boolean{socgnoalgorithm2e}}{%
+}{%
+  \AtBeginDocument{%
+    \@ifpackageloaded{algorithm2e}{%
+      \socgtypeout{fix algorithm2e}%
+      \expandafter\LetLtxMacro\expandafter\socgalgorithmte\csname\algocf@envname\endcsname%
+      \expandafter\LetLtxMacro\expandafter\endsocgalgorithmte\csname end\algocf@envname\endcsname%
+      \renewenvironment{\algocf@envname}[1][]{%
+        \begin{nolinenumbers}%
+          \socgalgorithmte[#1]%
+          \SetAlCapFnt{\small\sffamily}%
+          \SetAlCapNameFnt{\small\upshape}%
+          \setcounter{AlgoLine}{\value{linenumber}}\addtocounter{AlgoLine}{-1}%
+        }{%
+          \ifthenelse{\value{linenumber}<\value{AlgoLine}}{%
+            \setcounter{linenumber}{\value{AlgoLine}}\stepcounter{linenumber}%
+          }{%
+          }%
+          \endsocgalgorithmte%
+        \end{nolinenumbers}%
+      }% end of environment algorithm2e
+      %% font for line numbers
+      \renewcommand{\relsize}[1]{\normalfont\tiny\sffamily}%
+      \newcommand{\socgalgocaption}[2]{%
+        \begin{minipage}[t]{\hsize}\internallinenumbers%
+          \socglipicsyellowdot{#1}{~}\AlCapNameSty{\AlCapNameFnt{}#2}%
+        \end{minipage}%
+      }%
+      %% there are two caption types: (1) above the code
+      \renewcommand{\algocf@makecaption@ruled}[2]{%
+        \global\sbox\algocf@capbox{\socgalgocaption{#1}{#2}}%
+        \setcounter{AlgoLine}{\value{linenumber}}\addtocounter{AlgoLine}{-1}%
+      }% end of algocf@makecaption@ruled
+      %% ... and (2) below, which we dress more like the LIPIcs style
+      \renewcommand{\algocf@makecaption}[2]{%
+        \setcounter{linenumber}{\value{AlgoLine}}\stepcounter{linenumber}%
+        \socgalgocaption{#1}{#2}%
+      }% end of algocf@makecaption
+    }{}% package algorithm2e loaded 
+  }% AtBeginDocument
+}% if socgalgo2e
+    
+\endinput
+
+% Local Variables:
+% mode: latex
+% End: