diff --git a/todolist/asciidocs/docs/README.adoc b/todolist/asciidocs/docs/README.adoc
index 9bf7f791092584e6d31b438a21654400c4b0867e..14e94ec5b4a013519ea8b5a72c1d46a4b2dd7d72 100644
--- a/todolist/asciidocs/docs/README.adoc
+++ b/todolist/asciidocs/docs/README.adoc
@@ -10,17 +10,24 @@ bygget med image:maven-logo-black-on-white.png[Maven logo,60,link="https://maven
 
 == Introduksjon
 
-Todo-list er en applikasjon for håndtering av todo-lister.
+Todolist er en applikasjon for håndtering av todo-lister.
 Den er implementert som en kombinasjon av en JavaFX-app og et REST API som appen bruker for håndtering av data.
-Med et REST API adskilt fra appen, så er det lett å utvide med andre klienter,
+Med et REST API adskilt fra appen, er det lett å støtte andre klienter som bruker de samme dataene,
 f.eks. en "native"-app for Android eller web-klient basert på React.
 
+== arkitekturen
+En kan tenke på appen som delt i ulike lag, med  et indre lag som håndterer representasjon og lagring av data, og
+et brukergrensesnittlag som brukeren interagerer med. Representasjonsdelen av det indre laget kalles ofte domenelogikken,
+fordi det bestemmer strukturen på dataene og hva en har lov til å gjøre med det. REST API-et har på en måte en lignende struktur,
+hvor brukergrensesnittet er byttet ut med et API som en når over web-protokollen HTTP.
+
 == Modularisering
 
-Todolist er strukturert i et sett _moduler_. Domenelogikken ligger i core-modulen, appen i fxui (og fxutil),
-mens REST API-et er fordelt over to moduler, restapi og restserver (og en alternativ implementasjon i springboot/restserver):
+Todolist er strukturert i et sett _moduler_, hvor hver modul fokuserer på en viss funksjonalitet eller del av arkitekturen.
+Det indre laget ligger i core-modulen, brukergrensesnittet i fxui (og fxutil), mens REST API-et er fordelt over to moduler,
+restapi og restserver (og en alternativ implementasjon i springboot/restserver):
 
-- <<core.adoc#, core>> - domenelogikken med alle klassene for å representeree todo-lister og -elementer, og støtte for serialisering og derialisering som JSON med Jackson-biblioteket
+- <<core.adoc#, core>> - klasser for representasjon og lagring (som JSON) av todo-lister og -elementer
 - <<fxui.adoc#, fxui (og fxutil)>> - app-brukergrensesnitt basert på JavaFX og FXML
 - <<restapi.adoc#, restapi og restserver>> - REST API og server basert på JAX-RS-standarden og Jersey-implementasjonen
 - <<springboot-restapi.adoc#, springboot/restserver>> - _alternativ_ REST API og server basert på spring boot-rammeverket
diff --git a/todolist/asciidocs/docs/core.adoc b/todolist/asciidocs/docs/core.adoc
index ef8f1bbaa17fe8187ae129b0c1306fb62f4f86e8..5e1824aca3e3cb2e248808396cf38172b1db7d2a 100644
--- a/todolist/asciidocs/docs/core.adoc
+++ b/todolist/asciidocs/docs/core.adoc
@@ -1 +1,3 @@
 == Kjernelogikken
+
+En kan tenke på appen som delt i ulike lag, med 
\ No newline at end of file
diff --git a/todolist/core/src/main/java/todolist/core/TodoList.java b/todolist/core/src/main/java/todolist/core/TodoList.java
index 5f3aabd01f3e5d94f7064b6421f7355e20ca2217..8272bad1f9c66e972558414d71e7d2b3ea18934e 100644
--- a/todolist/core/src/main/java/todolist/core/TodoList.java
+++ b/todolist/core/src/main/java/todolist/core/TodoList.java
@@ -32,9 +32,10 @@ public class TodoList extends AbstractTodoList {
    * its contents is copied in to a new TodoListItem and that is added instead.
    *
    * @param items the TodoItems to add
+   * @throws IllegalStateException if an item is a TodoListItem not belonging to this TodoList
    */
   @Override
-  public void addTodoItems(TodoItem... items) {
+  public void addTodoItems(TodoItem... items) throws IllegalStateException {
     for (TodoItem item : items) {
       TodoListItem todoListItem = null;
       if (item instanceof TodoListItem) {
@@ -45,6 +46,9 @@ public class TodoList extends AbstractTodoList {
         todoListItem.setChecked(item.isChecked());
         todoListItem.setDeadline(item.getDeadline());
       }
+      if (todoListItem.getTodoList() != this) {
+        throw new IllegalStateException("TodoListItem does not belong to this list TodoList");
+      }
       this.items.add(todoListItem);
     }
     fireTodoListChanged();
diff --git a/todolist/core/src/test/java/todolist/core/TodoListTest.java b/todolist/core/src/test/java/todolist/core/TodoListTest.java
index 2913988801d30f8fef18923cdb7390bd1cd8376a..4e0ba1080582d9e6af8a03b4f37bbe433b9747d7 100644
--- a/todolist/core/src/test/java/todolist/core/TodoListTest.java
+++ b/todolist/core/src/test/java/todolist/core/TodoListTest.java
@@ -7,6 +7,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import java.time.LocalDateTime;
 import java.util.Collection;
 import java.util.Iterator;
@@ -38,6 +39,13 @@ public class TodoListTest {
     assertEquals(item.getDeadline(), addedItem.getDeadline());
   }
 
+  @Test
+  public void testAddToDoItem_ownedByOtherTodoList() {
+    // create item belonging to other list
+    TodoItem listItem = new TodoList("other").createTodoItem();
+    assertThrows(IllegalStateException.class, () -> newList.addTodoItem(listItem));
+  }
+
   // tests for getCheckedItems
 
   @Test