Browse Source

Add (failing) test for user_logout

Yentl Van Tendeloo 7 years ago
parent
commit
2e459f93ff
5 changed files with 201 additions and 208 deletions
  1. 3 10
      bootstrap/core_algorithm.alc
  2. 22 0
      unit/test_all.py
  3. 20 20
      wrappers/classes/modelverse.xml
  4. 0 4
      wrappers/modelverse.py
  5. 156 174
      wrappers/modelverse_SCCD.py

+ 3 - 10
bootstrap/core_algorithm.alc

@@ -1124,7 +1124,6 @@ String function cmd_help():
 		result = result + ("\n")
 
 	result = result + ("General operations\n")
-	result = result + ("    self-destruct                   -- Remove current user and revoke all permissions \n")
 	result = result + ("    exit                            -- Kill the current task, while retaining user\n")
 
 	return result!
@@ -2489,17 +2488,11 @@ Void function user_function_skip_init(user_id : String):
 			set_verbose(True)
 		elif (cmd == "quiet"):
 			set_verbose(False)
-		elif (cmd == "self-destruct"):
-			// Delete user from Core Formalism
-			model_delete_element(core, user_id)
-			return !
 		elif (cmd == "user_logout"):
-			// TODO
-			cmd = "FAIL"
+			output("Success")
+			new_task()
+			return !
 		elif (cmd == "exit"):
-			// Exit by actually removing the user and decoupling it from all of its models
-			// Restarting with the same user name will NOT grant you access to anything of the previous user with that same name
-			// as the current user will have been deleted
 			output("Success")
 			sleep(5)
 			return !

+ 22 - 0
unit/test_all.py

@@ -406,6 +406,28 @@ class TestModelverse(unittest.TestCase):
             for entry in after:
                 assert entry in before
 
