diff --git a/lectures/revealjs/12-modular.adoc b/lectures/revealjs/12-modular.adoc
index 46ba9c7afc36df15cf6e53c2196342d5c37de4d0..67f5b8cb436fd05941d83efa71cb6e609feed7f2 100644
--- a/lectures/revealjs/12-modular.adoc
+++ b/lectures/revealjs/12-modular.adoc
@@ -8,59 +8,64 @@
 include::{includedir}header.adoc[]
 
 [.smaller-80][.center-paragraph]
-IT1901 Fall 2020 - {LECTURE_NO}
+IT1901 Fall 2021 - {LECTURE_NO}
 
 
 == Overview
-- Group deliverable 2
+- Group deliverable 2 (GD2)
 - Architectural styles
-- Modular projects with Maven
+- Modular projects with Maven and Java
 
-== Group deliverable 2
+== GD2 - modularisering
 
-- modularisering 
-** kodingsprosjektet skal deles opp i egnede moduler med avhengigheter mellom (og til andre, relevante moduler)
-** bygging styres (fortsatt) av maven og hver modul har hensiktmessig konfigurasjon
+* kodingsprosjektet skal deles opp i egnede moduler med avhengigheter
+* bygging styres (fortsatt) av maven og hver modul har hensiktmessig konfigurasjon
+* maven-moduler er et krav, mens Java-moduler er ikke (men i utgangspunktet anbefalt)
+* mer om modularisering senere
 
 [.smaller-80]
-== Group deliverable 2 (cont.)
+== GD2 - arkitektur
 
-- arkitektur (full tre-lags arkitektur)
-** kjernelogikken og ui-et skal skilles fra hverandre (domenelaget + brukergrensesnittlaget )
-** persistens med JSON og Jackson evt. alternativt bibliotek (persistenslaget)
-*** definere filformat for brukerdata og evt. innstillinger
-*** reflektere over og velge mellom dokumentmetafor (desktop) og implisitt lagring (app)
-** alle tre lagene spiller sammen
+* kjernelogikken (domenelaget) og ui (brukergrensesnittlaget) skal skilles fra hverandre
+* persistens med JSON vha. egnet bibliotek, f.eks. Jackson
+** definere/dokumentere (?) filformat for brukerdata og evt. innstillinger
+* reflektere over og velge mellom dokumentmetafor (desktop) og implisitt lagring (app)
+* alle tre lagene spiller sammen
 
-== Group deliverable 2 (cont.)
+== GD2 - kodekvalitet
 
-- kodekvalitet
-** tester skal skrives for all modulene 
-** testdekningsgrad  (Jacoco) og (annen) kodekvalitet skal sjekkes av egne tillegg ( for eksempel Checkstyle og Spotbugs som plugins) 
-** rimelig god testdekning av alle lagene
+* tester skal skrives for alle modulene 
+* testdekningsgrad og (annen) kodekvalitet skal sjekkes av egne maven-tillegg (f.eks. **jacoco**, **checkstyle** og **spotbugs**)
+* rimelig god testdekning av alle lagene
 
-== Group deliverable 2 (cont.)
-- dokumentasjon
-** dokumentasjon (readme filer og kommentarer) må oppdateres
-** dokumentere arkitektur med minst et diagram (bruk PlantUML) i tillegg til teksten i readme
+== GD2 - dokumentasjon
 
-[.smaller-80]
-== Group deliverable 2 (cont.)
-- arbeidsvaner
-** kodingsoppgaver skal være utgangspunktet for alt arbeid (Issues for alle ting som skal gjøres)
-** greiner (branch) samler arbeid for hver kodingsoppgave
-** bruk milepæl (milestones) knyttet til innleveringen
-** dere jobber i par og bytter på å kode
+* generell dokumentasjon må holdes oppdatert
+* arkitektur med minst et diagram (bruk PlantUML) i tillegg til teksten i readme
+* valg knyttet til arbeidsvaner, arbeidsflyt, testing, bruk av verktøy for sjekking av kodekvalitet (f.eks. innstillinger)
 
