diff --git a/TaskAndTimeTimJahn.txt b/TaskAndTimeTimJahn.txt
index 2b6424fa75ef2c56842d31d0e9b21c39a3c1bbf9..acb997666585c160bacef67c53634b77dfc7de58 100644
--- a/TaskAndTimeTimJahn.txt
+++ b/TaskAndTimeTimJahn.txt
@@ -42,14 +42,16 @@ Sebastian
 //------------------------------------------------------------------------------------------------------
 
 hours:
-14.11.24  8h
-24.11.24  4h
-30.11.24  8h
-01.12.24  8h
-08.12.24  8h
-16.12.24 12h
-22.12.24 12h
+14.11.24  8h -
+24.11.24  4h -
+30.11.24  8h -
+01.12.24  8h -
+08.12.24  8h -
+16.12.24 12h -
+22.12.24 12h -
 23.12.24  8h
+24.12.24  2h
+06.01.25  8h
 //------------------------------------------------------------------------------------------------------
 
 see https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#prerequisite_native_keymap
@@ -526,3 +528,105 @@ Caused by: org.xml.sax.SAXParseExceptionpublicId: file:/mnt/c/Users/tim65/SHK-Pr
 	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:274)
 	... 15 more
 
+
+
+pageNode implementation
+
+NaseModel.pnml
+
+java.lang.ExceptionInInitializerError
+	at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.setupResourceSet(TaskListSourceModelStorage.java:58)
+	at org.eclipse.glsp.server.emf.EMFSourceModelStorage.getOrCreateEditingDomain(EMFSourceModelStorage.java:68)
+	at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.loadSourceModel(TaskListSourceModelStorage.java:85)
+	at org.eclipse.glsp.server.features.core.model.RequestModelActionHandler.executeAction(RequestModelActionHandler.java:75)
+	at org.eclipse.glsp.server.features.core.model.RequestModelActionHandler.executeAction(RequestModelActionHandler.java:45)
+	at org.eclipse.glsp.server.actions.AbstractActionHandler.execute(AbstractActionHandler.java:53)
+	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runAction(DefaultActionDispatcher.java:198)
+	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleAction(DefaultActionDispatcher.java:176)
+	at org.eclipse.glsp.example.javaemf.handler.MyActionDispatcher.handleAction(MyActionDispatcher.java:24)
+	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleNextAction(DefaultActionDispatcher.java:163)
+	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runThread(DefaultActionDispatcher.java:149)
+	at java.base/java.lang.Thread.run(Thread.java:1583)
+Caused by: java.lang.ClassCastException: class org.eclipse.emf.ecore.impl.EAttributeImpl cannot be cast to class org.eclipse.emf.ecore.EReference (org.eclipse.emf.ecore.impl.EAttributeImpl and org.eclipse.emf.ecore.EReference are in unnamed module of loader 'app')
+	at org.pnml.emf.ptnet.impl.PtnetPackageImpl.getToolInfoPage_Page(PtnetPackageImpl.java:2024)
+	at org.pnml.emf.ptnet.impl.PtnetPackageImpl.initializePackageContents(PtnetPackageImpl.java:2971)
+	at org.pnml.emf.ptnet.impl.PtnetPackageImpl.init(PtnetPackageImpl.java:597)
+	at org.pnml.emf.ptnet.PtnetPackage.<clinit>(PtnetPackage.java:59)
+	... 12 more
+
+test.pnml
+
+Could not initialize class org.pnml.emf.ptnet.PtnetPackage
+java.lang.NoClassDefFoundError: Could not initialize class org.pnml.emf.ptnet.PtnetPackage
+	at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.setupResourceSet(TaskListSourceModelStorage.java:58)
+	at org.eclipse.glsp.server.emf.EMFSourceModelStorage.getOrCreateEditingDomain(EMFSourceModelStorage.java:68)
+	at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.loadSourceModel(TaskListSourceModelStorage.java:85)
+	at org.eclipse.glsp.server.features.core.model.RequestModelActionHandler.executeAction(RequestModelActionHandler.java:75)
+	at org.eclipse.glsp.server.features.core.model.RequestModelActionHandler.executeAction(RequestModelActionHandler.java:45)
+	at org.eclipse.glsp.server.actions.AbstractActionHandler.execute(AbstractActionHandler.java:53)
+	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runAction(DefaultActionDispatcher.java:198)
+	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleAction(DefaultActionDispatcher.java:176)
+	at org.eclipse.glsp.example.javaemf.handler.MyActionDispatcher.handleAction(MyActionDispatcher.java:24)
+	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleNextAction(DefaultActionDispatcher.java:163)
+	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runThread(DefaultActionDispatcher.java:149)
+	at java.base/java.lang.Thread.run(Thread.java:1583)
+Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.ClassCastException: class org.eclipse.emf.ecore.impl.EAttributeImpl cannot be cast to class org.eclipse.emf.ecore.EReference (org.eclipse.emf.ecore.impl.EAttributeImpl and org.eclipse.emf.ecore.EReference are in unnamed module of loader 'app') [in thread "MyActionDispatcher 3"]
+	at org.pnml.emf.ptnet.impl.PtnetPackageImpl.getToolInfoPage_Page(PtnetPackageImpl.java:2024)
+	at org.pnml.emf.ptnet.impl.PtnetPackageImpl.initializePackageContents(PtnetPackageImpl.java:2971)
+	at org.pnml.emf.ptnet.impl.PtnetPackageImpl.init(PtnetPackageImpl.java:597)
+	at org.pnml.emf.ptnet.PtnetPackage.<clinit>(PtnetPackage.java:59)
+	... 12 more
+
+
+error trying to save after adding nodePage
+
+class org.pnml.emf.ptnet.impl.PageImpl cannot be cast to class java.lang.String (org.pnml.emf.ptnet.impl.PageImpl is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap')
+java.lang.ClassCastException: class org.pnml.emf.ptnet.impl.PageImpl cannot be cast to class java.lang.String (org.pnml.emf.ptnet.impl.PageImpl is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap')
+	at org.eclipse.emf.ecore.impl.EcoreFactoryImpl.convertEStringToString(EcoreFactoryImpl.java:661)
+	at org.eclipse.emf.ecore.impl.EcoreFactoryImpl.convertToString(EcoreFactoryImpl.java:219)
+	at org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.convertToString(XMLHelperImpl.java:1610)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.getDatatypeValue(XMLSaveImpl.java:3108)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveDataTypeSingle(XMLSaveImpl.java:1698)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1280)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1181)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1042)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2417)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1553)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1181)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1042)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2417)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1553)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1181)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1042)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2417)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1553)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1181)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1042)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2417)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1553)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1224)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2716)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.writeTopObject(XMLSaveImpl.java:683)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.traverse(XMLSaveImpl.java:591)
+	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:251)
+	at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:389)
+	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1475)
+	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1044)
+	at org.eclipse.glsp.example.javaemf.model.TaskListSourceModelStorage.saveSourceModel(TaskListSourceModelStorage.java:165)
+	at org.eclipse.glsp.server.actions.SaveModelActionHandler.executeAction(SaveModelActionHandler.java:47)
+	at org.eclipse.glsp.server.actions.SaveModelActionHandler.executeAction(SaveModelActionHandler.java:32)
+	at org.eclipse.glsp.server.actions.AbstractActionHandler.execute(AbstractActionHandler.java:53)
+	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runAction(DefaultActionDispatcher.java:198)
+	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleAction(DefaultActionDispatcher.java:176)
+	at org.eclipse.glsp.example.javaemf.handler.MyActionDispatcher.handleAction(MyActionDispatcher.java:24)
+	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.handleNextAction(DefaultActionDispatcher.java:163)
+	at org.eclipse.glsp.server.internal.actions.DefaultActionDispatcher.runThread(DefaultActionDispatcher.java:149)
+	at java.base/java.lang.Thread.run(Thread.java:1583)
diff --git a/glsp-client/workspace/Untitled.pnml b/glsp-client/workspace/Untitled.pnml
new file mode 100644
index 0000000000000000000000000000000000000000..9662fb4dcaeed0d6e91a737e2bd49ef891abafad
--- /dev/null
+++ b/glsp-client/workspace/Untitled.pnml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<pnml xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns="http://www.pnml.org/version-2009/grammar/pnml">
+  <net id="Untitled">
+    <page id="b95e1e03-4345-457f-8f41-a1f87c45dc6a">
+      <name text="NewPage0"/>
+      <nodegraphics>
+        <position x="170" y="98"/>
+        <dimension x="500" y="500"/>
+      </nodegraphics>
+      <place id="0b20eb18-2f49-4459-acc3-fdde1c976041">
+        <name text="NewPlace3"/>
+        <nodegraphics>
+          <position x="100" y="300"/>
+          <dimension x="70" y="70"/>
+        </nodegraphics>
+        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1" node="b95e1e03-4345-457f-8f41-a1f87c45dc6a" subnet=""/>
+      </place>
+      <place id="761e4b70-ede4-43fc-8e09-8fcd693f52f4">
+        <name text="NewPlace4"/>
+        <nodegraphics>
+          <position x="312" y="386"/>
+          <dimension x="70" y="70"/>
+        </nodegraphics>
+        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1" node="b95e1e03-4345-457f-8f41-a1f87c45dc6a" subnet=""/>
+      </place>
+      <transition id="d0e045f1-b811-42da-bb75-32467644b421">
+        <name text="NewTopic1"/>
+        <nodegraphics>
+          <position x="299" y="161"/>
+          <dimension x="100" y="150"/>
+        </nodegraphics>
+        <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1" type="topicTransitionType" topicName="NewTopic1">
+          <subscribers>
+            <subscriber id="0b20eb18-2f49-4459-acc3-fdde1c976041" limit="10"/>
+            <subscriber id="761e4b70-ede4-43fc-8e09-8fcd693f52f4" limit="10"/>
+          </subscribers>
+        </toolspecific>
+      </transition>
+    </page>
+    <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
+      <inputsignals>
+        <inputsignal inputsignalID="4"/>
+      </inputsignals>
+    </toolspecific>
+  </net>
+</pnml>
diff --git a/glsp-client/workspace/Untitled4.pnml b/glsp-client/workspace/Untitled4.pnml
new file mode 100644
index 0000000000000000000000000000000000000000..2309b876a0af0b5096935c79beae44a6bc6f91c3
--- /dev/null
+++ b/glsp-client/workspace/Untitled4.pnml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<pnml xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns="http://www.pnml.org/version-2009/grammar/pnml">
+  <net id="Untitled4">
+    <page id="07e5a2b3-7401-4d18-9f98-fe16c34b9240">
+      <name text="NewPage0"/>
+      <nodegraphics>
+        <position x="85" y="86"/>
+        <dimension x="500" y="500"/>
+      </nodegraphics>
+    </page>
+    <page id="d0798fe2-4bbb-48f0-8eeb-9db871bf5f85">
+      <name text="NewPage1"/>
+      <nodegraphics>
+        <position x="858" y="326"/>
+        <dimension x="500" y="500"/>
+      </nodegraphics>
+    </page>
+  </net>
+</pnml>
diff --git a/glsp-server/src/main/java/org/eclipse/glsp/example/javaemf/handler/NodeCreation/CreatePageHandler.java b/glsp-server/src/main/java/org/eclipse/glsp/example/javaemf/handler/NodeCreation/CreatePageHandler.java
index 3547e6b2bc3b6d24e87a2a63efc9695440598e9e..87514af3cb5a756bbaa89a5ce4e251e48c6955c5 100644
--- a/glsp-server/src/main/java/org/eclipse/glsp/example/javaemf/handler/NodeCreation/CreatePageHandler.java
+++ b/glsp-server/src/main/java/org/eclipse/glsp/example/javaemf/handler/NodeCreation/CreatePageHandler.java
@@ -29,7 +29,12 @@ public class CreatePageHandler extends AbstractCreateNodeHandler<CreateNodeOpera
 
     @Override
     public Optional<Command> createCommand(final CreateNodeOperation operation) {
-        GModelElement container = modelState.getIndex().get(operation.getContainerId()).orElseGet(modelState::getRoot);
+
+        GModelElement container = 
+            modelState.getIndex().get(operation.getContainerId())
+                .orElseGet(modelState::getRoot);
+
+        denySecondRootPage(container);
 
         EObject parentElement = getParentElement(container);
         EReference relationshipLiteral = getRelationshipLiteral(container);
@@ -37,13 +42,23 @@ public class CreatePageHandler extends AbstractCreateNodeHandler<CreateNodeOpera
         Page newPage = PtnetFactory.eINSTANCE.createPage();
         initializeElement(newPage);
 
-        NodeGraphics shape = createShape(idGenerator.getOrCreateId(newPage),
-            getRelativeLocation(operation), GraphUtil.dimension(PNMLModelTypes.DefaultSizes.PageWidth, PNMLModelTypes.DefaultSizes.PageHeight));
-        newPage.setNodegraphics(shape);
+        NodeGraphics shape = 
+            createShape(
+                idGenerator.getOrCreateId(newPage),
+                getRelativeLocation(operation), 
+                GraphUtil.dimension(
+                    PNMLModelTypes.DefaultSizes.PageWidth, 
+                    PNMLModelTypes.DefaultSizes.PageHeight)
+                );
 
-        Command pageCommand = AddCommand.create( modelState.getEditingDomain(), parentElement,
-            relationshipLiteral, newPage);
+        newPage.setNodegraphics(shape);
 
+        Command pageCommand = 
+            AddCommand.create( 
+                modelState.getEditingDomain(), 
+                parentElement,
+                relationshipLiteral, 
+                newPage);
 
         return Optional.of(pageCommand);
     }
@@ -69,4 +84,17 @@ public class CreatePageHandler extends AbstractCreateNodeHandler<CreateNodeOpera
         }
     }
 
+    protected void denySecondRootPage(final GModelElement container)
+    {
+        /* 
+         * assuming all other elements ensure there is an enclosing page,
+         * an empty model implies that no such page exists
+         */
+        if(!modelState.getRoot().eContents().isEmpty() && 
+            container.getType().equals(PNMLModelTypes.GRAPH))
+
+            throw new IllegalArgumentException(
+                "One page has to encapsulate the model"+
+                " - only one such page may exist at any time.");
+    }
 }