+    def test_op_user_logout(self):
+        try:
+            element_list_nice("administration/core")
+            self.fail()
+        except ReadPermissionDenied:
+            pass
+
+        user_logout()
+        login("admin", "admin")
+
+        # Test user permissions
+        assert len(element_list_nice("administration/core")) > 0
+
+        user_logout()
+        login("user", "user")
+
+        try:
+            element_list_nice("administration/core")
+            self.fail()
+        except ReadPermissionDenied:
+            pass
+
     """
     def test_op_user_delete(self):
     def test_op_model_render(self):

+ 20 - 20
wrappers/classes/modelverse.xml

@@ -256,10 +256,24 @@
                                 <raise event="request">
                                     <parameter expr="self.parameters[0]"/>
                                 </raise>
+
+                                <script>
+                                    print("Got logon query")
+                                </script>
                             </transition>
                         </state>
 
                         <state id="wait_prompt_2">
+                            <onentry>
+                                <script>
+                                    print("Wait for password query")
+                                </script>
+                            </onentry>
+                            <onexit>
+                                <script>
+                                    print("Exit password query")
+                                </script>
+                            </onexit>
                             <transition cond="self.expect_response('Password for existing user?', pop=True)" target="../wait_prompt_existing">
                                 <raise event="request">
                                     <parameter expr="self.parameters[1]"/>
@@ -495,20 +509,6 @@
                         </transition>
                     </state>
 
-                    <state id="user_delete">
-                        <onentry>
-                            <raise event="request">
-                                <parameter expr="'self-destruct'"/>
-                            </raise>
-                        </onentry>
-
-                        <transition cond="self.expect_response('Success')" target="../../wait_for_action/finished">
-                            <raise event="result">
-                                <parameter expr="None"/>
-                            </raise>
-                        </transition>
-                    </state>
-
                     <state id="model_render">
                         <onentry>
                             <raise event="request">
@@ -1495,9 +1495,15 @@
                     </state>
 
                     <state id="connected">
+                        <onentry>
+                            <script>
+                                print("CONNECTED ready for login")
+                            </script>
+                        </onentry>
                         <transition cond="self.expect_action('login')" target="../../operations/login">
                             <script>
                                 self.load_action()
+                                print("Processing login for " + str(self.parameters))
                             </script>
                         </transition>
 
@@ -1630,12 +1636,6 @@
                             </script>
                         </transition>
 
-                        <transition cond="self.expect_action('user_delete')" target="../../operations/user_delete">
-                            <script>
-                                self.load_action()
-                            </script>
-                        </transition>
-
                         <transition cond="self.expect_action('model_render')" target="../../operations/model_render">
                             <script>
                                 self.load_action()

+ 0 - 4
wrappers/modelverse.py

@@ -259,10 +259,6 @@ def user_logout():
     INPUT("user_logout", [])
     return OUTPUT()
 
-def user_delete():
-    INPUT("user_delete", [])
-    return OUTPUT()
-
 def model_render(model_name, mapper_name, rendered_name):
     INPUT("model_render", [model_name, mapper_name, rendered_name])
     return OUTPUT()

+ 156 - 174
wrappers/modelverse_SCCD.py

@@ -172,6 +172,8 @@ class Modelverse(RuntimeClassBase):
         
         # state /initialized/behaviour/operations/login/wait_prompt_2
         self.states["/initialized/behaviour/operations/login/wait_prompt_2"] = State(15, "/initialized/behaviour/operations/login/wait_prompt_2", self)
+        self.states["/initialized/behaviour/operations/login/wait_prompt_2"].setEnter(self._initialized_behaviour_operations_login_wait_prompt_2_enter)
+        self.states["/initialized/behaviour/operations/login/wait_prompt_2"].setExit(self._initialized_behaviour_operations_login_wait_prompt_2_exit)
         
         # state /initialized/behaviour/operations/login/wait_prompt_existing
         self.states["/initialized/behaviour/operations/login/wait_prompt_existing"] = State(16, "/initialized/behaviour/operations/login/wait_prompt_existing", self)
@@ -242,323 +244,320 @@ class Modelverse(RuntimeClassBase):
         self.states["/initialized/behaviour/operations/user_logout"] = State(34, "/initialized/behaviour/operations/user_logout", self)
         self.states["/initialized/behaviour/operations/user_logout"].setEnter(self._initialized_behaviour_operations_user_logout_enter)
         
-        # state /initialized/behaviour/operations/user_delete
-        self.states["/initialized/behaviour/operations/user_delete"] = State(35, "/initialized/behaviour/operations/user_delete", self)
-        self.states["/initialized/behaviour/operations/user_delete"].setEnter(self._initialized_behaviour_operations_user_delete_enter)
-        
         # state /initialized/behaviour/operations/model_render
-        self.states["/initialized/behaviour/operations/model_render"] = State(36, "/initialized/behaviour/operations/model_render", self)
+        self.states["/initialized/behaviour/operations/model_render"] = State(35, "/initialized/behaviour/operations/model_render", self)
         self.states["/initialized/behaviour/operations/model_render"].setEnter(self._initialized_behaviour_operations_model_render_enter)
         
         # state /initialized/behaviour/operations/model_rendered
-        self.states["/initialized/behaviour/operations/model_rendered"] = State(37, "/initialized/behaviour/operations/model_rendered", self)
+        self.states["/initialized/behaviour/operations/model_rendered"] = State(36, "/initialized/behaviour/operations/model_rendered", self)
         self.states["/initialized/behaviour/operations/model_rendered"].setEnter(self._initialized_behaviour_operations_model_rendered_enter)
         
         # state /initialized/behaviour/operations/transformation_between
-        self.states["/initialized/behaviour/operations/transformation_between"] = State(38, "/initialized/behaviour/operations/transformation_between", self)
+        self.states["/initialized/behaviour/operations/transformation_between"] = State(37, "/initialized/behaviour/operations/transformation_between", self)
         self.states["/initialized/behaviour/operations/transformation_between"].setEnter(self._initialized_behaviour_operations_transformation_between_enter)
         
         # state /initialized/behaviour/operations/transformation_signature
-        self.states["/initialized/behaviour/operations/transformation_signature"] = State(39, "/initialized/behaviour/operations/transformation_signature", self)
+        self.states["/initialized/behaviour/operations/transformation_signature"] = State(38, "/initialized/behaviour/operations/transformation_signature", self)
         self.states["/initialized/behaviour/operations/transformation_signature"].setEnter(self._initialized_behaviour_operations_transformation_signature_enter)
         
         # state /initialized/behaviour/operations/process_signature
-        self.states["/initialized/behaviour/operations/process_signature"] = State(40, "/initialized/behaviour/operations/process_signature", self)
+        self.states["/initialized/behaviour/operations/process_signature"] = State(39, "/initialized/behaviour/operations/process_signature", self)
         self.states["/initialized/behaviour/operations/process_signature"].setEnter(self._initialized_behaviour_operations_process_signature_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted
-        self.states["/initialized/behaviour/operations/store_on_scripted"] = State(41, "/initialized/behaviour/operations/store_on_scripted", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted"] = State(40, "/initialized/behaviour/operations/store_on_scripted", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add"] = State(42, "/initialized/behaviour/operations/store_on_scripted/transformation_add", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add"] = State(41, "/initialized/behaviour/operations/store_on_scripted/transformation_add", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add/send_metadata
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add/send_metadata"] = State(43, "/initialized/behaviour/operations/store_on_scripted/transformation_add/send_metadata", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add/send_metadata"] = State(42, "/initialized/behaviour/operations/store_on_scripted/transformation_add/send_metadata", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add/send_metadata"].setEnter(self._initialized_behaviour_operations_store_on_scripted_transformation_add_send_metadata_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add/wait_for_user
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add/wait_for_user"] = State(44, "/initialized/behaviour/operations/store_on_scripted/transformation_add/wait_for_user", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add/wait_for_user"] = State(43, "/initialized/behaviour/operations/store_on_scripted/transformation_add/wait_for_user", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add/upload_changes
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add/upload_changes"] = State(45, "/initialized/behaviour/operations/store_on_scripted/transformation_add/upload_changes", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add/upload_changes"] = State(44, "/initialized/behaviour/operations/store_on_scripted/transformation_add/upload_changes", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute"] = State(46, "/initialized/behaviour/operations/store_on_scripted/transformation_execute", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute"] = State(45, "/initialized/behaviour/operations/store_on_scripted/transformation_execute", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation"] = State(47, "/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation"] = State(46, "/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation"].setEnter(self._initialized_behaviour_operations_store_on_scripted_transformation_execute_send_operation_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute/waiting
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/waiting"] = State(48, "/initialized/behaviour/operations/store_on_scripted/transformation_execute/waiting", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/waiting"] = State(47, "/initialized/behaviour/operations/store_on_scripted/transformation_execute/waiting", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute"] = State(49, "/initialized/behaviour/operations/store_on_scripted/process_execute", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute"] = State(48, "/initialized/behaviour/operations/store_on_scripted/process_execute", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/init
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/init"] = State(50, "/initialized/behaviour/operations/store_on_scripted/process_execute/init", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/init"] = State(49, "/initialized/behaviour/operations/store_on_scripted/process_execute/init", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/init"].setEnter(self._initialized_behaviour_operations_store_on_scripted_process_execute_init_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/executing
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/executing"] = State(51, "/initialized/behaviour/operations/store_on_scripted/process_execute/executing", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/executing"] = State(50, "/initialized/behaviour/operations/store_on_scripted/process_execute/executing", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/history
-        self.states["/initialized/behaviour/operations/store_on_scripted/history"] = DeepHistoryState(52, "/initialized/behaviour/operations/store_on_scripted/history", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/history"] = DeepHistoryState(51, "/initialized/behaviour/operations/store_on_scripted/history", self)
         
         # state /initialized/behaviour/operations/permission_modify
-        self.states["/initialized/behaviour/operations/permission_modify"] = State(53, "/initialized/behaviour/operations/permission_modify", self)
+        self.states["/initialized/behaviour/operations/permission_modify"] = State(52, "/initialized/behaviour/operations/permission_modify", self)
         self.states["/initialized/behaviour/operations/permission_modify"].setEnter(self._initialized_behaviour_operations_permission_modify_enter)
         
         # state /initialized/behaviour/operations/permission_owner
-        self.states["/initialized/behaviour/operations/permission_owner"] = State(54, "/initialized/behaviour/operations/permission_owner", self)
+        self.states["/initialized/behaviour/operations/permission_owner"] = State(53, "/initialized/behaviour/operations/permission_owner", self)
         self.states["/initialized/behaviour/operations/permission_owner"].setEnter(self._initialized_behaviour_operations_permission_owner_enter)
         
         # state /initialized/behaviour/operations/permission_group
-        self.states["/initialized/behaviour/operations/permission_group"] = State(55, "/initialized/behaviour/operations/permission_group", self)
+        self.states["/initialized/behaviour/operations/permission_group"] = State(54, "/initialized/behaviour/operations/permission_group", self)
         self.states["/initialized/behaviour/operations/permission_group"].setEnter(self._initialized_behaviour_operations_permission_group_enter)
         
         # state /initialized/behaviour/operations/group_create
-        self.states["/initialized/behaviour/operations/group_create"] = State(56, "/initialized/behaviour/operations/group_create", self)
+        self.states["/initialized/behaviour/operations/group_create"] = State(55, "/initialized/behaviour/operations/group_create", self)
         self.states["/initialized/behaviour/operations/group_create"].setEnter(self._initialized_behaviour_operations_group_create_enter)
         
         # state /initialized/behaviour/operations/group_delete
-        self.states["/initialized/behaviour/operations/group_delete"] = State(57, "/initialized/behaviour/operations/group_delete", self)
+        self.states["/initialized/behaviour/operations/group_delete"] = State(56, "/initialized/behaviour/operations/group_delete", self)
         self.states["/initialized/behaviour/operations/group_delete"].setEnter(self._initialized_behaviour_operations_group_delete_enter)
         
         # state /initialized/behaviour/operations/group_owner_add
-        self.states["/initialized/behaviour/operations/group_owner_add"] = State(58, "/initialized/behaviour/operations/group_owner_add", self)
+        self.states["/initialized/behaviour/operations/group_owner_add"] = State(57, "/initialized/behaviour/operations/group_owner_add", self)
         self.states["/initialized/behaviour/operations/group_owner_add"].setEnter(self._initialized_behaviour_operations_group_owner_add_enter)
         
         # state /initialized/behaviour/operations/group_owner_delete
-        self.states["/initialized/behaviour/operations/group_owner_delete"] = State(59, "/initialized/behaviour/operations/group_owner_delete", self)
+        self.states["/initialized/behaviour/operations/group_owner_delete"] = State(58, "/initialized/behaviour/operations/group_owner_delete", self)
         self.states["/initialized/behaviour/operations/group_owner_delete"].setEnter(self._initialized_behaviour_operations_group_owner_delete_enter)
         
         # state /initialized/behaviour/operations/group_join
-        self.states["/initialized/behaviour/operations/group_join"] = State(60, "/initialized/behaviour/operations/group_join", self)
+        self.states["/initialized/behaviour/operations/group_join"] = State(59, "/initialized/behaviour/operations/group_join", self)
         self.states["/initialized/behaviour/operations/group_join"].setEnter(self._initialized_behaviour_operations_group_join_enter)
         
         # state /initialized/behaviour/operations/group_kick
-        self.states["/initialized/behaviour/operations/group_kick"] = State(61, "/initialized/behaviour/operations/group_kick", self)
+        self.states["/initialized/behaviour/operations/group_kick"] = State(60, "/initialized/behaviour/operations/group_kick", self)
         self.states["/initialized/behaviour/operations/group_kick"].setEnter(self._initialized_behaviour_operations_group_kick_enter)
         
         # state /initialized/behaviour/operations/group_list
-        self.states["/initialized/behaviour/operations/group_list"] = State(62, "/initialized/behaviour/operations/group_list", self)
+        self.states["/initialized/behaviour/operations/group_list"] = State(61, "/initialized/behaviour/operations/group_list", self)
         self.states["/initialized/behaviour/operations/group_list"].setEnter(self._initialized_behaviour_operations_group_list_enter)
         
         # state /initialized/behaviour/operations/admin_promote
-        self.states["/initialized/behaviour/operations/admin_promote"] = State(63, "/initialized/behaviour/operations/admin_promote", self)
+        self.states["/initialized/behaviour/operations/admin_promote"] = State(62, "/initialized/behaviour/operations/admin_promote", self)
         self.states["/initialized/behaviour/operations/admin_promote"].setEnter(self._initialized_behaviour_operations_admin_promote_enter)
         
         # state /initialized/behaviour/operations/admin_demote
-        self.states["/initialized/behaviour/operations/admin_demote"] = State(64, "/initialized/behaviour/operations/admin_demote", self)
+        self.states["/initialized/behaviour/operations/admin_demote"] = State(63, "/initialized/behaviour/operations/admin_demote", self)
         self.states["/initialized/behaviour/operations/admin_demote"].setEnter(self._initialized_behaviour_operations_admin_demote_enter)
         
         # state /initialized/behaviour/operations/conformance_delete
-        self.states["/initialized/behaviour/operations/conformance_delete"] = State(65, "/initialized/behaviour/operations/conformance_delete", self)
+        self.states["/initialized/behaviour/operations/conformance_delete"] = State(64, "/initialized/behaviour/operations/conformance_delete", self)
         self.states["/initialized/behaviour/operations/conformance_delete"].setEnter(self._initialized_behaviour_operations_conformance_delete_enter)
         
         # state /initialized/behaviour/operations/conformance_add
-        self.states["/initialized/behaviour/operations/conformance_add"] = State(66, "/initialized/behaviour/operations/conformance_add", self)
+        self.states["/initialized/behaviour/operations/conformance_add"] = State(65, "/initialized/behaviour/operations/conformance_add", self)
         self.states["/initialized/behaviour/operations/conformance_add"].setEnter(self._initialized_behaviour_operations_conformance_add_enter)
         
         # state /initialized/behaviour/operations/folder_create
-        self.states["/initialized/behaviour/operations/folder_create"] = State(67, "/initialized/behaviour/operations/folder_create", self)
+        self.states["/initialized/behaviour/operations/folder_create"] = State(66, "/initialized/behaviour/operations/folder_create", self)
         self.states["/initialized/behaviour/operations/folder_create"].setEnter(self._initialized_behaviour_operations_folder_create_enter)
         
         # state /initialized/behaviour/operations/model_types
-        self.states["/initialized/behaviour/operations/model_types"] = State(68, "/initialized/behaviour/operations/model_types", self)
+        self.states["/initialized/behaviour/operations/model_types"] = State(67, "/initialized/behaviour/operations/model_types", self)
         self.states["/initialized/behaviour/operations/model_types"].setEnter(self._initialized_behaviour_operations_model_types_enter)
         
         # state /initialized/behaviour/operations/element_list
-        self.states["/initialized/behaviour/operations/element_list"] = State(69, "/initialized/behaviour/operations/element_list", self)
+        self.states["/initialized/behaviour/operations/element_list"] = State(68, "/initialized/behaviour/operations/element_list", self)
         self.states["/initialized/behaviour/operations/element_list"].setEnter(self._initialized_behaviour_operations_element_list_enter)
         
         # state /initialized/behaviour/operations/element_list_nice
-        self.states["/initialized/behaviour/operations/element_list_nice"] = State(70, "/initialized/behaviour/operations/element_list_nice", self)
+        self.states["/initialized/behaviour/operations/element_list_nice"] = State(69, "/initialized/behaviour/operations/element_list_nice", self)
         self.states["/initialized/behaviour/operations/element_list_nice"].setEnter(self._initialized_behaviour_operations_element_list_nice_enter)
         
         # state /initialized/behaviour/operations/types
-        self.states["/initialized/behaviour/operations/types"] = State(71, "/initialized/behaviour/operations/types", self)
+        self.states["/initialized/behaviour/operations/types"] = State(70, "/initialized/behaviour/operations/types", self)
         self.states["/initialized/behaviour/operations/types"].setEnter(self._initialized_behaviour_operations_types_enter)
         
         # state /initialized/behaviour/operations/types_full
-        self.states["/initialized/behaviour/operations/types_full"] = State(72, "/initialized/behaviour/operations/types_full", self)
+        self.states["/initialized/behaviour/operations/types_full"] = State(71, "/initialized/behaviour/operations/types_full", self)
         self.states["/initialized/behaviour/operations/types_full"].setEnter(self._initialized_behaviour_operations_types_full_enter)
         
         # state /initialized/behaviour/operations/read_info
-        self.states["/initialized/behaviour/operations/read_info"] = State(73, "/initialized/behaviour/operations/read_info", self)
+        self.states["/initialized/behaviour/operations/read_info"] = State(72, "/initialized/behaviour/operations/read_info", self)
         self.states["/initialized/behaviour/operations/read_info"].setEnter(self._initialized_behaviour_operations_read_info_enter)
         
         # state /initialized/behaviour/operations/read_attrs
-        self.states["/initialized/behaviour/operations/read_attrs"] = State(74, "/initialized/behaviour/operations/read_attrs", self)
+        self.states["/initialized/behaviour/operations/read_attrs"] = State(73, "/initialized/behaviour/operations/read_attrs", self)
         self.states["/initialized/behaviour/operations/read_attrs"].setEnter(self._initialized_behaviour_operations_read_attrs_enter)
         
         # state /initialized/behaviour/operations/read_defined_attrs
-        self.states["/initialized/behaviour/operations/read_defined_attrs"] = State(75, "/initialized/behaviour/operations/read_defined_attrs", self)
+        self.states["/initialized/behaviour/operations/read_defined_attrs"] = State(74, "/initialized/behaviour/operations/read_defined_attrs", self)
         self.states["/initialized/behaviour/operations/read_defined_attrs"].setEnter(self._initialized_behaviour_operations_read_defined_attrs_enter)
         
         # state /initialized/behaviour/operations/instantiate
-        self.states["/initialized/behaviour/operations/instantiate"] = State(76, "/initialized/behaviour/operations/instantiate", self)
+        self.states["/initialized/behaviour/operations/instantiate"] = State(75, "/initialized/behaviour/operations/instantiate", self)
         
         # state /initialized/behaviour/operations/instantiate/decide_node_or_edge
-        self.states["/initialized/behaviour/operations/instantiate/decide_node_or_edge"] = State(77, "/initialized/behaviour/operations/instantiate/decide_node_or_edge", self)
+        self.states["/initialized/behaviour/operations/instantiate/decide_node_or_edge"] = State(76, "/initialized/behaviour/operations/instantiate/decide_node_or_edge", self)
         
         # state /initialized/behaviour/operations/instantiate/created
-        self.states["/initialized/behaviour/operations/instantiate/created"] = State(78, "/initialized/behaviour/operations/instantiate/created", self)
+        self.states["/initialized/behaviour/operations/instantiate/created"] = State(77, "/initialized/behaviour/operations/instantiate/created", self)
         
         # state /initialized/behaviour/operations/delete_element
-        self.states["/initialized/behaviour/operations/delete_element"] = State(79, "/initialized/behaviour/operations/delete_element", self)
+        self.states["/initialized/behaviour/operations/delete_element"] = State(78, "/initialized/behaviour/operations/delete_element", self)
         self.states["/initialized/behaviour/operations/delete_element"].setEnter(self._initialized_behaviour_operations_delete_element_enter)
         
         # state /initialized/behaviour/operations/attr_assign
-        self.states["/initialized/behaviour/operations/attr_assign"] = State(80, "/initialized/behaviour/operations/attr_assign", self)
+        self.states["/initialized/behaviour/operations/attr_assign"] = State(79, "/initialized/behaviour/operations/attr_assign", self)
         self.states["/initialized/behaviour/operations/attr_assign"].setEnter(self._initialized_behaviour_operations_attr_assign_enter)
         
         # state /initialized/behaviour/operations/attr_assign_code
-        self.states["/initialized/behaviour/operations/attr_assign_code"] = State(81, "/initialized/behaviour/operations/attr_assign_code", self)
+        self.states["/initialized/behaviour/operations/attr_assign_code"] = State(80, "/initialized/behaviour/operations/attr_assign_code", self)
         self.states["/initialized/behaviour/operations/attr_assign_code"].setEnter(self._initialized_behaviour_operations_attr_assign_code_enter)
         
         # state /initialized/behaviour/operations/attr_assign_code/sent
-        self.states["/initialized/behaviour/operations/attr_assign_code/sent"] = State(82, "/initialized/behaviour/operations/attr_assign_code/sent", self)
+        self.states["/initialized/behaviour/operations/attr_assign_code/sent"] = State(81, "/initialized/behaviour/operations/attr_assign_code/sent", self)
         
         # state /initialized/behaviour/operations/attr_delete
-        self.states["/initialized/behaviour/operations/attr_delete"] = State(83, "/initialized/behaviour/operations/attr_delete", self)
+        self.states["/initialized/behaviour/operations/attr_delete"] = State(82, "/initialized/behaviour/operations/attr_delete", self)
         self.states["/initialized/behaviour/operations/attr_delete"].setEnter(self._initialized_behaviour_operations_attr_delete_enter)
         
         # state /initialized/behaviour/operations/attr_type
-        self.states["/initialized/behaviour/operations/attr_type"] = State(84, "/initialized/behaviour/operations/attr_type", self)
+        self.states["/initialized/behaviour/operations/attr_type"] = State(83, "/initialized/behaviour/operations/attr_type", self)
         self.states["/initialized/behaviour/operations/attr_type"].setEnter(self._initialized_behaviour_operations_attr_type_enter)
         
         # state /initialized/behaviour/operations/attr_name
-        self.states["/initialized/behaviour/operations/attr_name"] = State(85, "/initialized/behaviour/operations/attr_name", self)
+        self.states["/initialized/behaviour/operations/attr_name"] = State(84, "/initialized/behaviour/operations/attr_name", self)
         self.states["/initialized/behaviour/operations/attr_name"].setEnter(self._initialized_behaviour_operations_attr_name_enter)
         
         # state /initialized/behaviour/operations/attr_optional
-        self.states["/initialized/behaviour/operations/attr_optional"] = State(86, "/initialized/behaviour/operations/attr_optional", self)
+        self.states["/initialized/behaviour/operations/attr_optional"] = State(85, "/initialized/behaviour/operations/attr_optional", self)
         self.states["/initialized/behaviour/operations/attr_optional"].setEnter(self._initialized_behaviour_operations_attr_optional_enter)
         
         # state /initialized/behaviour/operations/read_outgoing
-        self.states["/initialized/behaviour/operations/read_outgoing"] = State(87, "/initialized/behaviour/operations/read_outgoing", self)
+        self.states["/initialized/behaviour/operations/read_outgoing"] = State(86, "/initialized/behaviour/operations/read_outgoing", self)
         self.states["/initialized/behaviour/operations/read_outgoing"].setEnter(self._initialized_behaviour_operations_read_outgoing_enter)
         
         # state /initialized/behaviour/operations/read_incoming
-        self.states["/initialized/behaviour/operations/read_incoming"] = State(88, "/initialized/behaviour/operations/read_incoming", self)
+        self.states["/initialized/behaviour/operations/read_incoming"] = State(87, "/initialized/behaviour/operations/read_incoming", self)
         self.states["/initialized/behaviour/operations/read_incoming"].setEnter(self._initialized_behaviour_operations_read_incoming_enter)
         
         # state /initialized/behaviour/operations/read_association_source
-        self.states["/initialized/behaviour/operations/read_association_source"] = State(89, "/initialized/behaviour/operations/read_association_source", self)
+        self.states["/initialized/behaviour/operations/read_association_source"] = State(88, "/initialized/behaviour/operations/read_association_source", self)
         self.states["/initialized/behaviour/operations/read_association_source"].setEnter(self._initialized_behaviour_operations_read_association_source_enter)
         
         # state /initialized/behaviour/operations/read_association_destination
-        self.states["/initialized/behaviour/operations/read_association_destination"] = State(90, "/initialized/behaviour/operations/read_association_destination", self)
+        self.states["/initialized/behaviour/operations/read_association_destination"] = State(89, "/initialized/behaviour/operations/read_association_destination", self)
         self.states["/initialized/behaviour/operations/read_association_destination"].setEnter(self._initialized_behaviour_operations_read_association_destination_enter)
         
         # state /initialized/behaviour/operations/connections_between
-        self.states["/initialized/behaviour/operations/connections_between"] = State(91, "/initialized/behaviour/operations/connections_between", self)
+        self.states["/initialized/behaviour/operations/connections_between"] = State(90, "/initialized/behaviour/operations/connections_between", self)
         self.states["/initialized/behaviour/operations/connections_between"].setEnter(self._initialized_behaviour_operations_connections_between_enter)
         
         # state /initialized/behaviour/operations/define_attribute
-        self.states["/initialized/behaviour/operations/define_attribute"] = State(92, "/initialized/behaviour/operations/define_attribute", self)
+        self.states["/initialized/behaviour/operations/define_attribute"] = State(91, "/initialized/behaviour/operations/define_attribute", self)
         self.states["/initialized/behaviour/operations/define_attribute"].setEnter(self._initialized_behaviour_operations_define_attribute_enter)
         
         # state /initialized/behaviour/operations/undefine_attribute
-        self.states["/initialized/behaviour/operations/undefine_attribute"] = State(93, "/initialized/behaviour/operations/undefine_attribute", self)
+        self.states["/initialized/behaviour/operations/undefine_attribute"] = State(92, "/initialized/behaviour/operations/undefine_attribute", self)
         self.states["/initialized/behaviour/operations/undefine_attribute"].setEnter(self._initialized_behaviour_operations_undefine_attribute_enter)
         
         # state /initialized/behaviour/operations/all_instances
-        self.states["/initialized/behaviour/operations/all_instances"] = State(94, "/initialized/behaviour/operations/all_instances", self)
+        self.states["/initialized/behaviour/operations/all_instances"] = State(93, "/initialized/behaviour/operations/all_instances", self)
         self.states["/initialized/behaviour/operations/all_instances"].setEnter(self._initialized_behaviour_operations_all_instances_enter)
         
         # state /initialized/behaviour/operations/exit_save
-        self.states["/initialized/behaviour/operations/exit_save"] = State(95, "/initialized/behaviour/operations/exit_save", self)
+        self.states["/initialized/behaviour/operations/exit_save"] = State(94, "/initialized/behaviour/operations/exit_save", self)
         self.states["/initialized/behaviour/operations/exit_save"].setEnter(self._initialized_behaviour_operations_exit_save_enter)
         
         # state /initialized/behaviour/operations/service_register
-        self.states["/initialized/behaviour/operations/service_register"] = State(96, "/initialized/behaviour/operations/service_register", self)
+        self.states["/initialized/behaviour/operations/service_register"] = State(95, "/initialized/behaviour/operations/service_register", self)
         self.states["/initialized/behaviour/operations/service_register"].setEnter(self._initialized_behaviour_operations_service_register_enter)
         
         # state /initialized/behaviour/operations/service_stop
-        self.states["/initialized/behaviour/operations/service_stop"] = State(97, "/initialized/behaviour/operations/service_stop", self)
+        self.states["/initialized/behaviour/operations/service_stop"] = State(96, "/initialized/behaviour/operations/service_stop", self)
         self.states["/initialized/behaviour/operations/service_stop"].setEnter(self._initialized_behaviour_operations_service_stop_enter)
         
         # state /initialized/behaviour/wait_for_action
-        self.states["/initialized/behaviour/wait_for_action"] = State(98, "/initialized/behaviour/wait_for_action", self)
+        self.states["/initialized/behaviour/wait_for_action"] = State(97, "/initialized/behaviour/wait_for_action", self)
         
         # state /initialized/behaviour/wait_for_action/disconnected
-        self.states["/initialized/behaviour/wait_for_action/disconnected"] = State(99, "/initialized/behaviour/wait_for_action/disconnected", self)
+        self.states["/initialized/behaviour/wait_for_action/disconnected"] = State(98, "/initialized/behaviour/wait_for_action/disconnected", self)
         
         # state /initialized/behaviour/wait_for_action/connected
-        self.states["/initialized/behaviour/wait_for_action/connected"] = State(100, "/initialized/behaviour/wait_for_action/connected", self)
+        self.states["/initialized/behaviour/wait_for_action/connected"] = State(99, "/initialized/behaviour/wait_for_action/connected", self)
+        self.states["/initialized/behaviour/wait_for_action/connected"].setEnter(self._initialized_behaviour_wait_for_action_connected_enter)
         
         # state /initialized/behaviour/wait_for_action/activity
-        self.states["/initialized/behaviour/wait_for_action/activity"] = State(101, "/initialized/behaviour/wait_for_action/activity", self)
+        self.states["/initialized/behaviour/wait_for_action/activity"] = State(100, "/initialized/behaviour/wait_for_action/activity", self)
         
         # state /initialized/behaviour/wait_for_action/activity/SC
-        self.states["/initialized/behaviour/wait_for_action/activity/SC"] = State(102, "/initialized/behaviour/wait_for_action/activity/SC", self)
+        self.states["/initialized/behaviour/wait_for_action/activity/SC"] = State(101, "/initialized/behaviour/wait_for_action/activity/SC", self)
         self.states["/initialized/behaviour/wait_for_action/activity/SC"].setEnter(self._initialized_behaviour_wait_for_action_activity_SC_enter)
         
         # state /initialized/behaviour/wait_for_action/activity/SC/forwarding
-        self.states["/initialized/behaviour/wait_for_action/activity/SC/forwarding"] = State(103, "/initialized/behaviour/wait_for_action/activity/SC/forwarding", self)
+        self.states["/initialized/behaviour/wait_for_action/activity/SC/forwarding"] = State(102, "/initialized/behaviour/wait_for_action/activity/SC/forwarding", self)
         
         # state /initialized/behaviour/wait_for_action/activity/OP
-        self.states["/initialized/behaviour/wait_for_action/activity/OP"] = State(104, "/initialized/behaviour/wait_for_action/activity/OP", self)
+        self.states["/initialized/behaviour/wait_for_action/activity/OP"] = State(103, "/initialized/behaviour/wait_for_action/activity/OP", self)
         self.states["/initialized/behaviour/wait_for_action/activity/OP"].setEnter(self._initialized_behaviour_wait_for_action_activity_OP_enter)
         
         # state /initialized/behaviour/wait_for_action/activity/OP/forwarding
-        self.states["/initialized/behaviour/wait_for_action/activity/OP/forwarding"] = State(105, "/initialized/behaviour/wait_for_action/activity/OP/forwarding", self)
+        self.states["/initialized/behaviour/wait_for_action/activity/OP/forwarding"] = State(104, "/initialized/behaviour/wait_for_action/activity/OP/forwarding", self)
         
         # state /initialized/behaviour/wait_for_action/megamodelling
-        self.states["/initialized/behaviour/wait_for_action/megamodelling"] = State(106, "/initialized/behaviour/wait_for_action/megamodelling", self)
+        self.states["/initialized/behaviour/wait_for_action/megamodelling"] = State(105, "/initialized/behaviour/wait_for_action/megamodelling", self)
         
         # state /initialized/behaviour/wait_for_action/service
-        self.states["/initialized/behaviour/wait_for_action/service"] = State(107, "/initialized/behaviour/wait_for_action/service", self)
+        self.states["/initialized/behaviour/wait_for_action/service"] = State(106, "/initialized/behaviour/wait_for_action/service", self)
         
         # state /initialized/behaviour/wait_for_action/modelling
-        self.states["/initialized/behaviour/wait_for_action/modelling"] = State(108, "/initialized/behaviour/wait_for_action/modelling", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling"] = State(107, "/initialized/behaviour/wait_for_action/modelling", self)
         
         # state /initialized/behaviour/wait_for_action/modelling/recognized
-        self.states["/initialized/behaviour/wait_for_action/modelling/recognized"] = State(109, "/initialized/behaviour/wait_for_action/modelling/recognized", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized"] = State(108, "/initialized/behaviour/wait_for_action/modelling/recognized", self)
         
         # state /initialized/behaviour/wait_for_action/modelling/recognized/manual
-        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"] = State(110, "/initialized/behaviour/wait_for_action/modelling/recognized/manual", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"] = State(109, "/initialized/behaviour/wait_for_action/modelling/recognized/manual", self)
         
         # state /initialized/behaviour/wait_for_action/modelling/recognized/scripted
-        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"] = State(111, "/initialized/behaviour/wait_for_action/modelling/recognized/scripted", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"] = State(110, "/initialized/behaviour/wait_for_action/modelling/recognized/scripted", self)
         
         # state /initialized/behaviour/wait_for_action/finished
-        self.states["/initialized/behaviour/wait_for_action/finished"] = State(112, "/initialized/behaviour/wait_for_action/finished", self)
+        self.states["/initialized/behaviour/wait_for_action/finished"] = State(111, "/initialized/behaviour/wait_for_action/finished", self)
         
         # state /initialized/behaviour/wait_for_action/history
-        self.states["/initialized/behaviour/wait_for_action/history"] = DeepHistoryState(113, "/initialized/behaviour/wait_for_action/history", self)
+        self.states["/initialized/behaviour/wait_for_action/history"] = DeepHistoryState(112, "/initialized/behaviour/wait_for_action/history", self)
         
         # state /initialized/behaviour/going_manual
-        self.states["/initialized/behaviour/going_manual"] = State(114, "/initialized/behaviour/going_manual", self)
+        self.states["/initialized/behaviour/going_manual"] = State(113, "/initialized/behaviour/going_manual", self)
         
         # state /initialized/behaviour/going_manual/init
-        self.states["/initialized/behaviour/going_manual/init"] = State(115, "/initialized/behaviour/going_manual/init", self)
+        self.states["/initialized/behaviour/going_manual/init"] = State(114, "/initialized/behaviour/going_manual/init", self)
         self.states["/initialized/behaviour/going_manual/init"].setEnter(self._initialized_behaviour_going_manual_init_enter)
         
         # state /initialized/behaviour/going_manual/search
-        self.states["/initialized/behaviour/going_manual/search"] = State(116, "/initialized/behaviour/going_manual/search", self)
+        self.states["/initialized/behaviour/going_manual/search"] = State(115, "/initialized/behaviour/going_manual/search", self)
         self.states["/initialized/behaviour/going_manual/search"].setEnter(self._initialized_behaviour_going_manual_search_enter)
         
         # state /initialized/behaviour/going_manual/OK
-        self.states["/initialized/behaviour/going_manual/OK"] = State(117, "/initialized/behaviour/going_manual/OK", self)
+        self.states["/initialized/behaviour/going_manual/OK"] = State(116, "/initialized/behaviour/going_manual/OK", self)
         self.states["/initialized/behaviour/going_manual/OK"].setEnter(self._initialized_behaviour_going_manual_OK_enter)
         
         # state /initialized/behaviour/going_scripted
-        self.states["/initialized/behaviour/going_scripted"] = State(118, "/initialized/behaviour/going_scripted", self)
+        self.states["/initialized/behaviour/going_scripted"] = State(117, "/initialized/behaviour/going_scripted", self)
         self.states["/initialized/behaviour/going_scripted"].setEnter(self._initialized_behaviour_going_scripted_enter)
         
         # state /initialized/behaviour/leaving_manual
-        self.states["/initialized/behaviour/leaving_manual"] = State(119, "/initialized/behaviour/leaving_manual", self)
+        self.states["/initialized/behaviour/leaving_manual"] = State(118, "/initialized/behaviour/leaving_manual", self)
         self.states["/initialized/behaviour/leaving_manual"].setEnter(self._initialized_behaviour_leaving_manual_enter)
         
         # state /initialized/queue
-        self.states["/initialized/queue"] = State(120, "/initialized/queue", self)
+        self.states["/initialized/queue"] = State(119, "/initialized/queue", self)
         
         # state /initialized/queue/queue
-        self.states["/initialized/queue/queue"] = State(121, "/initialized/queue/queue", self)
+        self.states["/initialized/queue/queue"] = State(120, "/initialized/queue/queue", self)
         
         # add children
         self.states[""].addChild(self.states["/init"])
@@ -590,7 +589,6 @@ class Modelverse(RuntimeClassBase):
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/model_overwrite"])
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/disconnect"])
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/user_logout"])
-        self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/user_delete"])
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/model_render"])
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/model_rendered"])
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/transformation_between"])
@@ -917,13 +915,6 @@ class Modelverse(RuntimeClassBase):
         _initialized_behaviour_operations_user_logout_0.setGuard(self._initialized_behaviour_operations_user_logout_0_guard)
         self.states["/initialized/behaviour/operations/user_logout"].addTransition(_initialized_behaviour_operations_user_logout_0)
         
-        # transition /initialized/behaviour/operations/user_delete
-        _initialized_behaviour_operations_user_delete_0 = Transition(self, self.states["/initialized/behaviour/operations/user_delete"], [self.states["/initialized/behaviour/wait_for_action/finished"]])
-        _initialized_behaviour_operations_user_delete_0.setAction(self._initialized_behaviour_operations_user_delete_0_exec)
-        _initialized_behaviour_operations_user_delete_0.setTrigger(None)
-        _initialized_behaviour_operations_user_delete_0.setGuard(self._initialized_behaviour_operations_user_delete_0_guard)
-        self.states["/initialized/behaviour/operations/user_delete"].addTransition(_initialized_behaviour_operations_user_delete_0)
-        
         # transition /initialized/behaviour/operations/model_render
         _initialized_behaviour_operations_model_render_0 = Transition(self, self.states["/initialized/behaviour/operations/model_render"], [self.states["/initialized/behaviour/wait_for_action/history"]])
         _initialized_behaviour_operations_model_render_0.setAction(self._initialized_behaviour_operations_model_render_0_exec)
@@ -1456,32 +1447,32 @@ class Modelverse(RuntimeClassBase):
         _initialized_behaviour_wait_for_action_megamodelling_10.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_10.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_10_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_10)
-        _initialized_behaviour_wait_for_action_megamodelling_11 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/user_delete"]])
+        _initialized_behaviour_wait_for_action_megamodelling_11 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/model_render"]])
         _initialized_behaviour_wait_for_action_megamodelling_11.setAction(self._initialized_behaviour_wait_for_action_megamodelling_11_exec)
         _initialized_behaviour_wait_for_action_megamodelling_11.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_11.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_11_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_11)
-        _initialized_behaviour_wait_for_action_megamodelling_12 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/model_render"]])
+        _initialized_behaviour_wait_for_action_megamodelling_12 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/model_rendered"]])
         _initialized_behaviour_wait_for_action_megamodelling_12.setAction(self._initialized_behaviour_wait_for_action_megamodelling_12_exec)
         _initialized_behaviour_wait_for_action_megamodelling_12.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_12.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_12_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_12)
-        _initialized_behaviour_wait_for_action_megamodelling_13 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/model_rendered"]])
+        _initialized_behaviour_wait_for_action_megamodelling_13 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_between"]])
         _initialized_behaviour_wait_for_action_megamodelling_13.setAction(self._initialized_behaviour_wait_for_action_megamodelling_13_exec)
         _initialized_behaviour_wait_for_action_megamodelling_13.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_13.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_13_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_13)
-        _initialized_behaviour_wait_for_action_megamodelling_14 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_between"]])
+        _initialized_behaviour_wait_for_action_megamodelling_14 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_signature"]])
         _initialized_behaviour_wait_for_action_megamodelling_14.setAction(self._initialized_behaviour_wait_for_action_megamodelling_14_exec)
         _initialized_behaviour_wait_for_action_megamodelling_14.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_14.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_14_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_14)
-        _initialized_behaviour_wait_for_action_megamodelling_15 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_signature"]])
+        _initialized_behaviour_wait_for_action_megamodelling_15 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/process_signature"]])
         _initialized_behaviour_wait_for_action_megamodelling_15.setAction(self._initialized_behaviour_wait_for_action_megamodelling_15_exec)
         _initialized_behaviour_wait_for_action_megamodelling_15.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_15.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_15_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_15)
-        _initialized_behaviour_wait_for_action_megamodelling_16 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/process_signature"]])
+        _initialized_behaviour_wait_for_action_megamodelling_16 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add"]])
         _initialized_behaviour_wait_for_action_megamodelling_16.setAction(self._initialized_behaviour_wait_for_action_megamodelling_16_exec)
         _initialized_behaviour_wait_for_action_megamodelling_16.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_16.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_16_guard)
@@ -1496,115 +1487,110 @@ class Modelverse(RuntimeClassBase):
         _initialized_behaviour_wait_for_action_megamodelling_18.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_18.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_18_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_18)
-        _initialized_behaviour_wait_for_action_megamodelling_19 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add"]])
+        _initialized_behaviour_wait_for_action_megamodelling_19 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute"]])
         _initialized_behaviour_wait_for_action_megamodelling_19.setAction(self._initialized_behaviour_wait_for_action_megamodelling_19_exec)
         _initialized_behaviour_wait_for_action_megamodelling_19.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_19.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_19_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_19)
-        _initialized_behaviour_wait_for_action_megamodelling_20 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute"]])
+        _initialized_behaviour_wait_for_action_megamodelling_20 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/store_on_scripted/process_execute"]])
         _initialized_behaviour_wait_for_action_megamodelling_20.setAction(self._initialized_behaviour_wait_for_action_megamodelling_20_exec)
         _initialized_behaviour_wait_for_action_megamodelling_20.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_20.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_20_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_20)
-        _initialized_behaviour_wait_for_action_megamodelling_21 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/store_on_scripted/process_execute"]])
+        _initialized_behaviour_wait_for_action_megamodelling_21 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/permission_modify"]])
         _initialized_behaviour_wait_for_action_megamodelling_21.setAction(self._initialized_behaviour_wait_for_action_megamodelling_21_exec)
         _initialized_behaviour_wait_for_action_megamodelling_21.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_21.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_21_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_21)
-        _initialized_behaviour_wait_for_action_megamodelling_22 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/permission_modify"]])
+        _initialized_behaviour_wait_for_action_megamodelling_22 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/permission_owner"]])
         _initialized_behaviour_wait_for_action_megamodelling_22.setAction(self._initialized_behaviour_wait_for_action_megamodelling_22_exec)
         _initialized_behaviour_wait_for_action_megamodelling_22.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_22.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_22_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_22)
-        _initialized_behaviour_wait_for_action_megamodelling_23 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/permission_owner"]])
+        _initialized_behaviour_wait_for_action_megamodelling_23 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/permission_group"]])
         _initialized_behaviour_wait_for_action_megamodelling_23.setAction(self._initialized_behaviour_wait_for_action_megamodelling_23_exec)
         _initialized_behaviour_wait_for_action_megamodelling_23.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_23.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_23_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_23)
-        _initialized_behaviour_wait_for_action_megamodelling_24 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/permission_group"]])
+        _initialized_behaviour_wait_for_action_megamodelling_24 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_create"]])
         _initialized_behaviour_wait_for_action_megamodelling_24.setAction(self._initialized_behaviour_wait_for_action_megamodelling_24_exec)
         _initialized_behaviour_wait_for_action_megamodelling_24.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_24.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_24_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_24)
-        _initialized_behaviour_wait_for_action_megamodelling_25 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_create"]])
+        _initialized_behaviour_wait_for_action_megamodelling_25 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_delete"]])
         _initialized_behaviour_wait_for_action_megamodelling_25.setAction(self._initialized_behaviour_wait_for_action_megamodelling_25_exec)
         _initialized_behaviour_wait_for_action_megamodelling_25.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_25.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_25_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_25)
-        _initialized_behaviour_wait_for_action_megamodelling_26 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_delete"]])
+        _initialized_behaviour_wait_for_action_megamodelling_26 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_owner_add"]])
         _initialized_behaviour_wait_for_action_megamodelling_26.setAction(self._initialized_behaviour_wait_for_action_megamodelling_26_exec)
         _initialized_behaviour_wait_for_action_megamodelling_26.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_26.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_26_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_26)
-        _initialized_behaviour_wait_for_action_megamodelling_27 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_owner_add"]])
+        _initialized_behaviour_wait_for_action_megamodelling_27 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_owner_delete"]])
         _initialized_behaviour_wait_for_action_megamodelling_27.setAction(self._initialized_behaviour_wait_for_action_megamodelling_27_exec)
         _initialized_behaviour_wait_for_action_megamodelling_27.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_27.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_27_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_27)
-        _initialized_behaviour_wait_for_action_megamodelling_28 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_owner_delete"]])
+        _initialized_behaviour_wait_for_action_megamodelling_28 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_join"]])
         _initialized_behaviour_wait_for_action_megamodelling_28.setAction(self._initialized_behaviour_wait_for_action_megamodelling_28_exec)
         _initialized_behaviour_wait_for_action_megamodelling_28.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_28.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_28_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_28)
-        _initialized_behaviour_wait_for_action_megamodelling_29 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_join"]])
+        _initialized_behaviour_wait_for_action_megamodelling_29 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_kick"]])
         _initialized_behaviour_wait_for_action_megamodelling_29.setAction(self._initialized_behaviour_wait_for_action_megamodelling_29_exec)
         _initialized_behaviour_wait_for_action_megamodelling_29.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_29.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_29_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_29)
-        _initialized_behaviour_wait_for_action_megamodelling_30 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_kick"]])
+        _initialized_behaviour_wait_for_action_megamodelling_30 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_list"]])
         _initialized_behaviour_wait_for_action_megamodelling_30.setAction(self._initialized_behaviour_wait_for_action_megamodelling_30_exec)
         _initialized_behaviour_wait_for_action_megamodelling_30.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_30.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_30_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_30)
-        _initialized_behaviour_wait_for_action_megamodelling_31 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_list"]])
+        _initialized_behaviour_wait_for_action_megamodelling_31 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/admin_promote"]])
         _initialized_behaviour_wait_for_action_megamodelling_31.setAction(self._initialized_behaviour_wait_for_action_megamodelling_31_exec)
         _initialized_behaviour_wait_for_action_megamodelling_31.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_31.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_31_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_31)
-        _initialized_behaviour_wait_for_action_megamodelling_32 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/admin_promote"]])
+        _initialized_behaviour_wait_for_action_megamodelling_32 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/admin_demote"]])
         _initialized_behaviour_wait_for_action_megamodelling_32.setAction(self._initialized_behaviour_wait_for_action_megamodelling_32_exec)
         _initialized_behaviour_wait_for_action_megamodelling_32.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_32.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_32_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_32)
-        _initialized_behaviour_wait_for_action_megamodelling_33 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/admin_demote"]])
+        _initialized_behaviour_wait_for_action_megamodelling_33 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/conformance_delete"]])
         _initialized_behaviour_wait_for_action_megamodelling_33.setAction(self._initialized_behaviour_wait_for_action_megamodelling_33_exec)
         _initialized_behaviour_wait_for_action_megamodelling_33.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_33.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_33_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_33)
-        _initialized_behaviour_wait_for_action_megamodelling_34 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/conformance_delete"]])
+        _initialized_behaviour_wait_for_action_megamodelling_34 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/conformance_add"]])
         _initialized_behaviour_wait_for_action_megamodelling_34.setAction(self._initialized_behaviour_wait_for_action_megamodelling_34_exec)
         _initialized_behaviour_wait_for_action_megamodelling_34.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_34.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_34_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_34)
-        _initialized_behaviour_wait_for_action_megamodelling_35 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/conformance_add"]])
+        _initialized_behaviour_wait_for_action_megamodelling_35 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/folder_create"]])
         _initialized_behaviour_wait_for_action_megamodelling_35.setAction(self._initialized_behaviour_wait_for_action_megamodelling_35_exec)
         _initialized_behaviour_wait_for_action_megamodelling_35.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_35.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_35_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_35)
-        _initialized_behaviour_wait_for_action_megamodelling_36 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/folder_create"]])
+        _initialized_behaviour_wait_for_action_megamodelling_36 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/model_types"]])
         _initialized_behaviour_wait_for_action_megamodelling_36.setAction(self._initialized_behaviour_wait_for_action_megamodelling_36_exec)
         _initialized_behaviour_wait_for_action_megamodelling_36.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_36.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_36_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_36)
-        _initialized_behaviour_wait_for_action_megamodelling_37 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/model_types"]])
+        _initialized_behaviour_wait_for_action_megamodelling_37 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/service_register"]])
         _initialized_behaviour_wait_for_action_megamodelling_37.setAction(self._initialized_behaviour_wait_for_action_megamodelling_37_exec)
         _initialized_behaviour_wait_for_action_megamodelling_37.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_37.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_37_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_37)
-        _initialized_behaviour_wait_for_action_megamodelling_38 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/service_register"]])
+        _initialized_behaviour_wait_for_action_megamodelling_38 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/wait_for_action/megamodelling"]])
         _initialized_behaviour_wait_for_action_megamodelling_38.setAction(self._initialized_behaviour_wait_for_action_megamodelling_38_exec)
         _initialized_behaviour_wait_for_action_megamodelling_38.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_38.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_38_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_38)
-        _initialized_behaviour_wait_for_action_megamodelling_39 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/wait_for_action/megamodelling"]])
-        _initialized_behaviour_wait_for_action_megamodelling_39.setAction(self._initialized_behaviour_wait_for_action_megamodelling_39_exec)
+        _initialized_behaviour_wait_for_action_megamodelling_39 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/going_manual"]])
         _initialized_behaviour_wait_for_action_megamodelling_39.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_39.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_39_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_39)
-        _initialized_behaviour_wait_for_action_megamodelling_40 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/going_manual"]])
-        _initialized_behaviour_wait_for_action_megamodelling_40.setTrigger(None)
-        _initialized_behaviour_wait_for_action_megamodelling_40.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_40_guard)
-        self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_40)
         
         # transition /initialized/behaviour/wait_for_action/service
         _initialized_behaviour_wait_for_action_service_0 = Transition(self, self.states["/initialized/behaviour/wait_for_action/service"], [self.states["/initialized/behaviour/wait_for_action/service"]])
@@ -1968,6 +1954,12 @@ class Modelverse(RuntimeClassBase):
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'http_client', 'HTTPClient']))
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'http_client', 'HTTPClient']))
     
+    def _initialized_behaviour_operations_login_wait_prompt_2_enter(self):
+        print("Wait for password query")
+    
+    def _initialized_behaviour_operations_login_wait_prompt_2_exit(self):
+        print("Exit password query")
+    
     def _initialized_behaviour_operations_model_list_enter(self):
         self.raiseInternalEvent(Event("request", None, [['model_list', self.parameters[0]]]))
     
@@ -2001,9 +1993,6 @@ class Modelverse(RuntimeClassBase):
     def _initialized_behaviour_operations_user_logout_enter(self):
         self.raiseInternalEvent(Event("request", None, ['user_logout']))
     
-    def _initialized_behaviour_operations_user_delete_enter(self):
-        self.raiseInternalEvent(Event("request", None, ['self-destruct']))
-    
     def _initialized_behaviour_operations_model_render_enter(self):
         self.raiseInternalEvent(Event("request", None, [['model_render', self.parameters[0], self.parameters[1], self.parameters[2]]]))
     
@@ -2151,6 +2140,9 @@ class Modelverse(RuntimeClassBase):
     def _initialized_behaviour_operations_service_stop_enter(self):
         self.raiseInternalEvent(Event("request", None, [['service_stop']]))
     
+    def _initialized_behaviour_wait_for_action_connected_enter(self):
+        print("CONNECTED ready for login")
+    
     def _initialized_behaviour_going_manual_init_enter(self):
         self.current_model = self.actions[0]["parameters"][0]
     
@@ -2512,6 +2504,7 @@ class Modelverse(RuntimeClassBase):
     
     def _initialized_behaviour_operations_login_wait_prompt_1_0_exec(self, parameters):
         self.raiseInternalEvent(Event("request", None, [self.parameters[0]]))
+        print("Got logon query")
     
     def _initialized_behaviour_operations_login_wait_prompt_1_0_guard(self, parameters):
         return self.expect_response('Log on as which user?', pop=True)
@@ -2638,12 +2631,6 @@ class Modelverse(RuntimeClassBase):
     def _initialized_behaviour_operations_user_logout_0_guard(self, parameters):
         return self.expect_response('Success')
     
-    def _initialized_behaviour_operations_user_delete_0_exec(self, parameters):
-        self.raiseInternalEvent(Event("result", None, [None]))
-    
-    def _initialized_behaviour_operations_user_delete_0_guard(self, parameters):
-        return self.expect_response('Success')
-    
     def _initialized_behaviour_operations_model_render_0_exec(self, parameters):
         self.raiseInternalEvent(Event("result", None, [json.loads(self.split_response(self.responses.pop(0))[0])]))
     
@@ -3052,6 +3039,7 @@ class Modelverse(RuntimeClassBase):
     
     def _initialized_behaviour_wait_for_action_connected_0_exec(self, parameters):
         self.load_action()
+        print("Processing login for " + str(self.parameters))
     
     def _initialized_behaviour_wait_for_action_connected_0_guard(self, parameters):
         return self.expect_action('login')
@@ -3169,178 +3157,172 @@ class Modelverse(RuntimeClassBase):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_11_guard(self, parameters):
-        return self.expect_action('user_delete')
+        return self.expect_action('model_render')
     
     def _initialized_behaviour_wait_for_action_megamodelling_12_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_12_guard(self, parameters):
-        return self.expect_action('model_render')
+        return self.expect_action('model_rendered')
     
     def _initialized_behaviour_wait_for_action_megamodelling_13_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_13_guard(self, parameters):
-        return self.expect_action('model_rendered')
+        return self.expect_action('transformation_between')
     
     def _initialized_behaviour_wait_for_action_megamodelling_14_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_14_guard(self, parameters):
-        return self.expect_action('transformation_between')
+        return self.expect_action('transformation_signature')
     
     def _initialized_behaviour_wait_for_action_megamodelling_15_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_15_guard(self, parameters):
-        return self.expect_action('transformation_signature')
+        return self.expect_action('process_signature')
     
     def _initialized_behaviour_wait_for_action_megamodelling_16_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_16_guard(self, parameters):
-        return self.expect_action('process_signature')
+        return self.expect_action('transformation_add_MT')
     
     def _initialized_behaviour_wait_for_action_megamodelling_17_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_17_guard(self, parameters):
-        return self.expect_action('transformation_add_MT')
+        return self.expect_action('transformation_add_AL')
     
     def _initialized_behaviour_wait_for_action_megamodelling_18_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_18_guard(self, parameters):
-        return self.expect_action('transformation_add_AL')
+        return self.expect_action('transformation_add_MANUAL')
     
     def _initialized_behaviour_wait_for_action_megamodelling_19_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_19_guard(self, parameters):
-        return self.expect_action('transformation_add_MANUAL')
+        return self.expect_action('transformation_execute')
     
     def _initialized_behaviour_wait_for_action_megamodelling_20_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_20_guard(self, parameters):
-        return self.expect_action('transformation_execute')
+        return self.expect_action('process_execute')
     
     def _initialized_behaviour_wait_for_action_megamodelling_21_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_21_guard(self, parameters):
-        return self.expect_action('process_execute')
+        return self.expect_action('permission_modify')
     
     def _initialized_behaviour_wait_for_action_megamodelling_22_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_22_guard(self, parameters):
-        return self.expect_action('permission_modify')
+        return self.expect_action('permission_owner')
     
     def _initialized_behaviour_wait_for_action_megamodelling_23_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_23_guard(self, parameters):
-        return self.expect_action('permission_owner')
+        return self.expect_action('permission_group')
     
     def _initialized_behaviour_wait_for_action_megamodelling_24_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_24_guard(self, parameters):
-        return self.expect_action('permission_group')
+        return self.expect_action('group_create')
     
     def _initialized_behaviour_wait_for_action_megamodelling_25_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_25_guard(self, parameters):
-        return self.expect_action('group_create')
+        return self.expect_action('group_delete')
     
     def _initialized_behaviour_wait_for_action_megamodelling_26_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_26_guard(self, parameters):
-        return self.expect_action('group_delete')
+        return self.expect_action('group_owner_add')
     
     def _initialized_behaviour_wait_for_action_megamodelling_27_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_27_guard(self, parameters):
-        return self.expect_action('group_owner_add')
+        return self.expect_action('group_owner_delete')
     
     def _initialized_behaviour_wait_for_action_megamodelling_28_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_28_guard(self, parameters):
-        return self.expect_action('group_owner_delete')
+        return self.expect_action('group_join')
     
     def _initialized_behaviour_wait_for_action_megamodelling_29_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_29_guard(self, parameters):
-        return self.expect_action('group_join')
+        return self.expect_action('group_kick')
     
     def _initialized_behaviour_wait_for_action_megamodelling_30_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_30_guard(self, parameters):
-        return self.expect_action('group_kick')
+        return self.expect_action('group_list')
     
     def _initialized_behaviour_wait_for_action_megamodelling_31_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_31_guard(self, parameters):
-        return self.expect_action('group_list')
+        return self.expect_action('admin_promote')
     
     def _initialized_behaviour_wait_for_action_megamodelling_32_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_32_guard(self, parameters):
-        return self.expect_action('admin_promote')
+        return self.expect_action('admin_demote')
     
     def _initialized_behaviour_wait_for_action_megamodelling_33_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_33_guard(self, parameters):
-        return self.expect_action('admin_demote')
+        return self.expect_action('conformance_delete')
     
     def _initialized_behaviour_wait_for_action_megamodelling_34_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_34_guard(self, parameters):
-        return self.expect_action('conformance_delete')
+        return self.expect_action('conformance_add')
     
     def _initialized_behaviour_wait_for_action_megamodelling_35_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_35_guard(self, parameters):
-        return self.expect_action('conformance_add')
+        return self.expect_action('folder_create')
     
     def _initialized_behaviour_wait_for_action_megamodelling_36_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_36_guard(self, parameters):
-        return self.expect_action('folder_create')
+        return self.expect_action('model_types')
     
     def _initialized_behaviour_wait_for_action_megamodelling_37_exec(self, parameters):
         self.load_action()
     
     def _initialized_behaviour_wait_for_action_megamodelling_37_guard(self, parameters):
-        return self.expect_action('model_types')
-    
-    def _initialized_behaviour_wait_for_action_megamodelling_38_exec(self, parameters):
-        self.load_action()
-    
-    def _initialized_behaviour_wait_for_action_megamodelling_38_guard(self, parameters):
         return self.expect_action('service_register')
     
-    def _initialized_behaviour_wait_for_action_megamodelling_39_exec(self, parameters):
+    def _initialized_behaviour_wait_for_action_megamodelling_38_exec(self, parameters):
         self.raiseInternalEvent(Event("result", None, [None]))
         self.load_action()
     
-    def _initialized_behaviour_wait_for_action_megamodelling_39_guard(self, parameters):
+    def _initialized_behaviour_wait_for_action_megamodelling_38_guard(self, parameters):
         return self.expect_action('exit_save')
     
-    def _initialized_behaviour_wait_for_action_megamodelling_40_guard(self, parameters):
+    def _initialized_behaviour_wait_for_action_megamodelling_39_guard(self, parameters):
         return self.expect_action(['element_list', 'element_list_nice', 'types', 'types_full', 'read_info', 'read_attrs', 'read_defined_attrs', 'instantiate', 'delete_element', 'attr_assign', 'attr_assign_code', 'attr_delete', 'read_outgoing', 'read_incoming', 'read_association_source', 'read_association_destination', 'connections_between', 'define_attribute', 'undefine_attribute', 'all_instances', 'attr_optional', 'attr_type', 'attr_name'])
     
     def _initialized_behaviour_wait_for_action_service_0_exec(self, parameters):