seitenluss bis auf logik und verzweigungen gemacht, scala-templates entsprechend