-[.smaller-80]
-== Group deliverable 2 (cont.)
-- leverer på gitlab
-** prosjektet må være gitpod-klart, så vi kan åpne det i gitpod fra en merkelapp i repoet 
-** maven skal brukes til kjøring av applikasjonen, testene og av  kodekvalitet sjekker
-** kode for vurdering må leveres i mastergreina av standard repo for gruppen (https://gitlab.stud.idi.ntnu.no/it1901/groups-2020/gr20nn/gr20nn)
-- På Blackboard leverer dere en enkel tekst som nevner at repo-et er klart for vurdering.
-- Hvis dere leverer etter fristen, informerer du lærerassistenten.
+== GD2 - arbeidsvaner
+
+* kodingsoppgaver skal være utgangspunktet for alt arbeid
+* greiner (branch) samler arbeid for hver kodingsoppgave (?)
+** se alternativet **trunk based development**
+* bruk milepæl (milestones) knyttet til innleveringen
+* dere jobber i par og bytter på å kode
+* "produktiv" kode og tester må holde tritt
+
+== GD2 - lær (i smidig ånd)
 
+* hva virker bra og ikke så bra
+* hva er en god oppdeling i og fordeling av arbeidsoppgaver
+* ikke lur dere selv eller andre
+
+[.smaller-80]
+== GD2 - leveranse
+* prosjektet må være gitpod-klart med Gitpod-knapp i gitlab eller merkelapp i README-fila
+* maven skal brukes til kjøring, testing og sjekk av kodekvalitet
+* kode må ligge i master-greina av standard kodelager for gruppa
+* på Blackboard leveres en enkel tekst om at kodelageret er klart for vurdering
+* det er også nå "flytende/anbefalt" frist, så hold kontakt med lærerassistenten om fremdrift
 
 == Architectural styles
 
@@ -73,14 +78,13 @@ system will be structured and function.
 - 3-tier applications
 - REST
 
-== layers vs tiers
+== layers vs. tiers
 
 - sometimes the terms are used interchangeably
 - there is a difference
 ** layers - logical separation
 ** tiers - physical separation
 
-
 [background-color = "#124990"]
 [color = "#fff6d5"]
 == monolithic applications
@@ -88,7 +92,7 @@ system will be structured and function.
 == monolithic applications (1)
 
 - All the functionality is packed in a single software unit
-** presentation
+** ui
 ** logic
 ** data
 - designed without modularity
@@ -160,8 +164,30 @@ image::../images/lecture12/rtodo.png[canvas, size=contain]
 
 [background-color = "#124990"]
 [color = "#fff6d5"]
+== Modularity
+
+== Modularity
+
+- means for splitting a large problems into parts
+** distribute and isolate work
+** distribute artifacts for use and reuse
+- more or less supported by tools and languages
+** maven - modular build
+** java - strong encapsulatation
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Modularity with maven
+
 == Modular projects with Maven
 
+- main "parent" module with common configuration
+- sub-modules with dependencies
+** libraries (and plugins) are modules
+** own modules follow architecture
+- manages build tasks
+** sequenced according to dependencies
+** execute in appropriate context e.g. classpath
 
 == Modular projects with Maven
 
@@ -170,7 +196,6 @@ image::../images/lecture12/rtodo.png[canvas, size=contain]
 - the descendent `pom` can override inherited configuration elements
 - descendant `pom` inherits most elements with the exception of things like artifactid, name which are used to identify the parent `pom`
 
-
 == Modular projects with Maven (2)
 
 - reduce complexity and size of individual build files
@@ -178,6 +203,7 @@ image::../images/lecture12/rtodo.png[canvas, size=contain]
 
 == Parent pom example
 
+[.smaller-40]
 ```xml
 <?xml version="1.0" encoding="UTF-8" ?>
 
@@ -223,6 +249,7 @@ image::../images/lecture12/rtodo.png[canvas, size=contain]
 
 == Descendant pom example
 
+[.smaller-40]
 ```xml
 <?xml version="1.0" encoding="UTF-8" ?>
 
@@ -256,4 +283,68 @@ image::../images/lecture12/rtodo.png[canvas, size=contain]
 
 ```
 
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Modularity with Java
+
+== Java modules
+
+[.smaller-80]
+* corresponds to a set of packages
+* strong encapsulation
+** explicitly export packages
+** explicitly state dependencies
+** also enforced during runtime
+* advantages
+** avoid relying on internals
+** build lighter apps
+* disadvantages...
+
+== core - module-info.java
+
+```java
+module todolist.core {
+    requires transitive com.fasterxml.jackson.databind;
+
+    exports todolist.core;
+    exports todolist.json;
+}
+```
+
+== core - https://gitlab.stud.idi.ntnu.no/it1901/todo-list/-/blob/master/todolist/core/src/main/java/module-info.java[module-info.java]
+
+* module name
+** how to get (guess) name of libraries 
+* **requires** - what this module needs
+** **transitive** - others will need this too
+** **exports** - what others may use
+
+== fxui - https://gitlab.stud.idi.ntnu.no/it1901/todo-list/-/blob/master/todolist/fxui/src/main/java/module-info.java[module-info.java]
+
+```java
+module todolist.ui {
+    requires com.fasterxml.jackson.databind;
+
+    requires java.net.http;
+
+    requires javafx.base;
+    requires javafx.controls;
+    requires javafx.fxml;
+
+    requires todolist.core;
+    requires fxutil;
+
+    opens todolist.ui to javafx.graphics, javafx.fxml;
+}
+```
+
+== fxui - module-info.java
+
+* **opens** ... *to* - allow getting runtime info about classes using so-called _reflection_
+** fxml
+** REST frameworks
+** test frameworks
+* **--add-opens** command line option
+** support unmodularized mode
+
 include::{includedir}footer.adoc[]
\ No newline at end of file