diff --git a/package-lock.json b/package-lock.json
index cdb64c940fcc90e54bfa3ee7be7aa2f2d3d8126e..f8974240ac0f15cf72d7d2e298cfa487ddf60a23 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -916,9 +916,9 @@
       }
     },
     "@openapitools/openapi-generator-cli": {
-      "version": "0.0.17-4.0.0",
-      "resolved": "https://packages.dlcm.ch/repository/npm-group/@openapitools/openapi-generator-cli/-/openapi-generator-cli-0.0.17-4.0.0.tgz",
-      "integrity": "sha512-cxyeC63OR+DYGM6CUFP2AT9EfGn3hIbf/vYIRHlqvd/7rdtOQNFLP3uRHClutXyZgCFRwsvmst9u1/oKo1INxw==",
+      "version": "0.0.19-4.0.0",
+      "resolved": "https://packages.dlcm.ch/repository/npm-group/@openapitools/openapi-generator-cli/-/openapi-generator-cli-0.0.19-4.0.0.tgz",
+      "integrity": "sha512-eGmA+eIB/DXtJ8ztAyL/NBybdp14Cfcehu/gvu3oUznbsvF29lQi93LSDc0U3qIoovt1sL/XgTz6/dzukSYJWA==",
       "dev": true
     },
     "@schematics/angular": {
@@ -4183,7 +4183,7 @@
       "dependencies": {
         "is-buffer": {
           "version": "2.0.3",
-          "resolved": "https://packages.dlcm.ch/repository/npm-group/is-buffer/-/is-buffer-2.0.3.tgz",
+          "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
           "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==",
           "dev": true
         }
diff --git a/src/app/features/admin/admin-routing.module.ts b/src/app/features/admin/admin-routing.module.ts
index ee474d2e367ee69a23abb30268c0e4767e01dc24..0ebd7f8cb4f9a27d477fc207e861fde7f8f18370 100644
--- a/src/app/features/admin/admin-routing.module.ts
+++ b/src/app/features/admin/admin-routing.module.ts
@@ -1,56 +1,15 @@
-import {AdminFundingAgenciesCreateRoutable} from "@admin/components/routables/admin-funding-agencies-create/admin-funding-agencies-create.routable";
-import {AdminFundingAgenciesEditRoutable} from "@admin/components/routables/admin-funding-agencies-edit/admin-funding-agencies-edit.routable";
 import {NgModule} from "@angular/core";
 import {
   RouterModule,
   Routes,
 } from "@angular/router";
-import {AdminFundingAgenciesDetailRoutable} from "@app/features/admin/components/routables/admin-funding-agencies-detail/admin-funding-agencies-detail.routable";
-import {AdminFundingAgenciesListRoutable} from "@app/features/admin/components/routables/admin-funding-agencies-list/admin-funding-agencies-list-routable.component";
 import {AdminHomeRoutable} from "@app/features/admin/components/routables/admin-home/admin-home.routable";
-import {AdminInstitutionCreateRoutable} from "@app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable";
-import {AdminInstitutionDetailRoutable} from "@app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable";
-import {AdminInstitutionEditRoutable} from "@app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable";
-import {AdminInstitutionListRoutable} from "@app/features/admin/components/routables/admin-institution-list/admin-institution-list-routable.component";
-import {AdminLicenseCreateRoutable} from "@app/features/admin/components/routables/admin-license-create/admin-license-create.routable";
-import {AdminLicenseDetailRoutable} from "@app/features/admin/components/routables/admin-license-detail/admin-license-detail.routable";
-import {AdminLicenseEditRoutable} from "@app/features/admin/components/routables/admin-license-edit/admin-license-edit.routable";
-import {AdminLicenseListRoutable} from "@app/features/admin/components/routables/admin-license-list/admin-license-list.routable";
-import {AdminOAuth2ClientCreateRoutable} from "@app/features/admin/components/routables/admin-oauth2-client-create/admin-oauth2-client-create-routable";
-import {AdminOAuth2ClientDetailRoutable} from "@app/features/admin/components/routables/admin-oauth2-client-detail/admin-oauth2-client-detail.routable";
-import {AdminOAuth2ClientEditRoutable} from "@app/features/admin/components/routables/admin-oauth2-client-edit/admin-oauth2-client-edit-routable";
-import {AdminOAuth2ClientListRoutable} from "@app/features/admin/components/routables/admin-oauth2-client-list/admin-oauth2-client-list-routable.component";
-import {AdminOrgunitCreateRoutable} from "@app/features/admin/components/routables/admin-orgunit-create/admin-orgunit-create.routable";
-import {AdminOrgunitDetailRoutable} from "@app/features/admin/components/routables/admin-orgunit-detail/admin-orgunit-detail.routable";
-import {AdminOrgunitEditRoutable} from "@app/features/admin/components/routables/admin-orgunit-edit/admin-orgunit-edit.routable";
-import {AdminOrgunitListRoutable} from "@app/features/admin/components/routables/admin-orgunit-list/admin-orgunit-list.routable";
-import {AdminPersonCreateRoutable} from "@app/features/admin/components/routables/admin-person-create/admin-person-create.routable";
-import {AdminPersonDetailRoutable} from "@app/features/admin/components/routables/admin-person-detail/admin-person-detail.routable";
-import {AdminPersonEditRoutable} from "@app/features/admin/components/routables/admin-person-edit/admin-person-edit.routable";
-import {AdminPersonListRoutable} from "@app/features/admin/components/routables/admin-person-list/admin-person-list-routable";
-import {AdminPreservationPolicyCreateRoutable} from "@app/features/admin/components/routables/admin-preservation-policy-create/admin-preservation-policy-create.routable";
-import {AdminPreservationPolicyDetailRoutable} from "@app/features/admin/components/routables/admin-preservation-policy-detail/admin-preservation-policy-detail.routable";
-import {AdminPreservationPolicyEditRoutable} from "@app/features/admin/components/routables/admin-preservation-policy-edit/admin-preservation-policy-edit.routable";
-import {AdminPreservationPolicyListRoutable} from "@app/features/admin/components/routables/admin-preservation-policy-list/admin-preservation-policy-list.routable";
-import {AdminRoleCreateRoutable} from "@app/features/admin/components/routables/admin-role-create/admin-role-create.routable";
-import {AdminRoleDetailRoutable} from "@app/features/admin/components/routables/admin-role-detail/admin-role-detail.routable";
-import {AdminRoleEditRoutable} from "@app/features/admin/components/routables/admin-role-edit/admin-role-edit.routable";
-import {AdminRoleListRoutable} from "@app/features/admin/components/routables/admin-role-list/admin-role-list.routable";
-import {AdminSubmissionPolicyCreateRoutable} from "@app/features/admin/components/routables/admin-submission-policy-create/admin-submission-policy-create.routable";
-import {AdminSubmissionPolicyDetailRoutable} from "@app/features/admin/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable";
-import {AdminSubmissionPolicyEditRoutable} from "@app/features/admin/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable";
-import {AdminSubmissionPolicyListRoutable} from "@app/features/admin/components/routables/admin-submission-policy-list/admin-submission-policy-list.routable";
-import {AdminUserCreateRoutable} from "@app/features/admin/components/routables/admin-user-create/admin-user-create.routable";
-import {AdminUserDetailRoutable} from "@app/features/admin/components/routables/admin-user-detail/admin-user-detail.routable";
-import {AdminUserEditRoutable} from "@app/features/admin/components/routables/admin-user-edit/admin-user-edit.routable";
-import {AdminUserListRoutable} from "@app/features/admin/components/routables/admin-user-list/admin-user-list-routable";
-import {ApplicationRolePermissionEnum} from "@app/shared/enums/application-role-permission.enum";
 import {
   AdminRoutesEnum,
   AppRoutesEnum,
 } from "@app/shared/enums/routes.enum";
 import {ApplicationRoleGuardService} from "@app/shared/guards/application-role-guard.service";
-import {CanDeactivateGuard} from "@shared/services/can-deactivate-guard.service";
+import {AuthGuardService} from "@shared/guards/auth-guard.service";
 import {TRANSLATE} from "solidify-frontend";
 
 const routes: Routes = [
@@ -59,311 +18,95 @@ const routes: Routes = [
     component: AdminHomeRoutable,
     data: {},
   },
-  {
-    path: AdminRoutesEnum.submissionPolicy,
-    component: AdminSubmissionPolicyListRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.submissionPolicy.list"),
-    },
-  },
-  {
-    path: AdminRoutesEnum.submissionPolicy + AppRoutesEnum.separator + AdminRoutesEnum.submissionPolicyDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminSubmissionPolicyDetailRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.submissionPolicy.detail"),
-    },
-  },
-  {
-    path: AdminRoutesEnum.submissionPolicy + AppRoutesEnum.separator + AdminRoutesEnum.submissionPolicyEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminSubmissionPolicyEditRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.submissionPolicy.edit"),
-    },
-    canDeactivate: [CanDeactivateGuard],
-  },
-  {
-    path: AdminRoutesEnum.submissionPolicy + AppRoutesEnum.separator + AdminRoutesEnum.submissionPolicyCreate,
-    component: AdminSubmissionPolicyCreateRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.submissionPolicy.create"),
-    },
-    canDeactivate: [CanDeactivateGuard],
-  },
-  {
-    path: AdminRoutesEnum.license + AppRoutesEnum.separator + AdminRoutesEnum.licenseCreate,
-    component: AdminLicenseCreateRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.license.create"),
-    },
-    canDeactivate: [CanDeactivateGuard],
-  },
-  {
-    path: AdminRoutesEnum.license + AppRoutesEnum.separator + AdminRoutesEnum.licenseEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminLicenseEditRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.license.edit"),
-    },
-    canDeactivate: [CanDeactivateGuard],
-  },
-  {
-    path: AdminRoutesEnum.license + AppRoutesEnum.separator + AdminRoutesEnum.licenseDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminLicenseDetailRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.license.detail"),
-    },
-  },
   {
     path: AdminRoutesEnum.license,
-    component: AdminLicenseListRoutable,
+    // @ts-ignore Dynamic import
+    loadChildren: () => import("./license/license.module").then(m => m.AdminLicenseModule),
     data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.license.list"),
+      breadcrumb: TRANSLATE("breadcrumb.admin.license.root"),
     },
-  },
-  {
-    path: AdminRoutesEnum.preservationPolicy,
-    component: AdminPreservationPolicyListRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.preservationPolicy.list"),
-    },
-  },
-  {
-    path: AdminRoutesEnum.preservationPolicy + AppRoutesEnum.separator + AdminRoutesEnum.preservationPolicyDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminPreservationPolicyDetailRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.preservationPolicy.detail"),
-    },
-  },
-  {
-    path: AdminRoutesEnum.preservationPolicy + AppRoutesEnum.separator + AdminRoutesEnum.preservationPolicyCreate,
-    component: AdminPreservationPolicyCreateRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.preservationPolicy.create"),
-    },
-    canDeactivate: [CanDeactivateGuard],
-  },
-  {
-    path: AdminRoutesEnum.preservationPolicy + AppRoutesEnum.separator + AdminRoutesEnum.preservationPolicyEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminPreservationPolicyEditRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.preservationPolicy.edit"),
-    },
-    canDeactivate: [CanDeactivateGuard],
-  },
-  {
-    path: AdminRoutesEnum.organizationalUnit,
-    component: AdminOrgunitListRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.organizationalUnit.list"),
-    },
-  },
-  {
-    path: AdminRoutesEnum.organizationalUnit + AppRoutesEnum.separator + AdminRoutesEnum.organizationalUnitDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminOrgunitDetailRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.organizationalUnit.detail"),
-    },
-  },
-  {
-    path: AdminRoutesEnum.organizationalUnit + AppRoutesEnum.separator + AdminRoutesEnum.organizationalUnitEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminOrgunitEditRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.organizationalUnit.edit"),
-    },
-    canDeactivate: [CanDeactivateGuard],
-  },
-  {
-    path: AdminRoutesEnum.organizationalUnit + AppRoutesEnum.separator + AdminRoutesEnum.organizationalUnitCreate,
-    component: AdminOrgunitCreateRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.organizationalUnit.create"),
-    },
-    canDeactivate: [CanDeactivateGuard],
+    canActivate: [AuthGuardService, ApplicationRoleGuardService],
   },
   {
     path: AdminRoutesEnum.institution,
-    component: AdminInstitutionListRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.institution.list"),
-    },
-  },
-  {
-    path: AdminRoutesEnum.institution + AppRoutesEnum.separator + AdminRoutesEnum.institutionDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminInstitutionDetailRoutable,
+    // @ts-ignore Dynamic import
+    loadChildren: () => import("./institution/institution.module").then(m => m.AdminInstitutionModule),
     data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.institution.detail"),
+      breadcrumb: TRANSLATE("breadcrumb.admin.institution.root"),
     },
+    canActivate: [AuthGuardService, ApplicationRoleGuardService],
   },
   {
-    path: AdminRoutesEnum.institution + AppRoutesEnum.separator + AdminRoutesEnum.institutionCreate,
-    component: AdminInstitutionCreateRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.institution.create"),
-    },
-    canDeactivate: [CanDeactivateGuard],
-  },
-  {
-    path: AdminRoutesEnum.institution + AppRoutesEnum.separator + AdminRoutesEnum.institutionEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminInstitutionEditRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.institution.edit"),
-    },
-    canDeactivate: [CanDeactivateGuard],
-  },
-  {
-    path: AdminRoutesEnum.user,
-    component: AdminUserListRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.user.list"),
-      permission: ApplicationRolePermissionEnum.rootPermission,
-    },
-    canActivate: [ApplicationRoleGuardService],
-  },
-  {
-    path: AdminRoutesEnum.user + AppRoutesEnum.separator + AdminRoutesEnum.userDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminUserDetailRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.user.detail"),
-      permission: ApplicationRolePermissionEnum.rootPermission,
-    },
-  },
-  {
-    path: AdminRoutesEnum.user + AppRoutesEnum.separator + AdminRoutesEnum.userCreate,
-    component: AdminUserCreateRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.user.create"),
-    },
-    canDeactivate: [CanDeactivateGuard],
-  },
-  {
-    path: AdminRoutesEnum.user + AppRoutesEnum.separator + AdminRoutesEnum.userEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminUserEditRoutable,
+    path: AdminRoutesEnum.fundingAgencies,
+    // @ts-ignore Dynamic import
+    loadChildren: () => import("./funding-agencies/funding-agencies.module").then(m => m.AdminFundingAgenciesModule),
     data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.user.edit"),
+      breadcrumb: TRANSLATE("breadcrumb.admin.funding-agencies.root"),
     },
-    canDeactivate: [CanDeactivateGuard],
+    canActivate: [AuthGuardService, ApplicationRoleGuardService],
   },
   {
     path: AdminRoutesEnum.oauth2client,
-    component: AdminOAuth2ClientListRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.oauth2Client.list"),
-    },
-  },
-  {
-    path: AdminRoutesEnum.oauth2client + AppRoutesEnum.separator + AdminRoutesEnum.oauth2clientCreate,
-    component: AdminOAuth2ClientCreateRoutable,
+    // @ts-ignore Dynamic import
+    loadChildren: () => import("./oauth2-client/oauth2-client.module").then(m => m.AdminOauth2ClientModule),
     data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.oauth2Client.create"),
+      breadcrumb: TRANSLATE("breadcrumb.admin.oauth2Client.root"),
     },
-    canDeactivate: [CanDeactivateGuard],
+    canActivate: [AuthGuardService, ApplicationRoleGuardService],
   },
   {
-    path: AdminRoutesEnum.oauth2client + AppRoutesEnum.separator + AdminRoutesEnum.oauth2clientDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminOAuth2ClientDetailRoutable,
+    path: AdminRoutesEnum.organizationalUnit,
+    // @ts-ignore Dynamic import
+    loadChildren: () => import("./orgunit/orgunit.module").then(m => m.AdminOrgunitModule),
     data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.oauth2Client.detail"),
+      breadcrumb: TRANSLATE("breadcrumb.admin.organizationalUnit.root"),
     },
+    canActivate: [AuthGuardService, ApplicationRoleGuardService],
   },
   {
-    path: AdminRoutesEnum.oauth2client + AppRoutesEnum.separator + AdminRoutesEnum.oauth2clientEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminOAuth2ClientEditRoutable,
+    path: AdminRoutesEnum.submissionPolicy,
+    // @ts-ignore Dynamic import
+    loadChildren: () => import("./submission-policy/submission-policy.module").then(m => m.AdminSubmissionPolicyModule),
     data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.oauth2Client.edit"),
+      breadcrumb: TRANSLATE("breadcrumb.admin.submissionPolicy.root"),
     },
-    canDeactivate: [CanDeactivateGuard],
+    canActivate: [AuthGuardService, ApplicationRoleGuardService],
   },
   {
     path: AdminRoutesEnum.person,
-    component: AdminPersonListRoutable,
+    // @ts-ignore Dynamic import
+    loadChildren: () => import("./person/person.module").then(m => m.AdminPersonModule),
     data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.person.list"),
-      permission: ApplicationRolePermissionEnum.rootPermission,
+      breadcrumb: TRANSLATE("breadcrumb.admin.person.root"),
     },
-    canActivate: [ApplicationRoleGuardService],
+    canActivate: [AuthGuardService, ApplicationRoleGuardService],
   },
   {
-    path: AdminRoutesEnum.person + AppRoutesEnum.separator + AdminRoutesEnum.personDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminPersonDetailRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.person.detail"),
-      permission: ApplicationRolePermissionEnum.rootPermission,
-    },
-  },
-  {
-    path: AdminRoutesEnum.person + AppRoutesEnum.separator + AdminRoutesEnum.personCreate,
-    component: AdminPersonCreateRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.person.create"),
-    },
-    canDeactivate: [CanDeactivateGuard],
-  },
-  {
-    path: AdminRoutesEnum.person + AppRoutesEnum.separator + AdminRoutesEnum.personEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminPersonEditRoutable,
+    path: AdminRoutesEnum.preservationPolicy,
+    // @ts-ignore Dynamic import
+    loadChildren: () => import("./preservation-policy/preservation-policy.module").then(m => m.AdminPreservationPolicyModule),
     data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.person.edit"),
+      breadcrumb: TRANSLATE("breadcrumb.admin.preservationPolicy.root"),
     },
-    canDeactivate: [CanDeactivateGuard],
+    canActivate: [AuthGuardService, ApplicationRoleGuardService],
   },
   {
     path: AdminRoutesEnum.role,
-    component: AdminRoleListRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.role.list"),
-    },
-  },
-  {
-    path: AdminRoutesEnum.role + AppRoutesEnum.separator + AdminRoutesEnum.roleCreate,
-    component: AdminRoleCreateRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.role.create"),
-    },
-    canDeactivate: [CanDeactivateGuard],
-  },
-  {
-    path: AdminRoutesEnum.role + AppRoutesEnum.separator + AdminRoutesEnum.roleDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminRoleDetailRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.role.detail"),
-    },
-  },
-  {
-    path: AdminRoutesEnum.role + AppRoutesEnum.separator + AdminRoutesEnum.roleEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminRoleEditRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.role.edit"),
-    },
-    canDeactivate: [CanDeactivateGuard],
-  },
-  {
-    path: AdminRoutesEnum.fundingAgencies,
-    component: AdminFundingAgenciesListRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.funding-agencies.list"),
-    },
-  },
-  {
-    path: AdminRoutesEnum.fundingAgencies + AppRoutesEnum.separator + AdminRoutesEnum.fundingAgenciesDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminFundingAgenciesDetailRoutable,
-    data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.funding-agencies.detail"),
-    },
-  },
-  {
-    path: AdminRoutesEnum.fundingAgencies + AppRoutesEnum.separator + AdminRoutesEnum.fundingAgenciesEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminFundingAgenciesEditRoutable,
+    // @ts-ignore Dynamic import
+    loadChildren: () => import("./role/role.module").then(m => m.AdminRoleModule),
     data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.funding-agencies.detail"),
+      breadcrumb: TRANSLATE("breadcrumb.admin.role.root"),
     },
-    canDeactivate: [CanDeactivateGuard],
+    canActivate: [AuthGuardService, ApplicationRoleGuardService],
   },
   {
-    path: AdminRoutesEnum.fundingAgencies + AppRoutesEnum.separator + AdminRoutesEnum.fundingAgenciesCreate,
-    component: AdminFundingAgenciesCreateRoutable,
+    path: AdminRoutesEnum.user,
+    // @ts-ignore Dynamic import
+    loadChildren: () => import("./user/user.module").then(m => m.AdminUserModule),
     data: {
-      breadcrumb: TRANSLATE("breadcrumb.admin.funding-agencies.create"),
+      breadcrumb: TRANSLATE("breadcrumb.admin.user.root"),
     },
-    canDeactivate: [CanDeactivateGuard],
+    canActivate: [AuthGuardService, ApplicationRoleGuardService],
   },
 ];
 
diff --git a/src/app/features/admin/admin.module.ts b/src/app/features/admin/admin.module.ts
index de2cded8183138efcdbf0dee8909f2aec51b106e..22ad0e4bd22d931ddab79d8bacf2cfa4f35483b8 100644
--- a/src/app/features/admin/admin.module.ts
+++ b/src/app/features/admin/admin.module.ts
@@ -1,152 +1,30 @@
-import {AdminFundingAgencyDeleteDialog} from "@admin/components/dialogs/admin-funding-agency-delete/admin-funding-agency-delete.dialog";
-import {AdminFundingAgenciesCreateRoutable} from "@admin/components/routables/admin-funding-agencies-create/admin-funding-agencies-create.routable";
-import {AdminFundingAgenciesEditRoutable} from "@admin/components/routables/admin-funding-agencies-edit/admin-funding-agencies-edit.routable";
-import {AdminFundingAgenciesOrganizationalUnitState} from "@admin/stores/funding-agency/organizational-unit/admin-organizational-unit-preservation-policy.state";
+import {AdminFundingAgenciesState} from "@admin/funding-agencies/stores/admin-funding-agencies.state";
+import {AdminFundingAgenciesOrganizationalUnitState} from "@admin/funding-agencies/stores/organizational-unit/admin-organizational-unit-preservation-policy.state";
+import {AdminInstitutionState} from "@admin/institution/stores/admin-institution.state";
+import {AdminLicenseState} from "@admin/license/stores/admin-license.state";
+import {AdminOAuth2ClientState} from "@admin/oauth2-client/stores/admin-oauth2-client.state";
+import {AdminOrganizationalUnitState} from "@admin/orgunit/stores/admin-organizational-unit.state";
+import {AdminPersonState} from "@admin/person/stores/admin-person.state";
+import {AdminPreservationPolicyState} from "@admin/preservation-policy/stores/admin-preservation-policy.state";
+import {AdminRoleState} from "@admin/role/stores/admin-role.state";
+import {AdminSubmissionPolicyState} from "@admin/submission-policy/stores/admin-submission-policy.state";
+import {AdminUserState} from "@admin/user/stores/admin-user.state";
 import {NgModule} from "@angular/core";
 import {AdminRoutingModule} from "@app/features/admin/admin-routing.module";
-import {AdminInstitutionDeleteDialog} from "@app/features/admin/components/dialogs/admin-institution-delete/admin-institution-delete.dialog";
-import {AdminLicenseDeleteDialog} from "@app/features/admin/components/dialogs/admin-license-delete/admin-license-delete.dialog";
-import {AdminOauth2ClientDeleteDialog} from "@app/features/admin/components/dialogs/admin-oauth2-client-delete/admin-oauth2-client-delete.dialog";
-import {AdminOrgunitDeleteDialog} from "@app/features/admin/components/dialogs/admin-orgunit-delete/admin-orgunit-delete.dialog";
-import {AdminPersonDeleteDialog} from "@app/features/admin/components/dialogs/admin-person-delete/admin-person-delete.dialog";
-import {AdminPreservationPolicyDeleteDialog} from "@app/features/admin/components/dialogs/admin-preservation-policy-delete/admin-preservation-policy-delete.dialog";
-import {AdminRoleDeleteDialog} from "@app/features/admin/components/dialogs/admin-role-delete/admin-role-delete.dialog";
-import {AdminSubmissionPolicyDeleteDialog} from "@app/features/admin/components/dialogs/admin-submission-policy-delete/admin-submission-policy-delete.dialog";
-import {AdminUserDeleteDialog} from "@app/features/admin/components/dialogs/admin-user-delete/admin-user-delete.dialog";
-import {AdminFundingAgenciesFormPresentational} from "@app/features/admin/components/presentationals/admin-funding-agencies-form/admin-funding-agencies-form.presentational";
-import {AdminInstitutionFormPresentational} from "@app/features/admin/components/presentationals/admin-institution-form/admin-institution-form.presentational";
-import {AdminLicenseFormPresentational} from "@app/features/admin/components/presentationals/admin-license-form/admin-license-form.presentational";
-import {AdminOAtuh2ClientFormPresentational} from "@app/features/admin/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational";
-import {AdminOrgunitFormPresentational} from "@app/features/admin/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational";
-import {AdminPersonForm} from "@app/features/admin/components/presentationals/admin-person-form/admin-person-form";
-import {AdminPreservationPolicyFormPresentational} from "@app/features/admin/components/presentationals/admin-preservation-policy-form/admin-preservation-policy-form.presentational";
-import {AdminRoleFormPresentational} from "@app/features/admin/components/presentationals/admin-role-form/admin-role-form.presentational";
-import {AdminSubmissionPolicyFormPresentational} from "@app/features/admin/components/presentationals/admin-submission-policy-form/admin-submission-policy-form.presentational";
-import {AdminUserForm} from "@app/features/admin/components/presentationals/admin-user-form/admin-user-form";
-import {AdminFundingAgenciesDetailRoutable} from "@app/features/admin/components/routables/admin-funding-agencies-detail/admin-funding-agencies-detail.routable";
-import {AdminFundingAgenciesListRoutable} from "@app/features/admin/components/routables/admin-funding-agencies-list/admin-funding-agencies-list-routable.component";
 import {AdminHomeRoutable} from "@app/features/admin/components/routables/admin-home/admin-home.routable";
-import {AdminInstitutionCreateRoutable} from "@app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable";
-import {AdminInstitutionDetailRoutable} from "@app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable";
-import {AdminInstitutionEditRoutable} from "@app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable";
-import {AdminInstitutionListRoutable} from "@app/features/admin/components/routables/admin-institution-list/admin-institution-list-routable.component";
-import {AdminLicenseCreateRoutable} from "@app/features/admin/components/routables/admin-license-create/admin-license-create.routable";
-import {AdminLicenseDetailRoutable} from "@app/features/admin/components/routables/admin-license-detail/admin-license-detail.routable";
-import {AdminLicenseEditRoutable} from "@app/features/admin/components/routables/admin-license-edit/admin-license-edit.routable";
-import {AdminLicenseListRoutable} from "@app/features/admin/components/routables/admin-license-list/admin-license-list.routable";
-import {AdminOAuth2ClientCreateRoutable} from "@app/features/admin/components/routables/admin-oauth2-client-create/admin-oauth2-client-create-routable";
-import {AdminOAuth2ClientDetailRoutable} from "@app/features/admin/components/routables/admin-oauth2-client-detail/admin-oauth2-client-detail.routable";
-import {AdminOAuth2ClientEditRoutable} from "@app/features/admin/components/routables/admin-oauth2-client-edit/admin-oauth2-client-edit-routable";
-import {AdminOAuth2ClientListRoutable} from "@app/features/admin/components/routables/admin-oauth2-client-list/admin-oauth2-client-list-routable.component";
-import {AdminOrgunitCreateRoutable} from "@app/features/admin/components/routables/admin-orgunit-create/admin-orgunit-create.routable";
-import {AdminOrgunitDetailRoutable} from "@app/features/admin/components/routables/admin-orgunit-detail/admin-orgunit-detail.routable";
-import {AdminOrgunitEditRoutable} from "@app/features/admin/components/routables/admin-orgunit-edit/admin-orgunit-edit.routable";
-import {AdminOrgunitListRoutable} from "@app/features/admin/components/routables/admin-orgunit-list/admin-orgunit-list.routable";
-import {AdminPersonCreateRoutable} from "@app/features/admin/components/routables/admin-person-create/admin-person-create.routable";
-import {AdminPersonDetailRoutable} from "@app/features/admin/components/routables/admin-person-detail/admin-person-detail.routable";
-import {AdminPersonEditRoutable} from "@app/features/admin/components/routables/admin-person-edit/admin-person-edit.routable";
-import {AdminPersonListRoutable} from "@app/features/admin/components/routables/admin-person-list/admin-person-list-routable";
-import {AdminPreservationPolicyCreateRoutable} from "@app/features/admin/components/routables/admin-preservation-policy-create/admin-preservation-policy-create.routable";
-import {AdminPreservationPolicyDetailRoutable} from "@app/features/admin/components/routables/admin-preservation-policy-detail/admin-preservation-policy-detail.routable";
-import {AdminPreservationPolicyEditRoutable} from "@app/features/admin/components/routables/admin-preservation-policy-edit/admin-preservation-policy-edit.routable";
-import {AdminPreservationPolicyListRoutable} from "@app/features/admin/components/routables/admin-preservation-policy-list/admin-preservation-policy-list.routable";
-import {AdminRoleCreateRoutable} from "@app/features/admin/components/routables/admin-role-create/admin-role-create.routable";
-import {AdminRoleDetailRoutable} from "@app/features/admin/components/routables/admin-role-detail/admin-role-detail.routable";
-import {AdminRoleEditRoutable} from "@app/features/admin/components/routables/admin-role-edit/admin-role-edit.routable";
-import {AdminRoleListRoutable} from "@app/features/admin/components/routables/admin-role-list/admin-role-list.routable";
-import {AdminSubmissionPolicyCreateRoutable} from "@app/features/admin/components/routables/admin-submission-policy-create/admin-submission-policy-create.routable";
-import {AdminSubmissionPolicyDetailRoutable} from "@app/features/admin/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable";
-import {AdminSubmissionPolicyEditRoutable} from "@app/features/admin/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable";
-import {AdminUserCreateRoutable} from "@app/features/admin/components/routables/admin-user-create/admin-user-create.routable";
-import {AdminUserDetailRoutable} from "@app/features/admin/components/routables/admin-user-detail/admin-user-detail.routable";
-import {AdminUserEditRoutable} from "@app/features/admin/components/routables/admin-user-edit/admin-user-edit.routable";
-import {AdminUserListRoutable} from "@app/features/admin/components/routables/admin-user-list/admin-user-list-routable";
+import {AdminOrganizationalUnitPreservationPolicyState} from "@app/features/admin/orgunit/stores/preservation-policy/admin-organizational-unit-preservation-policy.state";
+import {AdminOrganizationalUnitSubmissionPolicyState} from "@app/features/admin/orgunit/stores/submission-policy/admin-organizational-unit-submission-policy.state";
 import {AdminState} from "@app/features/admin/stores/admin.state";
-import {AdminFundingAgenciesState} from "@app/features/admin/stores/funding-agency/admin-funding-agencies.state";
-import {AdminInstitutionState} from "@app/features/admin/stores/institution/admin-institution.state";
-import {AdminLicenseState} from "@app/features/admin/stores/license/admin-license.state";
-import {AdminOAuth2ClientState} from "@app/features/admin/stores/oauth2-client/admin-oauth2-client.state";
-import {AdminOrganizationalUnitState} from "@app/features/admin/stores/organizational-unit/admin-organizational-unit.state";
-import {AdminOrganizationalUnitPreservationPolicyState} from "@app/features/admin/stores/organizational-unit/preservation-policy/admin-organizational-unit-preservation-policy.state";
-import {AdminOrganizationalUnitSubmissionPolicyState} from "@app/features/admin/stores/organizational-unit/submission-policy/admin-organizational-unit-submission-policy.state";
-import {AdminPersonState} from "@app/features/admin/stores/person/admin-person.state";
-import {AdminPreservationPolicyState} from "@app/features/admin/stores/preservation-policy/admin-preservation-policy.state";
-import {AdminRoleState} from "@app/features/admin/stores/role/admin-role.state";
-import {AdminSubmissionPolicyState} from "@app/features/admin/stores/submission-policy/admin-submission-policy.state";
-import {AdminUserState} from "@app/features/admin/stores/user/admin-user.state";
 import {SharedModule} from "@app/shared/shared.module";
 import {TranslateModule} from "@ngx-translate/core";
 import {NgxsModule} from "@ngxs/store";
-import {AdminSubmissionPolicyListRoutable} from "./components/routables/admin-submission-policy-list/admin-submission-policy-list.routable";
 
 const routables = [
   AdminHomeRoutable,
-  AdminSubmissionPolicyListRoutable,
-  AdminSubmissionPolicyDetailRoutable,
-  AdminSubmissionPolicyEditRoutable,
-  AdminSubmissionPolicyCreateRoutable,
-  AdminPreservationPolicyListRoutable,
-  AdminPreservationPolicyDetailRoutable,
-  AdminPreservationPolicyCreateRoutable,
-  AdminPreservationPolicyEditRoutable,
-  AdminLicenseCreateRoutable,
-  AdminLicenseDetailRoutable,
-  AdminLicenseEditRoutable,
-  AdminLicenseListRoutable,
-  AdminInstitutionListRoutable,
-  AdminInstitutionDetailRoutable,
-  AdminInstitutionEditRoutable,
-  AdminInstitutionCreateRoutable,
-  AdminOrgunitDetailRoutable,
-  AdminOrgunitListRoutable,
-  AdminOrgunitCreateRoutable,
-  AdminOrgunitEditRoutable,
-  AdminUserListRoutable,
-  AdminUserDetailRoutable,
-  AdminUserCreateRoutable,
-  AdminUserEditRoutable,
-  AdminOAuth2ClientListRoutable,
-  AdminOAuth2ClientDetailRoutable,
-  AdminOAuth2ClientEditRoutable,
-  AdminOAuth2ClientCreateRoutable,
-  AdminPersonListRoutable,
-  AdminPersonDetailRoutable,
-  AdminPersonCreateRoutable,
-  AdminPersonEditRoutable,
-  AdminRoleListRoutable,
-  AdminRoleCreateRoutable,
-  AdminRoleDetailRoutable,
-  AdminRoleEditRoutable,
-  AdminFundingAgenciesListRoutable,
-  AdminFundingAgenciesDetailRoutable,
-  AdminFundingAgenciesEditRoutable,
-  AdminFundingAgenciesCreateRoutable,
 ];
 const containers = [];
-const dialogs = [
-  AdminSubmissionPolicyDeleteDialog,
-  AdminLicenseDeleteDialog,
-  AdminPreservationPolicyDeleteDialog,
-  AdminOrgunitDeleteDialog,
-  AdminInstitutionDeleteDialog,
-  AdminUserDeleteDialog,
-  AdminOauth2ClientDeleteDialog,
-  AdminPersonDeleteDialog,
-  AdminRoleDeleteDialog,
-  AdminFundingAgencyDeleteDialog,
-];
-const presentationals = [
-  AdminSubmissionPolicyFormPresentational,
-  AdminLicenseFormPresentational,
-  AdminPreservationPolicyFormPresentational,
-  AdminOrgunitFormPresentational,
-  AdminInstitutionFormPresentational,
-  AdminUserForm,
-  AdminOAtuh2ClientFormPresentational,
-  AdminPersonForm,
-  AdminRoleFormPresentational,
-  AdminFundingAgenciesFormPresentational,
-];
+const dialogs = [];
+const presentationals = [];
 
 @NgModule({
   declarations: [
diff --git a/src/app/features/admin/components/routables/admin-oauth2-client-create/admin-oauth2-client-create-routable.ts b/src/app/features/admin/components/routables/admin-oauth2-client-create/admin-oauth2-client-create-routable.ts
deleted file mode 100644
index 4ffaaaee4c3c17878584fa3acc39a44d270e5ea6..0000000000000000000000000000000000000000
--- a/src/app/features/admin/components/routables/admin-oauth2-client-create/admin-oauth2-client-create-routable.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import {
-  ChangeDetectionStrategy,
-  Component,
-  OnInit,
-  ViewChild,
-} from "@angular/core";
-import {adminOAuth2ClientActionNameSpace} from "@app/features/admin/stores/oauth2-client/admin-oauth2-client.action";
-import {AdminOAuth2ClientStateModel} from "@app/features/admin/stores/oauth2-client/admin-oauth2-client.state";
-import {Oauth2Client} from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {SharedAbstractCreateRoutable} from "@app/shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {Store} from "@ngxs/store";
-
-@Component({
-  selector: "dlcm-admin-oauth2-create-routable",
-  templateUrl: "./admin-oauth2-client-create-routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
-  changeDetection: ChangeDetectionStrategy.OnPush,
-})
-export class AdminOAuth2ClientCreateRoutable extends SharedAbstractCreateRoutable<Oauth2Client, AdminOAuth2ClientStateModel> implements OnInit {
-  @ViewChild("formPresentational", {static: false})
-  readonly formPresentational: SharedAbstractFormPresentational<Oauth2Client>;
-
-  constructor(protected store: Store) {
-    super(store, LocalStateEnum.admin_oauth2Client, adminOAuth2ClientActionNameSpace, LocalStateEnum.admin);
-  }
-
-  ngOnInit(): void {
-    super.ngOnInit();
-  }
-}
diff --git a/src/app/features/admin/components/dialogs/admin-funding-agency-delete/admin-funding-agency-delete.dialog.ts b/src/app/features/admin/funding-agencies/components/dialogs/admin-funding-agency-delete/admin-funding-agency-delete.dialog.ts
similarity index 64%
rename from src/app/features/admin/components/dialogs/admin-funding-agency-delete/admin-funding-agency-delete.dialog.ts
rename to src/app/features/admin/funding-agencies/components/dialogs/admin-funding-agency-delete/admin-funding-agency-delete.dialog.ts
index 995ed5e9f71dbcad5fea6cff7079046ca71dde4d..8a73d019760799ddb2bd9aff3605d392a437a437 100644
--- a/src/app/features/admin/components/dialogs/admin-funding-agency-delete/admin-funding-agency-delete.dialog.ts
+++ b/src/app/features/admin/funding-agencies/components/dialogs/admin-funding-agency-delete/admin-funding-agency-delete.dialog.ts
@@ -1,5 +1,5 @@
-import {adminFundingAgenciesActionNameSpace} from "@admin/stores/funding-agency/admin-funding-agencies.action";
-import {AdminFundingAgenciesStateModel} from "@admin/stores/funding-agency/admin-funding-agencies.state";
+import {adminFundingAgenciesActionNameSpace} from "@admin/funding-agencies/stores/admin-funding-agencies.action";
+import {AdminFundingAgenciesStateModel} from "@admin/funding-agencies/stores/admin-funding-agencies.state";
 import {
   ChangeDetectionStrategy,
   Component,
@@ -9,17 +9,17 @@ import {
   MAT_DIALOG_DATA,
   MatDialogRef,
 } from "@angular/material";
-import {SharedAbstractDeleteDialog} from "@app/shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {DeleteDialog} from "@app/shared/models/delete-dialog.model";
 import {FundingAgencyExtended} from "@deposit/models/funding-agency-extended.model";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDeleteDialog} from "@shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {DeleteDialog} from "@shared/models/delete-dialog.model";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-funding-agency-delete-dialog",
-  templateUrl: "../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
-  styleUrls: ["../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
+  templateUrl: "../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
+  styleUrls: ["../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminFundingAgencyDeleteDialog extends SharedAbstractDeleteDialog<FundingAgencyExtended, AdminFundingAgenciesStateModel> {
diff --git a/src/app/features/admin/components/presentationals/admin-funding-agencies-form/admin-funding-agencies-form.presentational.html b/src/app/features/admin/funding-agencies/components/presentationals/admin-funding-agencies-form/admin-funding-agencies-form.presentational.html
similarity index 100%
rename from src/app/features/admin/components/presentationals/admin-funding-agencies-form/admin-funding-agencies-form.presentational.html
rename to src/app/features/admin/funding-agencies/components/presentationals/admin-funding-agencies-form/admin-funding-agencies-form.presentational.html
diff --git a/src/app/features/admin/components/presentationals/admin-funding-agencies-form/admin-funding-agencies-form.presentational.ts b/src/app/features/admin/funding-agencies/components/presentationals/admin-funding-agencies-form/admin-funding-agencies-form.presentational.ts
similarity index 87%
rename from src/app/features/admin/components/presentationals/admin-funding-agencies-form/admin-funding-agencies-form.presentational.ts
rename to src/app/features/admin/funding-agencies/components/presentationals/admin-funding-agencies-form/admin-funding-agencies-form.presentational.ts
index 777bb5ea4f4aa2a3af45861bd925116c98fa5845..094577645a9b552c003e7f0647938fe3fa66f6a7 100644
--- a/src/app/features/admin/components/presentationals/admin-funding-agencies-form/admin-funding-agencies-form.presentational.ts
+++ b/src/app/features/admin/funding-agencies/components/presentationals/admin-funding-agencies-form/admin-funding-agencies-form.presentational.ts
@@ -9,10 +9,10 @@ import {
   Validators,
 } from "@angular/forms";
 import {OrganizationalUnit} from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {BaseFormDefinition} from "@app/shared/models/base-form-definition.model";
 import {FundingAgencyExtended} from "@deposit/models/funding-agency-extended.model";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
 import {LocalModelAttributeEnum} from "@shared/enums/model-attribute.enum";
+import {BaseFormDefinition} from "@shared/models/base-form-definition.model";
 import _ from "lodash";
 import {
   PropertyName,
@@ -22,7 +22,7 @@ import {
 @Component({
   selector: "dlcm-admin-funding-agencies-form",
   templateUrl: "./admin-funding-agencies-form.presentational.html",
-  styleUrls: ["../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
+  styleUrls: ["../../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminFundingAgenciesFormPresentational extends SharedAbstractFormPresentational<FundingAgencyExtended> {
diff --git a/src/app/features/admin/components/routables/admin-funding-agencies-create/admin-funding-agencies-create.routable.html b/src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-create/admin-funding-agencies-create.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-funding-agencies-create/admin-funding-agencies-create.routable.html
rename to src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-create/admin-funding-agencies-create.routable.html
diff --git a/src/app/features/admin/components/routables/admin-funding-agencies-create/admin-funding-agencies-create.routable.ts b/src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-create/admin-funding-agencies-create.routable.ts
similarity index 72%
rename from src/app/features/admin/components/routables/admin-funding-agencies-create/admin-funding-agencies-create.routable.ts
rename to src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-create/admin-funding-agencies-create.routable.ts
index 4420694d50a897dc069b53370015ad518f5aec8a..56edb0c34c447b1cabe1b1a0165ce3409fe6ec6a 100644
--- a/src/app/features/admin/components/routables/admin-funding-agencies-create/admin-funding-agencies-create.routable.ts
+++ b/src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-create/admin-funding-agencies-create.routable.ts
@@ -1,24 +1,24 @@
+import {adminFundingAgenciesActionNameSpace} from "@admin/funding-agencies/stores/admin-funding-agencies.action";
+import {AdminFundingAgenciesStateModel} from "@admin/funding-agencies/stores/admin-funding-agencies.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
-import {adminFundingAgenciesActionNameSpace} from "@app/features/admin/stores/funding-agency/admin-funding-agencies.action";
-import {AdminFundingAgenciesStateModel} from "@app/features/admin/stores/funding-agency/admin-funding-agencies.state";
 import {FundingAgency} from "@app/generated-api";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {OrganizationalUnitExtended} from "@deposit/models/organizational-unit-extended.model";
 import {
   Select,
   Store,
 } from "@ngxs/store";
 import {SharedAbstractCreateRoutable} from "@shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {LocalStateModel} from "@shared/models/local-state.model";
 import {Observable} from "rxjs";
 
 @Component({
   selector: "dlcm-admin-funding-agency-create-routable",
   templateUrl: "./admin-funding-agencies-create.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminFundingAgenciesCreateRoutable extends SharedAbstractCreateRoutable<FundingAgency, AdminFundingAgenciesStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-funding-agencies-detail/admin-funding-agencies-detail.routable.html b/src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-detail/admin-funding-agencies-detail.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-funding-agencies-detail/admin-funding-agencies-detail.routable.html
rename to src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-detail/admin-funding-agencies-detail.routable.html
diff --git a/src/app/features/admin/components/routables/admin-funding-agencies-detail/admin-funding-agencies-detail.routable.ts b/src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-detail/admin-funding-agencies-detail.routable.ts
similarity index 73%
rename from src/app/features/admin/components/routables/admin-funding-agencies-detail/admin-funding-agencies-detail.routable.ts
rename to src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-detail/admin-funding-agencies-detail.routable.ts
index 8491485206769d6d404abdb4cf6d98642a3f1ebb..a9054843408f21c99a645165510db078586df2ee 100644
--- a/src/app/features/admin/components/routables/admin-funding-agencies-detail/admin-funding-agencies-detail.routable.ts
+++ b/src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-detail/admin-funding-agencies-detail.routable.ts
@@ -1,23 +1,23 @@
-import {AdminFundingAgenciesOrgUnitAction} from "@admin/stores/funding-agency/organizational-unit/admin-organizational-unit-preservation-policy.action";
+import {adminFundingAgenciesActionNameSpace} from "@admin/funding-agencies/stores/admin-funding-agencies.action";
+import {AdminFundingAgenciesStateModel} from "@admin/funding-agencies/stores/admin-funding-agencies.state";
+import {AdminFundingAgenciesOrgUnitAction} from "@admin/funding-agencies/stores/organizational-unit/admin-organizational-unit-preservation-policy.action";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {MatDialog} from "@angular/material";
 import {ActivatedRoute} from "@angular/router";
-import {adminFundingAgenciesActionNameSpace} from "@app/features/admin/stores/funding-agency/admin-funding-agencies.action";
-import {AdminFundingAgenciesStateModel} from "@app/features/admin/stores/funding-agency/admin-funding-agencies.state";
 import {
   FundingAgency,
   OrganizationalUnit,
 } from "@app/generated-api";
-import {SharedAbstractDetailRoutable} from "@app/shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {OrganizationalUnitExtended} from "@deposit/models/organizational-unit-extended.model";
 import {
   Select,
   Store,
 } from "@ngxs/store";
+import {SharedAbstractDetailRoutable} from "@shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {LocalStateModel} from "@shared/models/local-state.model";
 import {Observable} from "rxjs";
 import {
@@ -28,7 +28,7 @@ import {
 @Component({
   selector: "dlcm-admin-funding-agency-detail-routable",
   templateUrl: "./admin-funding-agencies-detail.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminFundingAgenciesDetailRoutable extends SharedAbstractDetailRoutable<FundingAgency, AdminFundingAgenciesStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-funding-agencies-edit/admin-funding-agencies-edit.routable.html b/src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-edit/admin-funding-agencies-edit.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-funding-agencies-edit/admin-funding-agencies-edit.routable.html
rename to src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-edit/admin-funding-agencies-edit.routable.html
diff --git a/src/app/features/admin/components/routables/admin-funding-agencies-edit/admin-funding-agencies-edit.routable.ts b/src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-edit/admin-funding-agencies-edit.routable.ts
similarity index 77%
rename from src/app/features/admin/components/routables/admin-funding-agencies-edit/admin-funding-agencies-edit.routable.ts
rename to src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-edit/admin-funding-agencies-edit.routable.ts
index 81d3ff139cd2702cbecc132df26536be5efa098d..9bb08bbe93c47bfb9a45a8d153f906aec1e1c624 100644
--- a/src/app/features/admin/components/routables/admin-funding-agencies-edit/admin-funding-agencies-edit.routable.ts
+++ b/src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-edit/admin-funding-agencies-edit.routable.ts
@@ -1,22 +1,22 @@
-import {AdminFundingAgenciesOrgUnitAction} from "@admin/stores/funding-agency/organizational-unit/admin-organizational-unit-preservation-policy.action";
+import {adminFundingAgenciesActionNameSpace} from "@admin/funding-agencies/stores/admin-funding-agencies.action";
+import {AdminFundingAgenciesStateModel} from "@admin/funding-agencies/stores/admin-funding-agencies.state";
+import {AdminFundingAgenciesOrgUnitAction} from "@admin/funding-agencies/stores/organizational-unit/admin-organizational-unit-preservation-policy.action";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {ActivatedRoute} from "@angular/router";
-import {adminFundingAgenciesActionNameSpace} from "@app/features/admin/stores/funding-agency/admin-funding-agencies.action";
-import {AdminFundingAgenciesStateModel} from "@app/features/admin/stores/funding-agency/admin-funding-agencies.state";
 import {
   FundingAgency,
   OrganizationalUnit,
 } from "@app/generated-api";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {OrganizationalUnitExtended} from "@deposit/models/organizational-unit-extended.model";
 import {
   Select,
   Store,
 } from "@ngxs/store";
 import {SharedAbstractEditRoutable} from "@shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {LocalStateModel} from "@shared/models/local-state.model";
 import {Observable} from "rxjs";
 import {
@@ -27,7 +27,7 @@ import {
 @Component({
   selector: "dlcm-admin-funding-agency-edit-routable",
   templateUrl: "./admin-funding-agencies-edit.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminFundingAgenciesEditRoutable extends SharedAbstractEditRoutable<FundingAgency, AdminFundingAgenciesStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-funding-agencies-list/admin-funding-agencies-list-routable.component.ts b/src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-list/admin-funding-agencies-list.routable.ts
similarity index 63%
rename from src/app/features/admin/components/routables/admin-funding-agencies-list/admin-funding-agencies-list-routable.component.ts
rename to src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-list/admin-funding-agencies-list.routable.ts
index cf5b8688d1c2592f92988481216c5567f70682d5..977327d2b317c35e0ff5bdddbffef9c4c06e1611 100644
--- a/src/app/features/admin/components/routables/admin-funding-agencies-list/admin-funding-agencies-list-routable.component.ts
+++ b/src/app/features/admin/funding-agencies/components/routables/admin-funding-agencies-list/admin-funding-agencies-list.routable.ts
@@ -1,20 +1,20 @@
+import {adminFundingAgenciesActionNameSpace} from "@admin/funding-agencies/stores/admin-funding-agencies.action";
+import {AdminFundingAgenciesStateModel} from "@admin/funding-agencies/stores/admin-funding-agencies.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
-import {adminFundingAgenciesActionNameSpace} from "@app/features/admin/stores/funding-agency/admin-funding-agencies.action";
-import {AdminFundingAgenciesStateModel} from "@app/features/admin/stores/funding-agency/admin-funding-agencies.state";
 import {FundingAgency} from "@app/generated-api";
-import {SharedAbstractListRoutable} from "@app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
-import {FieldTypeEnum} from "@app/shared/enums/field-type.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractListRoutable} from "@shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
+import {FieldTypeEnum} from "@shared/enums/field-type.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-submission-policy-list-routable",
-  templateUrl: "../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
+  templateUrl: "../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminFundingAgenciesListRoutable extends SharedAbstractListRoutable<FundingAgency, AdminFundingAgenciesStateModel> {
diff --git a/src/app/features/admin/funding-agencies/funding-agencies-routing.module.ts b/src/app/features/admin/funding-agencies/funding-agencies-routing.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..159d16c4fdca22bc6261e991b9d2c25e49d3e318
--- /dev/null
+++ b/src/app/features/admin/funding-agencies/funding-agencies-routing.module.ts
@@ -0,0 +1,53 @@
+import {AdminFundingAgenciesCreateRoutable} from "@admin/funding-agencies/components/routables/admin-funding-agencies-create/admin-funding-agencies-create.routable";
+import {AdminFundingAgenciesDetailRoutable} from "@admin/funding-agencies/components/routables/admin-funding-agencies-detail/admin-funding-agencies-detail.routable";
+import {AdminFundingAgenciesEditRoutable} from "@admin/funding-agencies/components/routables/admin-funding-agencies-edit/admin-funding-agencies-edit.routable";
+import {AdminFundingAgenciesListRoutable} from "@admin/funding-agencies/components/routables/admin-funding-agencies-list/admin-funding-agencies-list.routable";
+import {NgModule} from "@angular/core";
+import {
+  RouterModule,
+  Routes,
+} from "@angular/router";
+import {
+  AdminRoutesEnum,
+  AppRoutesEnum,
+} from "@shared/enums/routes.enum";
+import {CanDeactivateGuard} from "@shared/services/can-deactivate-guard.service";
+import {TRANSLATE} from "solidify-frontend";
+
+const routes: Routes = [
+  {
+    path: AppRoutesEnum.root,
+    component: AdminFundingAgenciesListRoutable,
+    data: {},
+  },
+  {
+    path: AdminRoutesEnum.fundingAgenciesDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminFundingAgenciesDetailRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.funding-agencies.detail"),
+    },
+  },
+  {
+    path: AdminRoutesEnum.fundingAgenciesEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminFundingAgenciesEditRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.funding-agencies.edit"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+  {
+    component: AdminFundingAgenciesCreateRoutable,
+    path: AdminRoutesEnum.fundingAgenciesCreate,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.funding-agencies.create"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule],
+})
+export class AdminFundingAgenciesRoutingModule {
+}
diff --git a/src/app/features/admin/funding-agencies/funding-agencies.module.ts b/src/app/features/admin/funding-agencies/funding-agencies.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4e5e7fb1ab49c2deab58248016280ff6012be66b
--- /dev/null
+++ b/src/app/features/admin/funding-agencies/funding-agencies.module.ts
@@ -0,0 +1,52 @@
+import {AdminFundingAgencyDeleteDialog} from "@admin/funding-agencies/components/dialogs/admin-funding-agency-delete/admin-funding-agency-delete.dialog";
+import {AdminFundingAgenciesFormPresentational} from "@admin/funding-agencies/components/presentationals/admin-funding-agencies-form/admin-funding-agencies-form.presentational";
+import {AdminFundingAgenciesCreateRoutable} from "@admin/funding-agencies/components/routables/admin-funding-agencies-create/admin-funding-agencies-create.routable";
+import {AdminFundingAgenciesDetailRoutable} from "@admin/funding-agencies/components/routables/admin-funding-agencies-detail/admin-funding-agencies-detail.routable";
+import {AdminFundingAgenciesEditRoutable} from "@admin/funding-agencies/components/routables/admin-funding-agencies-edit/admin-funding-agencies-edit.routable";
+import {AdminFundingAgenciesListRoutable} from "@admin/funding-agencies/components/routables/admin-funding-agencies-list/admin-funding-agencies-list.routable";
+import {AdminFundingAgenciesRoutingModule} from "@admin/funding-agencies/funding-agencies-routing.module";
+import {AdminFundingAgenciesState} from "@admin/funding-agencies/stores/admin-funding-agencies.state";
+import {NgModule} from "@angular/core";
+import {SharedModule} from "@app/shared/shared.module";
+import {TranslateModule} from "@ngx-translate/core";
+import {NgxsModule} from "@ngxs/store";
+
+const routables = [
+  AdminFundingAgenciesListRoutable,
+  AdminFundingAgenciesDetailRoutable,
+  AdminFundingAgenciesEditRoutable,
+  AdminFundingAgenciesCreateRoutable,
+];
+const containers = [];
+const dialogs = [
+  AdminFundingAgencyDeleteDialog,
+];
+const presentationals = [
+  AdminFundingAgenciesFormPresentational,
+];
+
+@NgModule({
+  declarations: [
+    ...routables,
+    ...containers,
+    ...dialogs,
+    ...presentationals,
+  ],
+  imports: [
+    SharedModule,
+    AdminFundingAgenciesRoutingModule,
+    TranslateModule.forChild({}),
+    NgxsModule.forFeature([
+      AdminFundingAgenciesState,
+    ]),
+  ],
+  entryComponents: [
+    ...dialogs,
+  ],
+  exports: [
+    ...routables,
+  ],
+  providers: [],
+})
+export class AdminFundingAgenciesModule {
+}
diff --git a/src/app/features/admin/stores/funding-agency/admin-funding-agencies.action.ts b/src/app/features/admin/funding-agencies/stores/admin-funding-agencies.action.ts
similarity index 97%
rename from src/app/features/admin/stores/funding-agency/admin-funding-agencies.action.ts
rename to src/app/features/admin/funding-agencies/stores/admin-funding-agencies.action.ts
index c06a817d5025b720e87d281a729684e5fe3b13f7..a1e719c7cf2fd98928617646fed79db77ddc8e53 100644
--- a/src/app/features/admin/stores/funding-agency/admin-funding-agencies.action.ts
+++ b/src/app/features/admin/funding-agencies/stores/admin-funding-agencies.action.ts
@@ -1,5 +1,5 @@
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {FundingAgencyExtended} from "@deposit/models/funding-agency-extended.model";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   ResourceAction,
   ResourceNameSpace,
diff --git a/src/app/features/admin/stores/funding-agency/admin-funding-agencies.state.ts b/src/app/features/admin/funding-agencies/stores/admin-funding-agencies.state.ts
similarity index 92%
rename from src/app/features/admin/stores/funding-agency/admin-funding-agencies.state.ts
rename to src/app/features/admin/funding-agencies/stores/admin-funding-agencies.state.ts
index e1b3f69e25d4e1bd29e48f044c5aae190879a6dd..4ab66e93ba0245725353c805906c8a80f3152e11 100644
--- a/src/app/features/admin/stores/funding-agency/admin-funding-agencies.state.ts
+++ b/src/app/features/admin/funding-agencies/stores/admin-funding-agencies.state.ts
@@ -1,15 +1,12 @@
-import {adminFundingAgenciesOrgUnitActionNameSpace} from "@admin/stores/funding-agency/organizational-unit/admin-organizational-unit-preservation-policy.action";
-import {
-  AdminFundingAgenciesOrganizationalUnitState,
-  AdminFundingAgenciesOrganizationalUnitStateModel,
-} from "@admin/stores/funding-agency/organizational-unit/admin-organizational-unit-preservation-policy.state";
 import {
   AdminFundingAgenciesAction,
   adminFundingAgenciesActionNameSpace,
-} from "@app/features/admin/stores/funding-agency/admin-funding-agencies.action";
-import {AdminResourceApiEnum} from "@app/shared/enums/api.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {RoutesEnum} from "@app/shared/enums/routes.enum";
+} from "@admin/funding-agencies/stores/admin-funding-agencies.action";
+import {adminFundingAgenciesOrgUnitActionNameSpace} from "@admin/funding-agencies/stores/organizational-unit/admin-organizational-unit-preservation-policy.action";
+import {
+  AdminFundingAgenciesOrganizationalUnitState,
+  AdminFundingAgenciesOrganizationalUnitStateModel,
+} from "@admin/funding-agencies/stores/organizational-unit/admin-organizational-unit-preservation-policy.state";
 import {FundingAgencyExtended} from "@deposit/models/funding-agency-extended.model";
 import {
   Action,
@@ -19,7 +16,10 @@ import {
   StateContext,
   Store,
 } from "@ngxs/store";
+import {AdminResourceApiEnum} from "@shared/enums/api.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {LocalModelAttributeEnum} from "@shared/enums/model-attribute.enum";
+import {RoutesEnum} from "@shared/enums/routes.enum";
 import {SharedOrgUnitAction} from "@shared/stores/organizational-unit/shared-organizational-unit.action";
 import _ from "lodash";
 import {Observable} from "rxjs";
diff --git a/src/app/features/admin/stores/funding-agency/organizational-unit/admin-organizational-unit-preservation-policy.action.ts b/src/app/features/admin/funding-agencies/stores/organizational-unit/admin-organizational-unit-preservation-policy.action.ts
similarity index 97%
rename from src/app/features/admin/stores/funding-agency/organizational-unit/admin-organizational-unit-preservation-policy.action.ts
rename to src/app/features/admin/funding-agencies/stores/organizational-unit/admin-organizational-unit-preservation-policy.action.ts
index 3d13c20843e5a06408442cb29420d26c1e09f941..df0422a775db0a4e944314c499aea7044a8e356a 100644
--- a/src/app/features/admin/stores/funding-agency/organizational-unit/admin-organizational-unit-preservation-policy.action.ts
+++ b/src/app/features/admin/funding-agencies/stores/organizational-unit/admin-organizational-unit-preservation-policy.action.ts
@@ -1,5 +1,5 @@
 import {OrganizationalUnit} from "@app/generated-api";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   AssociationAction,
   AssociationNameSpace,
diff --git a/src/app/features/admin/stores/funding-agency/organizational-unit/admin-organizational-unit-preservation-policy.state.ts b/src/app/features/admin/funding-agencies/stores/organizational-unit/admin-organizational-unit-preservation-policy.state.ts
similarity index 79%
rename from src/app/features/admin/stores/funding-agency/organizational-unit/admin-organizational-unit-preservation-policy.state.ts
rename to src/app/features/admin/funding-agencies/stores/organizational-unit/admin-organizational-unit-preservation-policy.state.ts
index 43b8260766a617731702d09628e0fb61204a3a33..8b14f1697531e627c77c2b138afff0aac4c17469 100644
--- a/src/app/features/admin/stores/funding-agency/organizational-unit/admin-organizational-unit-preservation-policy.state.ts
+++ b/src/app/features/admin/funding-agencies/stores/organizational-unit/admin-organizational-unit-preservation-policy.state.ts
@@ -1,14 +1,14 @@
-import {adminFundingAgenciesOrgUnitActionNameSpace} from "@admin/stores/funding-agency/organizational-unit/admin-organizational-unit-preservation-policy.action";
+import {adminFundingAgenciesOrgUnitActionNameSpace} from "@admin/funding-agencies/stores/organizational-unit/admin-organizational-unit-preservation-policy.action";
 import {OrganizationalUnit} from "@app/generated-api";
-import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum";
-import {AdminResourceApiEnum} from "@app/shared/enums/api.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 
 import {
   Actions,
   State,
   Store,
 } from "@ngxs/store";
+import {ApiResourceNameEnum} from "@shared/enums/api-resource-name.enum";
+import {AdminResourceApiEnum} from "@shared/enums/api.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   ApiService,
   AssociationState,
diff --git a/src/app/features/admin/components/dialogs/admin-institution-delete/admin-institution-delete.dialog.ts b/src/app/features/admin/institution/components/dialogs/admin-institution-delete/admin-institution-delete.dialog.ts
similarity index 62%
rename from src/app/features/admin/components/dialogs/admin-institution-delete/admin-institution-delete.dialog.ts
rename to src/app/features/admin/institution/components/dialogs/admin-institution-delete/admin-institution-delete.dialog.ts
index 9c3b229e585cbf8b846210f254ecffb295be1093..f90222b7869da0c82541d724537d8e581aa42cd7 100644
--- a/src/app/features/admin/components/dialogs/admin-institution-delete/admin-institution-delete.dialog.ts
+++ b/src/app/features/admin/institution/components/dialogs/admin-institution-delete/admin-institution-delete.dialog.ts
@@ -1,3 +1,5 @@
+import {adminInstitutionActionNameSpace} from "@admin/institution/stores/admin-institution.action";
+import {AdminInstitutionStateModel} from "@admin/institution/stores/admin-institution.state";
 import {
   ChangeDetectionStrategy,
   Component,
@@ -7,19 +9,17 @@ import {
   MAT_DIALOG_DATA,
   MatDialogRef,
 } from "@angular/material";
-import {adminInstitutionActionNameSpace} from "@app/features/admin/stores/institution/admin-institution.action";
-import {AdminInstitutionStateModel} from "@app/features/admin/stores/institution/admin-institution.state";
 import {Institution} from "@app/generated-api";
-import {SharedAbstractDeleteDialog} from "@app/shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {DeleteDialog} from "@app/shared/models/delete-dialog.model";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDeleteDialog} from "@shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {DeleteDialog} from "@shared/models/delete-dialog.model";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-institution-delete-dialog",
-  templateUrl: "../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
-  styleUrls: ["../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
+  templateUrl: "../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
+  styleUrls: ["../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminInstitutionDeleteDialog extends SharedAbstractDeleteDialog<Institution, AdminInstitutionStateModel> {
diff --git a/src/app/features/admin/components/presentationals/admin-institution-form/admin-institution-form.presentational.html b/src/app/features/admin/institution/components/presentationals/admin-institution-form/admin-institution-form.presentational.html
similarity index 100%
rename from src/app/features/admin/components/presentationals/admin-institution-form/admin-institution-form.presentational.html
rename to src/app/features/admin/institution/components/presentationals/admin-institution-form/admin-institution-form.presentational.html
diff --git a/src/app/features/admin/components/presentationals/admin-institution-form/admin-institution-form.presentational.ts b/src/app/features/admin/institution/components/presentationals/admin-institution-form/admin-institution-form.presentational.ts
similarity index 82%
rename from src/app/features/admin/components/presentationals/admin-institution-form/admin-institution-form.presentational.ts
rename to src/app/features/admin/institution/components/presentationals/admin-institution-form/admin-institution-form.presentational.ts
index e6d4df45bb79bbd587061f6473b6ecba0fb6a04d..150f208ac45ab58b2e61da707ab5c83be358acb6 100644
--- a/src/app/features/admin/components/presentationals/admin-institution-form/admin-institution-form.presentational.ts
+++ b/src/app/features/admin/institution/components/presentationals/admin-institution-form/admin-institution-form.presentational.ts
@@ -8,8 +8,8 @@ import {
   Validators,
 } from "@angular/forms";
 import {Institution} from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {BaseFormDefinition} from "@app/shared/models/base-form-definition.model";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {BaseFormDefinition} from "@shared/models/base-form-definition.model";
 import {
   PropertyName,
   SolidifyValidator,
@@ -18,7 +18,7 @@ import {
 @Component({
   selector: "dlcm-admin-institution-form",
   templateUrl: "./admin-institution-form.presentational.html",
-  styleUrls: ["../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
+  styleUrls: ["../../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminInstitutionFormPresentational extends SharedAbstractFormPresentational<Institution> {
diff --git a/src/app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable.html b/src/app/features/admin/institution/components/routables/admin-institution-create/admin-institution-create.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable.html
rename to src/app/features/admin/institution/components/routables/admin-institution-create/admin-institution-create.routable.html
diff --git a/src/app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable.ts b/src/app/features/admin/institution/components/routables/admin-institution-create/admin-institution-create.routable.ts
similarity index 53%
rename from src/app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable.ts
rename to src/app/features/admin/institution/components/routables/admin-institution-create/admin-institution-create.routable.ts
index 2cca4d476428a52b17efe241f519157e1a51c878..752bce914b3c3e023f4abcdabc889909817cc37e 100644
--- a/src/app/features/admin/components/routables/admin-institution-create/admin-institution-create.routable.ts
+++ b/src/app/features/admin/institution/components/routables/admin-institution-create/admin-institution-create.routable.ts
@@ -1,21 +1,21 @@
+import {adminInstitutionActionNameSpace} from "@admin/institution/stores/admin-institution.action";
+import {AdminInstitutionStateModel} from "@admin/institution/stores/admin-institution.state";
 import {
   ChangeDetectionStrategy,
   Component,
   OnInit,
   ViewChild,
 } from "@angular/core";
-import {adminInstitutionActionNameSpace} from "@app/features/admin/stores/institution/admin-institution.action";
-import {AdminInstitutionStateModel} from "@app/features/admin/stores/institution/admin-institution.state";
 import {Institution} from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {SharedAbstractCreateRoutable} from "@app/shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {SharedAbstractCreateRoutable} from "@shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 
 @Component({
   selector: "dlcm-admin-institution-create-routable",
   templateUrl: "./admin-institution-create.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminInstitutionCreateRoutable extends SharedAbstractCreateRoutable<Institution, AdminInstitutionStateModel> implements OnInit {
diff --git a/src/app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable.html b/src/app/features/admin/institution/components/routables/admin-institution-detail/admin-institution-detail.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable.html
rename to src/app/features/admin/institution/components/routables/admin-institution-detail/admin-institution-detail.routable.html
diff --git a/src/app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable.ts b/src/app/features/admin/institution/components/routables/admin-institution-detail/admin-institution-detail.routable.ts
similarity index 67%
rename from src/app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable.ts
rename to src/app/features/admin/institution/components/routables/admin-institution-detail/admin-institution-detail.routable.ts
index 4fa1c0178996800a6149e96d17e74f6a92beaa11..35885ebba3c6989145042ebeadce829d3eb3c025 100644
--- a/src/app/features/admin/components/routables/admin-institution-detail/admin-institution-detail.routable.ts
+++ b/src/app/features/admin/institution/components/routables/admin-institution-detail/admin-institution-detail.routable.ts
@@ -1,21 +1,21 @@
+import {adminInstitutionActionNameSpace} from "@admin/institution/stores/admin-institution.action";
+import {AdminInstitutionStateModel} from "@admin/institution/stores/admin-institution.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {MatDialog} from "@angular/material";
 import {ActivatedRoute} from "@angular/router";
-import {adminInstitutionActionNameSpace} from "@app/features/admin/stores/institution/admin-institution.action";
-import {AdminInstitutionStateModel} from "@app/features/admin/stores/institution/admin-institution.state";
 import {Institution} from "@app/generated-api";
-import {SharedAbstractDetailRoutable} from "@app/shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDetailRoutable} from "@shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-institution-detail-routable",
   templateUrl: "./admin-institution-detail.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminInstitutionDetailRoutable extends SharedAbstractDetailRoutable<Institution, AdminInstitutionStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable.html b/src/app/features/admin/institution/components/routables/admin-institution-edit/admin-institution-edit.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable.html
rename to src/app/features/admin/institution/components/routables/admin-institution-edit/admin-institution-edit.routable.html
diff --git a/src/app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable.ts b/src/app/features/admin/institution/components/routables/admin-institution-edit/admin-institution-edit.routable.ts
similarity index 59%
rename from src/app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable.ts
rename to src/app/features/admin/institution/components/routables/admin-institution-edit/admin-institution-edit.routable.ts
index 50d9c060d6ccbaa29836e3b3d39336d5e24040e5..480cb9daaf8f25cad14fe42c740e88a96343f94f 100644
--- a/src/app/features/admin/components/routables/admin-institution-edit/admin-institution-edit.routable.ts
+++ b/src/app/features/admin/institution/components/routables/admin-institution-edit/admin-institution-edit.routable.ts
@@ -1,20 +1,20 @@
+import {adminInstitutionActionNameSpace} from "@admin/institution/stores/admin-institution.action";
+import {AdminInstitutionStateModel} from "@admin/institution/stores/admin-institution.state";
 import {
   ChangeDetectionStrategy,
   Component,
   OnInit,
 } from "@angular/core";
 import {ActivatedRoute} from "@angular/router";
-import {adminInstitutionActionNameSpace} from "@app/features/admin/stores/institution/admin-institution.action";
-import {AdminInstitutionStateModel} from "@app/features/admin/stores/institution/admin-institution.state";
 import {Institution} from "@app/generated-api";
-import {SharedAbstractEditRoutable} from "@app/shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractEditRoutable} from "@shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 
 @Component({
   selector: "dlcm-admin-institution-edit-routable",
   templateUrl: "./admin-institution-edit.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminInstitutionEditRoutable extends SharedAbstractEditRoutable<Institution, AdminInstitutionStateModel> implements OnInit {
diff --git a/src/app/features/admin/components/routables/admin-institution-list/admin-institution-list-routable.component.ts b/src/app/features/admin/institution/components/routables/admin-institution-list/admin-institution-list.routable.ts
similarity index 68%
rename from src/app/features/admin/components/routables/admin-institution-list/admin-institution-list-routable.component.ts
rename to src/app/features/admin/institution/components/routables/admin-institution-list/admin-institution-list.routable.ts
index eb3ad30827e9945170b7340bb379ba32681e90ef..8fad2188c4b8c35242f24bc5d5236a0445a04edd 100644
--- a/src/app/features/admin/components/routables/admin-institution-list/admin-institution-list-routable.component.ts
+++ b/src/app/features/admin/institution/components/routables/admin-institution-list/admin-institution-list.routable.ts
@@ -1,20 +1,20 @@
+import {adminInstitutionActionNameSpace} from "@admin/institution/stores/admin-institution.action";
+import {AdminInstitutionStateModel} from "@admin/institution/stores/admin-institution.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
-import {adminInstitutionActionNameSpace} from "@app/features/admin/stores/institution/admin-institution.action";
-import {AdminInstitutionStateModel} from "@app/features/admin/stores/institution/admin-institution.state";
 import {Institution} from "@app/generated-api";
-import {SharedAbstractListRoutable} from "@app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
-import {FieldTypeEnum} from "@app/shared/enums/field-type.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractListRoutable} from "@shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
+import {FieldTypeEnum} from "@shared/enums/field-type.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-institution-list-routable",
-  templateUrl: "../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
+  templateUrl: "../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminInstitutionListRoutable extends SharedAbstractListRoutable<Institution, AdminInstitutionStateModel> {
diff --git a/src/app/features/admin/institution/institution-routing.module.ts b/src/app/features/admin/institution/institution-routing.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a2095f54c305e82ab4e8627f1347f643fb1aa920
--- /dev/null
+++ b/src/app/features/admin/institution/institution-routing.module.ts
@@ -0,0 +1,53 @@
+import {AdminInstitutionCreateRoutable} from "@admin/institution/components/routables/admin-institution-create/admin-institution-create.routable";
+import {AdminInstitutionDetailRoutable} from "@admin/institution/components/routables/admin-institution-detail/admin-institution-detail.routable";
+import {AdminInstitutionEditRoutable} from "@admin/institution/components/routables/admin-institution-edit/admin-institution-edit.routable";
+import {AdminInstitutionListRoutable} from "@admin/institution/components/routables/admin-institution-list/admin-institution-list.routable";
+import {NgModule} from "@angular/core";
+import {
+  RouterModule,
+  Routes,
+} from "@angular/router";
+import {
+  AdminRoutesEnum,
+  AppRoutesEnum,
+} from "@shared/enums/routes.enum";
+import {CanDeactivateGuard} from "@shared/services/can-deactivate-guard.service";
+import {TRANSLATE} from "solidify-frontend";
+
+const routes: Routes = [
+  {
+    path: AppRoutesEnum.root,
+    component: AdminInstitutionListRoutable,
+    data: {},
+  },
+  {
+    path: AdminRoutesEnum.institutionDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminInstitutionDetailRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.institution.detail"),
+    },
+  },
+  {
+    path: AdminRoutesEnum.institutionCreate,
+    component: AdminInstitutionCreateRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.institution.create"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+  {
+    path: AdminRoutesEnum.institutionEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminInstitutionEditRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.institution.edit"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule],
+})
+export class AdminInstitutionRoutingModule {
+}
diff --git a/src/app/features/admin/institution/institution.module.ts b/src/app/features/admin/institution/institution.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..99c9bcb04e7b039aef4abbd9f5b3dcd4b258a1e9
--- /dev/null
+++ b/src/app/features/admin/institution/institution.module.ts
@@ -0,0 +1,52 @@
+import {AdminInstitutionDeleteDialog} from "@admin/institution/components/dialogs/admin-institution-delete/admin-institution-delete.dialog";
+import {AdminInstitutionFormPresentational} from "@admin/institution/components/presentationals/admin-institution-form/admin-institution-form.presentational";
+import {AdminInstitutionCreateRoutable} from "@admin/institution/components/routables/admin-institution-create/admin-institution-create.routable";
+import {AdminInstitutionDetailRoutable} from "@admin/institution/components/routables/admin-institution-detail/admin-institution-detail.routable";
+import {AdminInstitutionEditRoutable} from "@admin/institution/components/routables/admin-institution-edit/admin-institution-edit.routable";
+import {AdminInstitutionListRoutable} from "@admin/institution/components/routables/admin-institution-list/admin-institution-list.routable";
+import {AdminInstitutionRoutingModule} from "@admin/institution/institution-routing.module";
+import {AdminInstitutionState} from "@admin/institution/stores/admin-institution.state";
+import {NgModule} from "@angular/core";
+import {SharedModule} from "@app/shared/shared.module";
+import {TranslateModule} from "@ngx-translate/core";
+import {NgxsModule} from "@ngxs/store";
+
+const routables = [
+  AdminInstitutionListRoutable,
+  AdminInstitutionDetailRoutable,
+  AdminInstitutionEditRoutable,
+  AdminInstitutionCreateRoutable,
+];
+const containers = [];
+const dialogs = [
+  AdminInstitutionDeleteDialog,
+];
+const presentationals = [
+  AdminInstitutionFormPresentational,
+];
+
+@NgModule({
+  declarations: [
+    ...routables,
+    ...containers,
+    ...dialogs,
+    ...presentationals,
+  ],
+  imports: [
+    SharedModule,
+    AdminInstitutionRoutingModule,
+    TranslateModule.forChild({}),
+    NgxsModule.forFeature([
+      AdminInstitutionState,
+    ]),
+  ],
+  entryComponents: [
+    ...dialogs,
+  ],
+  exports: [
+    ...routables,
+  ],
+  providers: [],
+})
+export class AdminInstitutionModule {
+}
diff --git a/src/app/features/admin/stores/institution/admin-institution.action.ts b/src/app/features/admin/institution/stores/admin-institution.action.ts
similarity index 97%
rename from src/app/features/admin/stores/institution/admin-institution.action.ts
rename to src/app/features/admin/institution/stores/admin-institution.action.ts
index c86e1f66c9a73b849300428d92c0c0d074995842..410adb4cdd4bc6ce24e6620af5cdd2c03adfc244 100644
--- a/src/app/features/admin/stores/institution/admin-institution.action.ts
+++ b/src/app/features/admin/institution/stores/admin-institution.action.ts
@@ -1,5 +1,5 @@
 import {Institution} from "@app/generated-api";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   ResourceAction,
   ResourceNameSpace,
diff --git a/src/app/features/admin/stores/institution/admin-institution.state.ts b/src/app/features/admin/institution/stores/admin-institution.state.ts
similarity index 81%
rename from src/app/features/admin/stores/institution/admin-institution.state.ts
rename to src/app/features/admin/institution/stores/admin-institution.state.ts
index ca3047f104b226892e6c2b587eae91da0e1c6e55..a46db5e3e59abdf5fe648c11efeb7666c90ebd48 100644
--- a/src/app/features/admin/stores/institution/admin-institution.state.ts
+++ b/src/app/features/admin/institution/stores/admin-institution.state.ts
@@ -1,13 +1,13 @@
-import {adminInstitutionActionNameSpace} from "@app/features/admin/stores/institution/admin-institution.action";
+import {adminInstitutionActionNameSpace} from "@admin/institution/stores/admin-institution.action";
 import {Institution} from "@app/generated-api";
-import {AdminResourceApiEnum} from "@app/shared/enums/api.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {RoutesEnum} from "@app/shared/enums/routes.enum";
 import {
   Actions,
   State,
   Store,
 } from "@ngxs/store";
+import {AdminResourceApiEnum} from "@shared/enums/api.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {RoutesEnum} from "@shared/enums/routes.enum";
 import {
   ApiService,
   defaultResourceStateInitValue,
diff --git a/src/app/features/admin/components/dialogs/admin-license-delete/admin-license-delete.dialog.ts b/src/app/features/admin/license/components/dialogs/admin-license-delete/admin-license-delete.dialog.ts
similarity index 62%
rename from src/app/features/admin/components/dialogs/admin-license-delete/admin-license-delete.dialog.ts
rename to src/app/features/admin/license/components/dialogs/admin-license-delete/admin-license-delete.dialog.ts
index 1ae7ecbfb692b01307edd5feb6d3ae1971a3cb1c..4ee9f70e98cc9e95d6efb77c29045dcc6d97488b 100644
--- a/src/app/features/admin/components/dialogs/admin-license-delete/admin-license-delete.dialog.ts
+++ b/src/app/features/admin/license/components/dialogs/admin-license-delete/admin-license-delete.dialog.ts
@@ -1,3 +1,5 @@
+import {adminLicenseActionNameSpace} from "@admin/license/stores/admin-license.action";
+import {AdminLicenseStateModel} from "@admin/license/stores/admin-license.state";
 import {
   ChangeDetectionStrategy,
   Component,
@@ -7,19 +9,17 @@ import {
   MAT_DIALOG_DATA,
   MatDialogRef,
 } from "@angular/material";
-import {adminLicenseActionNameSpace} from "@app/features/admin/stores/license/admin-license.action";
-import {AdminLicenseStateModel} from "@app/features/admin/stores/license/admin-license.state";
 import {License} from "@app/generated-api";
-import {SharedAbstractDeleteDialog} from "@app/shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {DeleteDialog} from "@app/shared/models/delete-dialog.model";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDeleteDialog} from "@shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {DeleteDialog} from "@shared/models/delete-dialog.model";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-license-delete-dialog",
-  templateUrl: "../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
-  styleUrls: ["../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
+  templateUrl: "../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
+  styleUrls: ["../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminLicenseDeleteDialog extends SharedAbstractDeleteDialog<License, AdminLicenseStateModel> {
diff --git a/src/app/features/admin/components/presentationals/admin-license-form/admin-license-form.presentational.html b/src/app/features/admin/license/components/presentationals/admin-license-form/admin-license-form.presentational.html
similarity index 100%
rename from src/app/features/admin/components/presentationals/admin-license-form/admin-license-form.presentational.html
rename to src/app/features/admin/license/components/presentationals/admin-license-form/admin-license-form.presentational.html
diff --git a/src/app/features/admin/components/presentationals/admin-license-form/admin-license-form.presentational.ts b/src/app/features/admin/license/components/presentationals/admin-license-form/admin-license-form.presentational.ts
similarity index 90%
rename from src/app/features/admin/components/presentationals/admin-license-form/admin-license-form.presentational.ts
rename to src/app/features/admin/license/components/presentationals/admin-license-form/admin-license-form.presentational.ts
index e5efa0671cb6f1a8d5d4439d51f6ae2666e408bf..2cbac830eebe627424048b0118d36564f4b55252 100644
--- a/src/app/features/admin/components/presentationals/admin-license-form/admin-license-form.presentational.ts
+++ b/src/app/features/admin/license/components/presentationals/admin-license-form/admin-license-form.presentational.ts
@@ -8,12 +8,12 @@ import {
   Validators,
 } from "@angular/forms";
 import {License} from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
 import {
   odConformanceEnum,
   osdConformanceEnum,
-} from "@app/shared/enums/license.enums";
-import {BaseFormDefinition} from "@app/shared/models/base-form-definition.model";
+} from "@shared/enums/license.enums";
+import {BaseFormDefinition} from "@shared/models/base-form-definition.model";
 import {
   EnumUtil,
   PropertyName,
@@ -23,7 +23,7 @@ import {
 @Component({
   selector: "dlcm-admin-license-form",
   templateUrl: "./admin-license-form.presentational.html",
-  styleUrls: ["../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
+  styleUrls: ["../../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminLicenseFormPresentational extends SharedAbstractFormPresentational<License> {
diff --git a/src/app/features/admin/components/routables/admin-license-create/admin-license-create.routable.html b/src/app/features/admin/license/components/routables/admin-license-create/admin-license-create.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-license-create/admin-license-create.routable.html
rename to src/app/features/admin/license/components/routables/admin-license-create/admin-license-create.routable.html
diff --git a/src/app/features/admin/components/routables/admin-license-create/admin-license-create.routable.ts b/src/app/features/admin/license/components/routables/admin-license-create/admin-license-create.routable.ts
similarity index 52%
rename from src/app/features/admin/components/routables/admin-license-create/admin-license-create.routable.ts
rename to src/app/features/admin/license/components/routables/admin-license-create/admin-license-create.routable.ts
index 00607c3debdcd67bccce303cabe42dae366915c0..49b9904a0877ecd40217e61ec8a95b94a7cab6ee 100644
--- a/src/app/features/admin/components/routables/admin-license-create/admin-license-create.routable.ts
+++ b/src/app/features/admin/license/components/routables/admin-license-create/admin-license-create.routable.ts
@@ -1,20 +1,20 @@
+import {adminLicenseActionNameSpace} from "@admin/license/stores/admin-license.action";
+import {AdminLicenseStateModel} from "@admin/license/stores/admin-license.state";
 import {
   ChangeDetectionStrategy,
   Component,
   ViewChild,
 } from "@angular/core";
-import {adminLicenseActionNameSpace} from "@app/features/admin/stores/license/admin-license.action";
-import {AdminLicenseStateModel} from "@app/features/admin/stores/license/admin-license.state";
 import {License} from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {SharedAbstractCreateRoutable} from "@app/shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {SharedAbstractCreateRoutable} from "@shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 
 @Component({
   selector: "dlcm-admin-license-create-routable",
   templateUrl: "./admin-license-create.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminLicenseCreateRoutable extends SharedAbstractCreateRoutable<License, AdminLicenseStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-license-detail/admin-license-detail.routable.html b/src/app/features/admin/license/components/routables/admin-license-detail/admin-license-detail.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-license-detail/admin-license-detail.routable.html
rename to src/app/features/admin/license/components/routables/admin-license-detail/admin-license-detail.routable.html
diff --git a/src/app/features/admin/components/routables/admin-license-detail/admin-license-detail.routable.ts b/src/app/features/admin/license/components/routables/admin-license-detail/admin-license-detail.routable.ts
similarity index 67%
rename from src/app/features/admin/components/routables/admin-license-detail/admin-license-detail.routable.ts
rename to src/app/features/admin/license/components/routables/admin-license-detail/admin-license-detail.routable.ts
index e41f36f432747621c1358728f70781930c1b65b5..3c631b83e0a34876f0f7770e7b9a86d5e6a5632f 100644
--- a/src/app/features/admin/components/routables/admin-license-detail/admin-license-detail.routable.ts
+++ b/src/app/features/admin/license/components/routables/admin-license-detail/admin-license-detail.routable.ts
@@ -1,21 +1,21 @@
+import {adminLicenseActionNameSpace} from "@admin/license/stores/admin-license.action";
+import {AdminLicenseStateModel} from "@admin/license/stores/admin-license.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {MatDialog} from "@angular/material";
 import {ActivatedRoute} from "@angular/router";
-import {adminLicenseActionNameSpace} from "@app/features/admin/stores/license/admin-license.action";
-import {AdminLicenseStateModel} from "@app/features/admin/stores/license/admin-license.state";
 import {License} from "@app/generated-api";
-import {SharedAbstractDetailRoutable} from "@app/shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDetailRoutable} from "@shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-license-detail-routable",
   templateUrl: "./admin-license-detail.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminLicenseDetailRoutable extends SharedAbstractDetailRoutable<License, AdminLicenseStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-license-edit/admin-license-edit.routable.html b/src/app/features/admin/license/components/routables/admin-license-edit/admin-license-edit.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-license-edit/admin-license-edit.routable.html
rename to src/app/features/admin/license/components/routables/admin-license-edit/admin-license-edit.routable.html
diff --git a/src/app/features/admin/components/routables/admin-license-edit/admin-license-edit.routable.ts b/src/app/features/admin/license/components/routables/admin-license-edit/admin-license-edit.routable.ts
similarity index 58%
rename from src/app/features/admin/components/routables/admin-license-edit/admin-license-edit.routable.ts
rename to src/app/features/admin/license/components/routables/admin-license-edit/admin-license-edit.routable.ts
index aaf085ff8d8e55977a5f0b03d34cb00576efe06f..68798961ae87b985e3b5b74f086cb43a2f2047b2 100644
--- a/src/app/features/admin/components/routables/admin-license-edit/admin-license-edit.routable.ts
+++ b/src/app/features/admin/license/components/routables/admin-license-edit/admin-license-edit.routable.ts
@@ -1,19 +1,19 @@
+import {adminLicenseActionNameSpace} from "@admin/license/stores/admin-license.action";
+import {AdminLicenseStateModel} from "@admin/license/stores/admin-license.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {ActivatedRoute} from "@angular/router";
-import {adminLicenseActionNameSpace} from "@app/features/admin/stores/license/admin-license.action";
-import {AdminLicenseStateModel} from "@app/features/admin/stores/license/admin-license.state";
 import {License} from "@app/generated-api";
-import {SharedAbstractEditRoutable} from "@app/shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractEditRoutable} from "@shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 
 @Component({
   selector: "dlcm-admin-license-edit-routable",
   templateUrl: "./admin-license-edit.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminLicenseEditRoutable extends SharedAbstractEditRoutable<License, AdminLicenseStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-license-list/admin-license-list.routable.ts b/src/app/features/admin/license/components/routables/admin-license-list/admin-license-list.routable.ts
similarity index 59%
rename from src/app/features/admin/components/routables/admin-license-list/admin-license-list.routable.ts
rename to src/app/features/admin/license/components/routables/admin-license-list/admin-license-list.routable.ts
index d2544b527f5b225752e82c576358470bea831ea1..73dc387a528aa23a39e3aa22748e763e99345d40 100644
--- a/src/app/features/admin/components/routables/admin-license-list/admin-license-list.routable.ts
+++ b/src/app/features/admin/license/components/routables/admin-license-list/admin-license-list.routable.ts
@@ -1,20 +1,20 @@
+import {adminLicenseActionNameSpace} from "@admin/license/stores/admin-license.action";
+import {AdminLicenseStateModel} from "@admin/license/stores/admin-license.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
-import {adminLicenseActionNameSpace} from "@app/features/admin/stores/license/admin-license.action";
-import {AdminLicenseStateModel} from "@app/features/admin/stores/license/admin-license.state";
 import {License} from "@app/generated-api";
-import {SharedAbstractListRoutable} from "@app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
-import {FieldTypeEnum} from "@app/shared/enums/field-type.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractListRoutable} from "@shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
+import {FieldTypeEnum} from "@shared/enums/field-type.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-license-list-routable",
-  templateUrl: "../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
+  templateUrl: "../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminLicenseListRoutable extends SharedAbstractListRoutable<License, AdminLicenseStateModel> {
diff --git a/src/app/features/admin/license/license-routing.module.ts b/src/app/features/admin/license/license-routing.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c2caf0226974a26d50334ece7c2a2175d8d9ab05
--- /dev/null
+++ b/src/app/features/admin/license/license-routing.module.ts
@@ -0,0 +1,53 @@
+import {AdminLicenseCreateRoutable} from "@admin/license/components/routables/admin-license-create/admin-license-create.routable";
+import {AdminLicenseDetailRoutable} from "@admin/license/components/routables/admin-license-detail/admin-license-detail.routable";
+import {AdminLicenseEditRoutable} from "@admin/license/components/routables/admin-license-edit/admin-license-edit.routable";
+import {AdminLicenseListRoutable} from "@admin/license/components/routables/admin-license-list/admin-license-list.routable";
+import {NgModule} from "@angular/core";
+import {
+  RouterModule,
+  Routes,
+} from "@angular/router";
+import {
+  AdminRoutesEnum,
+  AppRoutesEnum,
+} from "@shared/enums/routes.enum";
+import {CanDeactivateGuard} from "@shared/services/can-deactivate-guard.service";
+import {TRANSLATE} from "solidify-frontend";
+
+const routes: Routes = [
+  {
+    path: AppRoutesEnum.root,
+    component: AdminLicenseListRoutable,
+    data: {},
+  },
+  {
+    path: AdminRoutesEnum.licenseCreate,
+    component: AdminLicenseCreateRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.license.create"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+  {
+    path: AdminRoutesEnum.licenseEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminLicenseEditRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.license.edit"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+  {
+    path: AdminRoutesEnum.licenseDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminLicenseDetailRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.license.detail"),
+    },
+  },
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule],
+})
+export class AdminLicenseRoutingModule {
+}
diff --git a/src/app/features/admin/license/license.module.ts b/src/app/features/admin/license/license.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f3b3a4e016e5b9d822a758f86d711c9ad31df844
--- /dev/null
+++ b/src/app/features/admin/license/license.module.ts
@@ -0,0 +1,52 @@
+import {AdminLicenseDeleteDialog} from "@admin/license/components/dialogs/admin-license-delete/admin-license-delete.dialog";
+import {AdminLicenseFormPresentational} from "@admin/license/components/presentationals/admin-license-form/admin-license-form.presentational";
+import {AdminLicenseRoutingModule} from "@admin/license/license-routing.module";
+import {AdminLicenseState} from "@admin/license/stores/admin-license.state";
+import {NgModule} from "@angular/core";
+import {AdminLicenseCreateRoutable} from "@app/features/admin/license/components/routables/admin-license-create/admin-license-create.routable";
+import {AdminLicenseDetailRoutable} from "@app/features/admin/license/components/routables/admin-license-detail/admin-license-detail.routable";
+import {AdminLicenseEditRoutable} from "@app/features/admin/license/components/routables/admin-license-edit/admin-license-edit.routable";
+import {AdminLicenseListRoutable} from "@app/features/admin/license/components/routables/admin-license-list/admin-license-list.routable";
+import {SharedModule} from "@app/shared/shared.module";
+import {TranslateModule} from "@ngx-translate/core";
+import {NgxsModule} from "@ngxs/store";
+
+const routables = [
+  AdminLicenseCreateRoutable,
+  AdminLicenseDetailRoutable,
+  AdminLicenseEditRoutable,
+  AdminLicenseListRoutable,
+];
+const containers = [];
+const dialogs = [
+  AdminLicenseDeleteDialog,
+];
+const presentationals = [
+  AdminLicenseFormPresentational,
+];
+
+@NgModule({
+  declarations: [
+    ...routables,
+    ...containers,
+    ...dialogs,
+    ...presentationals,
+  ],
+  imports: [
+    SharedModule,
+    AdminLicenseRoutingModule,
+    TranslateModule.forChild({}),
+    NgxsModule.forFeature([
+      AdminLicenseState,
+    ]),
+  ],
+  entryComponents: [
+    ...dialogs,
+  ],
+  exports: [
+    ...routables,
+  ],
+  providers: [],
+})
+export class AdminLicenseModule {
+}
diff --git a/src/app/features/admin/stores/license/admin-license.action.ts b/src/app/features/admin/license/stores/admin-license.action.ts
similarity index 97%
rename from src/app/features/admin/stores/license/admin-license.action.ts
rename to src/app/features/admin/license/stores/admin-license.action.ts
index a752d6a6f79df5855b3be84e9f9b92c1614e81a6..3256d83b337e6663d6620d2503f694271ea3acf4 100644
--- a/src/app/features/admin/stores/license/admin-license.action.ts
+++ b/src/app/features/admin/license/stores/admin-license.action.ts
@@ -1,5 +1,5 @@
 import {License} from "@app/generated-api";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   ResourceAction,
   ResourceNameSpace,
diff --git a/src/app/features/admin/stores/license/admin-license.state.ts b/src/app/features/admin/license/stores/admin-license.state.ts
similarity index 81%
rename from src/app/features/admin/stores/license/admin-license.state.ts
rename to src/app/features/admin/license/stores/admin-license.state.ts
index 3da59c6b1ff71ae11911197b4e141858ed3b16c6..cee3339c4ce6d4ecb137f47378fae894889bab15 100644
--- a/src/app/features/admin/stores/license/admin-license.state.ts
+++ b/src/app/features/admin/license/stores/admin-license.state.ts
@@ -1,13 +1,13 @@
-import {adminLicenseActionNameSpace} from "@app/features/admin/stores/license/admin-license.action";
+import {adminLicenseActionNameSpace} from "@admin/license/stores/admin-license.action";
 import {License} from "@app/generated-api";
-import {AdminResourceApiEnum} from "@app/shared/enums/api.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {RoutesEnum} from "@app/shared/enums/routes.enum";
 import {
   Actions,
   State,
   Store,
 } from "@ngxs/store";
+import {AdminResourceApiEnum} from "@shared/enums/api.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {RoutesEnum} from "@shared/enums/routes.enum";
 import {
   ApiService,
   defaultResourceStateInitValue,
diff --git a/src/app/features/admin/components/dialogs/admin-oauth2-client-delete/admin-oauth2-client-delete.dialog.ts b/src/app/features/admin/oauth2-client/components/dialogs/admin-oauth2-client-delete/admin-oauth2-client-delete.dialog.ts
similarity index 61%
rename from src/app/features/admin/components/dialogs/admin-oauth2-client-delete/admin-oauth2-client-delete.dialog.ts
rename to src/app/features/admin/oauth2-client/components/dialogs/admin-oauth2-client-delete/admin-oauth2-client-delete.dialog.ts
index e7727f5dd2d3f361d2906d99e49c05bf542f8e2b..241b56e17e90b3c18b9030e7857a9b7cbdb1b994 100644
--- a/src/app/features/admin/components/dialogs/admin-oauth2-client-delete/admin-oauth2-client-delete.dialog.ts
+++ b/src/app/features/admin/oauth2-client/components/dialogs/admin-oauth2-client-delete/admin-oauth2-client-delete.dialog.ts
@@ -1,3 +1,5 @@
+import {adminOAuth2ClientActionNameSpace} from "@admin/oauth2-client/stores/admin-oauth2-client.action";
+import {AdminOAuth2ClientStateModel} from "@admin/oauth2-client/stores/admin-oauth2-client.state";
 import {
   ChangeDetectionStrategy,
   Component,
@@ -7,19 +9,17 @@ import {
   MAT_DIALOG_DATA,
   MatDialogRef,
 } from "@angular/material";
-import {adminOAuth2ClientActionNameSpace} from "@app/features/admin/stores/oauth2-client/admin-oauth2-client.action";
-import {AdminOAuth2ClientStateModel} from "@app/features/admin/stores/oauth2-client/admin-oauth2-client.state";
 import {Oauth2Client} from "@app/generated-api";
-import {SharedAbstractDeleteDialog} from "@app/shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {DeleteDialog} from "@app/shared/models/delete-dialog.model";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDeleteDialog} from "@shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {DeleteDialog} from "@shared/models/delete-dialog.model";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-orgunit-delete-dialog",
-  templateUrl: "../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
-  styleUrls: ["../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
+  templateUrl: "../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
+  styleUrls: ["../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminOauth2ClientDeleteDialog extends SharedAbstractDeleteDialog<Oauth2Client, AdminOAuth2ClientStateModel> {
diff --git a/src/app/features/admin/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational.html b/src/app/features/admin/oauth2-client/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational.html
similarity index 100%
rename from src/app/features/admin/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational.html
rename to src/app/features/admin/oauth2-client/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational.html
diff --git a/src/app/features/admin/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational.ts b/src/app/features/admin/oauth2-client/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational.ts
similarity index 92%
rename from src/app/features/admin/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational.ts
rename to src/app/features/admin/oauth2-client/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational.ts
index 6836345c0b2d48f2036f6bd3443475d98fd84537..34ec76b1168c6178c24ab57d208b6272b03ee170 100644
--- a/src/app/features/admin/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational.ts
+++ b/src/app/features/admin/oauth2-client/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational.ts
@@ -9,8 +9,8 @@ import {
   Validators,
 } from "@angular/forms";
 import {Oauth2Client} from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {BaseFormDefinition} from "@app/shared/models/base-form-definition.model";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {BaseFormDefinition} from "@shared/models/base-form-definition.model";
 import {
   PropertyName,
   SolidifyValidator,
@@ -19,7 +19,7 @@ import {
 @Component({
   selector: "dlcm-admin-oauth-form",
   templateUrl: "./admin-oauth2-client-form.presentational.html",
-  styleUrls: ["../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
+  styleUrls: ["../../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminOAtuh2ClientFormPresentational extends SharedAbstractFormPresentational<Oauth2Client> {
diff --git a/src/app/features/admin/components/routables/admin-oauth2-client-create/admin-oauth2-client-create-routable.html b/src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-create/admin-oauth2-client-create.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-oauth2-client-create/admin-oauth2-client-create-routable.html
rename to src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-create/admin-oauth2-client-create.routable.html
diff --git a/src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-create/admin-oauth2-client-create.routable.ts b/src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-create/admin-oauth2-client-create.routable.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c54dd57081a14b72df4cf8551555698ecd1ebb30
--- /dev/null
+++ b/src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-create/admin-oauth2-client-create.routable.ts
@@ -0,0 +1,32 @@
+import {adminOAuth2ClientActionNameSpace} from "@admin/oauth2-client/stores/admin-oauth2-client.action";
+import {AdminOAuth2ClientStateModel} from "@admin/oauth2-client/stores/admin-oauth2-client.state";
+import {
+  ChangeDetectionStrategy,
+  Component,
+  OnInit,
+  ViewChild,
+} from "@angular/core";
+import {Oauth2Client} from "@app/generated-api";
+import {Store} from "@ngxs/store";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {SharedAbstractCreateRoutable} from "@shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+
+@Component({
+  selector: "dlcm-admin-oauth2-create-routable",
+  templateUrl: "./admin-oauth2-client-create.routable.html",
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
+  changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class AdminOauth2ClientCreateRoutable extends SharedAbstractCreateRoutable<Oauth2Client, AdminOAuth2ClientStateModel> implements OnInit {
+  @ViewChild("formPresentational", {static: false})
+  readonly formPresentational: SharedAbstractFormPresentational<Oauth2Client>;
+
+  constructor(protected store: Store) {
+    super(store, LocalStateEnum.admin_oauth2Client, adminOAuth2ClientActionNameSpace, LocalStateEnum.admin);
+  }
+
+  ngOnInit(): void {
+    super.ngOnInit();
+  }
+}
diff --git a/src/app/features/admin/components/routables/admin-oauth2-client-detail/admin-oauth2-client-detail.routable.html b/src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-detail/admin-oauth2-client-detail.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-oauth2-client-detail/admin-oauth2-client-detail.routable.html
rename to src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-detail/admin-oauth2-client-detail.routable.html
diff --git a/src/app/features/admin/components/routables/admin-oauth2-client-detail/admin-oauth2-client-detail.routable.ts b/src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-detail/admin-oauth2-client-detail.routable.ts
similarity index 66%
rename from src/app/features/admin/components/routables/admin-oauth2-client-detail/admin-oauth2-client-detail.routable.ts
rename to src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-detail/admin-oauth2-client-detail.routable.ts
index 4eebb38aa23d0f1221c1db77e2c9879b0bc4eff8..ff592448eabe6a932010062475c79924bd4d81c2 100644
--- a/src/app/features/admin/components/routables/admin-oauth2-client-detail/admin-oauth2-client-detail.routable.ts
+++ b/src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-detail/admin-oauth2-client-detail.routable.ts
@@ -1,21 +1,21 @@
+import {adminOAuth2ClientActionNameSpace} from "@admin/oauth2-client/stores/admin-oauth2-client.action";
+import {AdminOAuth2ClientStateModel} from "@admin/oauth2-client/stores/admin-oauth2-client.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {MatDialog} from "@angular/material";
 import {ActivatedRoute} from "@angular/router";
-import {adminOAuth2ClientActionNameSpace} from "@app/features/admin/stores/oauth2-client/admin-oauth2-client.action";
-import {AdminOAuth2ClientStateModel} from "@app/features/admin/stores/oauth2-client/admin-oauth2-client.state";
 import {Oauth2Client} from "@app/generated-api";
-import {SharedAbstractDetailRoutable} from "@app/shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDetailRoutable} from "@shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-oauth2-client-detail-routable",
   templateUrl: "./admin-oauth2-client-detail.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminOAuth2ClientDetailRoutable extends SharedAbstractDetailRoutable<Oauth2Client, AdminOAuth2ClientStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-oauth2-client-edit/admin-oauth2-client-edit-routable.html b/src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-edit/admin-oauth2-client-edit.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-oauth2-client-edit/admin-oauth2-client-edit-routable.html
rename to src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-edit/admin-oauth2-client-edit.routable.html
diff --git a/src/app/features/admin/components/routables/admin-oauth2-client-edit/admin-oauth2-client-edit-routable.ts b/src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-edit/admin-oauth2-client-edit.routable.ts
similarity index 52%
rename from src/app/features/admin/components/routables/admin-oauth2-client-edit/admin-oauth2-client-edit-routable.ts
rename to src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-edit/admin-oauth2-client-edit.routable.ts
index e2d8a3fa6d58647260e4229eccedf4a2c9df2e30..1dd828b5ef2f610ed693bccf12179d9178b88c8f 100644
--- a/src/app/features/admin/components/routables/admin-oauth2-client-edit/admin-oauth2-client-edit-routable.ts
+++ b/src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-edit/admin-oauth2-client-edit.routable.ts
@@ -1,23 +1,23 @@
+import {adminOAuth2ClientActionNameSpace} from "@admin/oauth2-client/stores/admin-oauth2-client.action";
+import {AdminOAuth2ClientStateModel} from "@admin/oauth2-client/stores/admin-oauth2-client.state";
 import {
   ChangeDetectionStrategy,
   Component,
   OnInit,
 } from "@angular/core";
 import {ActivatedRoute} from "@angular/router";
-import {adminOAuth2ClientActionNameSpace} from "@app/features/admin/stores/oauth2-client/admin-oauth2-client.action";
-import {AdminOAuth2ClientStateModel} from "@app/features/admin/stores/oauth2-client/admin-oauth2-client.state";
 import {Oauth2Client} from "@app/generated-api";
-import {SharedAbstractEditRoutable} from "@app/shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractEditRoutable} from "@shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 
 @Component({
   selector: "dlcm-admin-oauth2-client-edit-routable",
-  templateUrl: "./admin-oauth2-client-edit-routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
+  templateUrl: "./admin-oauth2-client-edit.routable.html",
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
-export class AdminOAuth2ClientEditRoutable extends SharedAbstractEditRoutable<Oauth2Client, AdminOAuth2ClientStateModel> implements OnInit {
+export class AdminOauth2ClientEditRoutable extends SharedAbstractEditRoutable<Oauth2Client, AdminOAuth2ClientStateModel> implements OnInit {
   constructor(protected store: Store,
               protected route: ActivatedRoute) {
     super(store, route, LocalStateEnum.admin_oauth2Client, adminOAuth2ClientActionNameSpace, LocalStateEnum.admin);
diff --git a/src/app/features/admin/components/routables/admin-oauth2-client-list/admin-oauth2-client-list-routable.component.ts b/src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-list/admin-oauth2-client-list.routable.ts
similarity index 67%
rename from src/app/features/admin/components/routables/admin-oauth2-client-list/admin-oauth2-client-list-routable.component.ts
rename to src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-list/admin-oauth2-client-list.routable.ts
index c9d450a1a7cbb53c093da9abbbc7ff103a30ff10..02ea9960db94dd6d7611a79994f6ad3fdff4bd26 100644
--- a/src/app/features/admin/components/routables/admin-oauth2-client-list/admin-oauth2-client-list-routable.component.ts
+++ b/src/app/features/admin/oauth2-client/components/routables/admin-oauth2-client-list/admin-oauth2-client-list.routable.ts
@@ -1,20 +1,20 @@
+import {adminOAuth2ClientActionNameSpace} from "@admin/oauth2-client/stores/admin-oauth2-client.action";
+import {AdminOAuth2ClientStateModel} from "@admin/oauth2-client/stores/admin-oauth2-client.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
-import {adminOAuth2ClientActionNameSpace} from "@app/features/admin/stores/oauth2-client/admin-oauth2-client.action";
-import {AdminOAuth2ClientStateModel} from "@app/features/admin/stores/oauth2-client/admin-oauth2-client.state";
 import {Oauth2Client} from "@app/generated-api";
-import {SharedAbstractListRoutable} from "@app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
-import {FieldTypeEnum} from "@app/shared/enums/field-type.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractListRoutable} from "@shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
+import {FieldTypeEnum} from "@shared/enums/field-type.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-submission-policy-list-routable",
-  templateUrl: "../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
+  templateUrl: "../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminOAuth2ClientListRoutable extends SharedAbstractListRoutable<Oauth2Client, AdminOAuth2ClientStateModel> {
diff --git a/src/app/features/admin/oauth2-client/oauth2-client-routing.module.ts b/src/app/features/admin/oauth2-client/oauth2-client-routing.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d74c511cdc3c7eeb41b986d78034437b20cc17b4
--- /dev/null
+++ b/src/app/features/admin/oauth2-client/oauth2-client-routing.module.ts
@@ -0,0 +1,54 @@
+import {AdminOauth2ClientCreateRoutable} from "@admin/oauth2-client/components/routables/admin-oauth2-client-create/admin-oauth2-client-create.routable";
+import {AdminOAuth2ClientDetailRoutable} from "@admin/oauth2-client/components/routables/admin-oauth2-client-detail/admin-oauth2-client-detail.routable";
+import {AdminOauth2ClientEditRoutable} from "@admin/oauth2-client/components/routables/admin-oauth2-client-edit/admin-oauth2-client-edit.routable";
+import {AdminOAuth2ClientListRoutable} from "@admin/oauth2-client/components/routables/admin-oauth2-client-list/admin-oauth2-client-list.routable";
+import {NgModule} from "@angular/core";
+import {
+  RouterModule,
+  Routes,
+} from "@angular/router";
+import {
+  AdminRoutesEnum,
+  AppRoutesEnum,
+} from "@shared/enums/routes.enum";
+import {CanDeactivateGuard} from "@shared/services/can-deactivate-guard.service";
+import {TRANSLATE} from "solidify-frontend";
+
+const routes: Routes = [
+  {
+    path: AppRoutesEnum.root,
+    component: AdminOAuth2ClientListRoutable,
+    data: {},
+  },
+  {
+    path: AdminRoutesEnum.oauth2clientDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminOAuth2ClientDetailRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.oauth2Client.detail"),
+    },
+  },
+  {
+    component: AdminOauth2ClientCreateRoutable,
+    path: AdminRoutesEnum.oauth2clientCreate,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.oauth2Client.create"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+  {
+    path: AdminRoutesEnum.oauth2clientEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminOauth2ClientEditRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.oauth2Client.edit"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule],
+})
+export class AdminOauth2ClientRoutingModule {
+}
diff --git a/src/app/features/admin/oauth2-client/oauth2-client.module.ts b/src/app/features/admin/oauth2-client/oauth2-client.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..afc1d60006d1844d5b6dbacd3b08557b487930d8
--- /dev/null
+++ b/src/app/features/admin/oauth2-client/oauth2-client.module.ts
@@ -0,0 +1,52 @@
+import {AdminOauth2ClientDeleteDialog} from "@admin/oauth2-client/components/dialogs/admin-oauth2-client-delete/admin-oauth2-client-delete.dialog";
+import {AdminOAtuh2ClientFormPresentational} from "@admin/oauth2-client/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational";
+import {AdminOauth2ClientCreateRoutable} from "@admin/oauth2-client/components/routables/admin-oauth2-client-create/admin-oauth2-client-create.routable";
+import {AdminOAuth2ClientDetailRoutable} from "@admin/oauth2-client/components/routables/admin-oauth2-client-detail/admin-oauth2-client-detail.routable";
+import {AdminOauth2ClientEditRoutable} from "@admin/oauth2-client/components/routables/admin-oauth2-client-edit/admin-oauth2-client-edit.routable";
+import {AdminOAuth2ClientListRoutable} from "@admin/oauth2-client/components/routables/admin-oauth2-client-list/admin-oauth2-client-list.routable";
+import {AdminOauth2ClientRoutingModule} from "@admin/oauth2-client/oauth2-client-routing.module";
+import {AdminOAuth2ClientState} from "@admin/oauth2-client/stores/admin-oauth2-client.state";
+import {NgModule} from "@angular/core";
+import {SharedModule} from "@app/shared/shared.module";
+import {TranslateModule} from "@ngx-translate/core";
+import {NgxsModule} from "@ngxs/store";
+
+const routables = [
+  AdminOAuth2ClientListRoutable,
+  AdminOAuth2ClientDetailRoutable,
+  AdminOauth2ClientEditRoutable,
+  AdminOauth2ClientCreateRoutable,
+];
+const containers = [];
+const dialogs = [
+  AdminOauth2ClientDeleteDialog,
+];
+const presentationals = [
+  AdminOAtuh2ClientFormPresentational,
+];
+
+@NgModule({
+  declarations: [
+    ...routables,
+    ...containers,
+    ...dialogs,
+    ...presentationals,
+  ],
+  imports: [
+    SharedModule,
+    AdminOauth2ClientRoutingModule,
+    TranslateModule.forChild({}),
+    NgxsModule.forFeature([
+      AdminOAuth2ClientState,
+    ]),
+  ],
+  entryComponents: [
+    ...dialogs,
+  ],
+  exports: [
+    ...routables,
+  ],
+  providers: [],
+})
+export class AdminOauth2ClientModule {
+}
diff --git a/src/app/features/admin/stores/oauth2-client/admin-oauth2-client.action.ts b/src/app/features/admin/oauth2-client/stores/admin-oauth2-client.action.ts
similarity index 97%
rename from src/app/features/admin/stores/oauth2-client/admin-oauth2-client.action.ts
rename to src/app/features/admin/oauth2-client/stores/admin-oauth2-client.action.ts
index 9480e175e2b1b5c0c9de8202c4e32c31a8fab345..6391a050151278ca59c944029d843ace4558db79 100644
--- a/src/app/features/admin/stores/oauth2-client/admin-oauth2-client.action.ts
+++ b/src/app/features/admin/oauth2-client/stores/admin-oauth2-client.action.ts
@@ -1,5 +1,5 @@
 import {SubmissionPolicy} from "@app/generated-api";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   ResourceAction,
   ResourceNameSpace,
diff --git a/src/app/features/admin/stores/oauth2-client/admin-oauth2-client.state.ts b/src/app/features/admin/oauth2-client/stores/admin-oauth2-client.state.ts
similarity index 81%
rename from src/app/features/admin/stores/oauth2-client/admin-oauth2-client.state.ts
rename to src/app/features/admin/oauth2-client/stores/admin-oauth2-client.state.ts
index 00bf35cb4febb5e60ea3c892096f3ad92f083d77..a0516c9af2be324db80e6f587bb0f4b86f324177 100644
--- a/src/app/features/admin/stores/oauth2-client/admin-oauth2-client.state.ts
+++ b/src/app/features/admin/oauth2-client/stores/admin-oauth2-client.state.ts
@@ -1,13 +1,13 @@
-import {adminOAuth2ClientActionNameSpace} from "@app/features/admin/stores/oauth2-client/admin-oauth2-client.action";
+import {adminOAuth2ClientActionNameSpace} from "@admin/oauth2-client/stores/admin-oauth2-client.action";
 import {Oauth2Client} from "@app/generated-api";
-import {AdminResourceApiEnum} from "@app/shared/enums/api.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {RoutesEnum} from "@app/shared/enums/routes.enum";
 import {
   Actions,
   State,
   Store,
 } from "@ngxs/store";
+import {AdminResourceApiEnum} from "@shared/enums/api.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {RoutesEnum} from "@shared/enums/routes.enum";
 import {
   ApiService,
   defaultResourceStateInitValue,
diff --git a/src/app/features/admin/components/dialogs/admin-orgunit-delete/admin-orgunit-delete.dialog.ts b/src/app/features/admin/orgunit/components/dialogs/admin-orgunit-delete/admin-orgunit-delete.dialog.ts
similarity index 58%
rename from src/app/features/admin/components/dialogs/admin-orgunit-delete/admin-orgunit-delete.dialog.ts
rename to src/app/features/admin/orgunit/components/dialogs/admin-orgunit-delete/admin-orgunit-delete.dialog.ts
index 7a658bb4fbf0319e0fe63ed121bb207408a04ca0..bf95994909298284dfb259d7dd3c3eb3e8118fe0 100644
--- a/src/app/features/admin/components/dialogs/admin-orgunit-delete/admin-orgunit-delete.dialog.ts
+++ b/src/app/features/admin/orgunit/components/dialogs/admin-orgunit-delete/admin-orgunit-delete.dialog.ts
@@ -1,3 +1,5 @@
+import {adminOrgUnitActionNameSpace} from "@admin/orgunit/stores/admin-organizational-unit.action";
+import {AdminOrganizationalUnitStateModel} from "@admin/orgunit/stores/admin-organizational-unit.state";
 import {
   ChangeDetectionStrategy,
   Component,
@@ -7,19 +9,17 @@ import {
   MAT_DIALOG_DATA,
   MatDialogRef,
 } from "@angular/material";
-import {adminOrgUnitActionNameSpace} from "@app/features/admin/stores/organizational-unit/admin-organizational-unit.action";
-import {AdminOrganizationalUnitStateModel} from "@app/features/admin/stores/organizational-unit/admin-organizational-unit.state";
-import {OrganizationalUnitExtended} from "@app/features/deposit/models/organizational-unit-extended.model";
-import {SharedAbstractDeleteDialog} from "@app/shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {DeleteDialog} from "@app/shared/models/delete-dialog.model";
+import {OrganizationalUnitExtended} from "@deposit/models/organizational-unit-extended.model";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDeleteDialog} from "@shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {DeleteDialog} from "@shared/models/delete-dialog.model";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-orgunit-delete-dialog",
-  templateUrl: "../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
-  styleUrls: ["../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
+  templateUrl: "../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
+  styleUrls: ["../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminOrgunitDeleteDialog extends SharedAbstractDeleteDialog<OrganizationalUnitExtended, AdminOrganizationalUnitStateModel> {
diff --git a/src/app/features/admin/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational.html b/src/app/features/admin/orgunit/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational.html
similarity index 100%
rename from src/app/features/admin/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational.html
rename to src/app/features/admin/orgunit/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational.html
diff --git a/src/app/features/admin/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational.ts b/src/app/features/admin/orgunit/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational.ts
similarity index 89%
rename from src/app/features/admin/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational.ts
rename to src/app/features/admin/orgunit/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational.ts
index 5a1408423c10f7d610c725048c5c532cce37f425..2c0d14b8e616a8fe7f38c77c011b72dbeb06185f 100644
--- a/src/app/features/admin/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational.ts
+++ b/src/app/features/admin/orgunit/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational.ts
@@ -8,14 +8,14 @@ import {
   FormBuilder,
   Validators,
 } from "@angular/forms";
-import {OrganizationalUnitExtended} from "@app/features/deposit/models/organizational-unit-extended.model";
 import {
   PreservationPolicy,
   SubmissionPolicy,
 } from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {LocalModelAttributeEnum} from "@app/shared/enums/model-attribute.enum";
-import {BaseFormDefinition} from "@app/shared/models/base-form-definition.model";
+import {OrganizationalUnitExtended} from "@deposit/models/organizational-unit-extended.model";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {LocalModelAttributeEnum} from "@shared/enums/model-attribute.enum";
+import {BaseFormDefinition} from "@shared/models/base-form-definition.model";
 import _ from "lodash";
 import {
   DateUtil,
@@ -26,7 +26,7 @@ import {
 @Component({
   selector: "dlcm-admin-orgunit-form",
   templateUrl: "./admin-orgunit-form.presentational.html",
-  styleUrls: ["../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
+  styleUrls: ["../../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminOrgunitFormPresentational extends SharedAbstractFormPresentational<OrganizationalUnitExtended> {
diff --git a/src/app/features/admin/components/routables/admin-orgunit-create/admin-orgunit-create.routable.html b/src/app/features/admin/orgunit/components/routables/admin-orgunit-create/admin-orgunit-create.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-orgunit-create/admin-orgunit-create.routable.html
rename to src/app/features/admin/orgunit/components/routables/admin-orgunit-create/admin-orgunit-create.routable.html
diff --git a/src/app/features/admin/components/routables/admin-orgunit-create/admin-orgunit-create.routable.ts b/src/app/features/admin/orgunit/components/routables/admin-orgunit-create/admin-orgunit-create.routable.ts
similarity index 56%
rename from src/app/features/admin/components/routables/admin-orgunit-create/admin-orgunit-create.routable.ts
rename to src/app/features/admin/orgunit/components/routables/admin-orgunit-create/admin-orgunit-create.routable.ts
index f9c8c732c4b845f8d53e3d0f2e37132df3fce2b3..c29bd931825faa986143f8e0d0c86ea8005971d9 100644
--- a/src/app/features/admin/components/routables/admin-orgunit-create/admin-orgunit-create.routable.ts
+++ b/src/app/features/admin/orgunit/components/routables/admin-orgunit-create/admin-orgunit-create.routable.ts
@@ -1,27 +1,27 @@
+import {adminOrgUnitActionNameSpace} from "@admin/orgunit/stores/admin-organizational-unit.action";
+import {AdminOrganizationalUnitStateModel} from "@admin/orgunit/stores/admin-organizational-unit.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
-import {adminOrgUnitActionNameSpace} from "@app/features/admin/stores/organizational-unit/admin-organizational-unit.action";
-import {AdminOrganizationalUnitStateModel} from "@app/features/admin/stores/organizational-unit/admin-organizational-unit.state";
-import {OrganizationalUnitExtended} from "@app/features/deposit/models/organizational-unit-extended.model";
 import {
   PreservationPolicy,
   SubmissionPolicy,
 } from "@app/generated-api";
-import {SharedAbstractCreateRoutable} from "@app/shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {LocalStateModel} from "@app/shared/models/local-state.model";
+import {OrganizationalUnitExtended} from "@deposit/models/organizational-unit-extended.model";
 import {
   Select,
   Store,
 } from "@ngxs/store";
+import {SharedAbstractCreateRoutable} from "@shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {LocalStateModel} from "@shared/models/local-state.model";
 import {Observable} from "rxjs";
 
 @Component({
   selector: "dlcm-admin-orgunit-create-routable",
   templateUrl: "./admin-orgunit-create.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminOrgunitCreateRoutable extends SharedAbstractCreateRoutable<OrganizationalUnitExtended, AdminOrganizationalUnitStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-orgunit-detail/admin-orgunit-detail.routable.html b/src/app/features/admin/orgunit/components/routables/admin-orgunit-detail/admin-orgunit-detail.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-orgunit-detail/admin-orgunit-detail.routable.html
rename to src/app/features/admin/orgunit/components/routables/admin-orgunit-detail/admin-orgunit-detail.routable.html
diff --git a/src/app/features/admin/components/routables/admin-orgunit-detail/admin-orgunit-detail.routable.ts b/src/app/features/admin/orgunit/components/routables/admin-orgunit-detail/admin-orgunit-detail.routable.ts
similarity index 69%
rename from src/app/features/admin/components/routables/admin-orgunit-detail/admin-orgunit-detail.routable.ts
rename to src/app/features/admin/orgunit/components/routables/admin-orgunit-detail/admin-orgunit-detail.routable.ts
index fd813cf89853236a4273f008e61b64e03d82a318..4762a73a4db32cb81b298e304bc577c13d30af99 100644
--- a/src/app/features/admin/components/routables/admin-orgunit-detail/admin-orgunit-detail.routable.ts
+++ b/src/app/features/admin/orgunit/components/routables/admin-orgunit-detail/admin-orgunit-detail.routable.ts
@@ -1,25 +1,25 @@
+import {adminOrgUnitActionNameSpace} from "@admin/orgunit/stores/admin-organizational-unit.action";
+import {AdminOrganizationalUnitStateModel} from "@admin/orgunit/stores/admin-organizational-unit.state";
+import {AdminOrgUnitPreservationPolicyAction} from "@admin/orgunit/stores/preservation-policy/admin-organizational-unit-preservation-policy.action";
+import {AdminOrgUnitSubmissionPolicyAction} from "@admin/orgunit/stores/submission-policy/admin-organizational-unit-submission-policy.action";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {MatDialog} from "@angular/material";
 import {ActivatedRoute} from "@angular/router";
-import {adminOrgUnitActionNameSpace} from "@app/features/admin/stores/organizational-unit/admin-organizational-unit.action";
-import {AdminOrganizationalUnitStateModel} from "@app/features/admin/stores/organizational-unit/admin-organizational-unit.state";
-import {AdminOrgUnitPreservationPolicyAction} from "@app/features/admin/stores/organizational-unit/preservation-policy/admin-organizational-unit-preservation-policy.action";
-import {AdminOrgUnitSubmissionPolicyAction} from "@app/features/admin/stores/organizational-unit/submission-policy/admin-organizational-unit-submission-policy.action";
-import {OrganizationalUnitExtended} from "@app/features/deposit/models/organizational-unit-extended.model";
 import {
   PreservationPolicy,
   SubmissionPolicy,
 } from "@app/generated-api";
-import {SharedAbstractDetailRoutable} from "@app/shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {LocalStateModel} from "@app/shared/models/local-state.model";
+import {OrganizationalUnitExtended} from "@deposit/models/organizational-unit-extended.model";
 import {
   Select,
   Store,
 } from "@ngxs/store";
+import {SharedAbstractDetailRoutable} from "@shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {LocalStateModel} from "@shared/models/local-state.model";
 import {Observable} from "rxjs";
 import {
   StoreUtil,
@@ -29,7 +29,7 @@ import {
 @Component({
   selector: "dlcm-admin-orgunit-detail-routable",
   templateUrl: "./admin-orgunit-detail.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminOrgunitDetailRoutable extends SharedAbstractDetailRoutable<OrganizationalUnitExtended, AdminOrganizationalUnitStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-orgunit-edit/admin-orgunit-edit.routable.html b/src/app/features/admin/orgunit/components/routables/admin-orgunit-edit/admin-orgunit-edit.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-orgunit-edit/admin-orgunit-edit.routable.html
rename to src/app/features/admin/orgunit/components/routables/admin-orgunit-edit/admin-orgunit-edit.routable.html
diff --git a/src/app/features/admin/components/routables/admin-orgunit-edit/admin-orgunit-edit.routable.ts b/src/app/features/admin/orgunit/components/routables/admin-orgunit-edit/admin-orgunit-edit.routable.ts
similarity index 66%
rename from src/app/features/admin/components/routables/admin-orgunit-edit/admin-orgunit-edit.routable.ts
rename to src/app/features/admin/orgunit/components/routables/admin-orgunit-edit/admin-orgunit-edit.routable.ts
index 27b90d6a9c8e309502256dcdad8193ef0591d64f..17f3fbd1e1da6ee5e043cee39e0325d73b49d301 100644
--- a/src/app/features/admin/components/routables/admin-orgunit-edit/admin-orgunit-edit.routable.ts
+++ b/src/app/features/admin/orgunit/components/routables/admin-orgunit-edit/admin-orgunit-edit.routable.ts
@@ -1,31 +1,31 @@
+import {adminOrgUnitActionNameSpace} from "@admin/orgunit/stores/admin-organizational-unit.action";
+import {AdminOrganizationalUnitStateModel} from "@admin/orgunit/stores/admin-organizational-unit.state";
+import {AdminOrgUnitPreservationPolicyAction} from "@admin/orgunit/stores/preservation-policy/admin-organizational-unit-preservation-policy.action";
+import {AdminOrgUnitSubmissionPolicyAction} from "@admin/orgunit/stores/submission-policy/admin-organizational-unit-submission-policy.action";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {ActivatedRoute} from "@angular/router";
-import {adminOrgUnitActionNameSpace} from "@app/features/admin/stores/organizational-unit/admin-organizational-unit.action";
-import {AdminOrganizationalUnitStateModel} from "@app/features/admin/stores/organizational-unit/admin-organizational-unit.state";
-import {AdminOrgUnitPreservationPolicyAction} from "@app/features/admin/stores/organizational-unit/preservation-policy/admin-organizational-unit-preservation-policy.action";
-import {AdminOrgUnitSubmissionPolicyAction} from "@app/features/admin/stores/organizational-unit/submission-policy/admin-organizational-unit-submission-policy.action";
-import {OrganizationalUnitExtended} from "@app/features/deposit/models/organizational-unit-extended.model";
 import {
   PreservationPolicy,
   SubmissionPolicy,
 } from "@app/generated-api";
-import {SharedAbstractEditRoutable} from "@app/shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {LocalStateModel} from "@app/shared/models/local-state.model";
+import {OrganizationalUnitExtended} from "@deposit/models/organizational-unit-extended.model";
 import {
   Select,
   Store,
 } from "@ngxs/store";
+import {SharedAbstractEditRoutable} from "@shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {LocalStateModel} from "@shared/models/local-state.model";
 import {Observable} from "rxjs";
 import {StoreUtil} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-orgunit-edit-routable",
   templateUrl: "./admin-orgunit-edit.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminOrgunitEditRoutable extends SharedAbstractEditRoutable<OrganizationalUnitExtended, AdminOrganizationalUnitStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-orgunit-list/admin-orgunit-list.routable.ts b/src/app/features/admin/orgunit/components/routables/admin-orgunit-list/admin-orgunit-list.routable.ts
similarity index 63%
rename from src/app/features/admin/components/routables/admin-orgunit-list/admin-orgunit-list.routable.ts
rename to src/app/features/admin/orgunit/components/routables/admin-orgunit-list/admin-orgunit-list.routable.ts
index 11f58caa7d19c6f03533656780daa16db690026c..7df98523b6a9b86a5ee2b44f455264aa55fb8101 100644
--- a/src/app/features/admin/components/routables/admin-orgunit-list/admin-orgunit-list.routable.ts
+++ b/src/app/features/admin/orgunit/components/routables/admin-orgunit-list/admin-orgunit-list.routable.ts
@@ -1,20 +1,20 @@
+import {adminOrgUnitActionNameSpace} from "@admin/orgunit/stores/admin-organizational-unit.action";
+import {AdminOrganizationalUnitStateModel} from "@admin/orgunit/stores/admin-organizational-unit.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
-import {adminOrgUnitActionNameSpace} from "@app/features/admin/stores/organizational-unit/admin-organizational-unit.action";
-import {AdminOrganizationalUnitStateModel} from "@app/features/admin/stores/organizational-unit/admin-organizational-unit.state";
-import {OrganizationalUnitExtended} from "@app/features/deposit/models/organizational-unit-extended.model";
-import {SharedAbstractListRoutable} from "@app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
-import {FieldTypeEnum} from "@app/shared/enums/field-type.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {OrganizationalUnitExtended} from "@deposit/models/organizational-unit-extended.model";
 import {Store} from "@ngxs/store";
+import {SharedAbstractListRoutable} from "@shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
+import {FieldTypeEnum} from "@shared/enums/field-type.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-orgunit-list-routable",
-  templateUrl: "../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
+  templateUrl: "../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminOrgunitListRoutable extends SharedAbstractListRoutable<OrganizationalUnitExtended, AdminOrganizationalUnitStateModel> {
diff --git a/src/app/features/admin/orgunit/orgunit-routing.module.ts b/src/app/features/admin/orgunit/orgunit-routing.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..049c7550ae575e52731d68ca6f73904e8e58e425
--- /dev/null
+++ b/src/app/features/admin/orgunit/orgunit-routing.module.ts
@@ -0,0 +1,54 @@
+import {AdminOrgunitCreateRoutable} from "@admin/orgunit/components/routables/admin-orgunit-create/admin-orgunit-create.routable";
+import {AdminOrgunitDetailRoutable} from "@admin/orgunit/components/routables/admin-orgunit-detail/admin-orgunit-detail.routable";
+import {AdminOrgunitEditRoutable} from "@admin/orgunit/components/routables/admin-orgunit-edit/admin-orgunit-edit.routable";
+import {AdminOrgunitListRoutable} from "@admin/orgunit/components/routables/admin-orgunit-list/admin-orgunit-list.routable";
+import {NgModule} from "@angular/core";
+import {
+  RouterModule,
+  Routes,
+} from "@angular/router";
+import {
+  AdminRoutesEnum,
+  AppRoutesEnum,
+} from "@shared/enums/routes.enum";
+import {CanDeactivateGuard} from "@shared/services/can-deactivate-guard.service";
+import {TRANSLATE} from "solidify-frontend";
+
+const routes: Routes = [
+  {
+    path: AppRoutesEnum.root,
+    component: AdminOrgunitListRoutable,
+    data: {},
+  },
+  {
+    path: AdminRoutesEnum.organizationalUnitDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminOrgunitDetailRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.organizationalUnit.detail"),
+    },
+  },
+  {
+    path: AdminRoutesEnum.organizationalUnitEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminOrgunitEditRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.organizationalUnit.edit"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+  {
+    path: AdminRoutesEnum.organizationalUnitCreate,
+    component: AdminOrgunitCreateRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.organizationalUnit.create"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule],
+})
+export class AdminOrgunitRoutingModule {
+}
diff --git a/src/app/features/admin/orgunit/orgunit.module.ts b/src/app/features/admin/orgunit/orgunit.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..01e9848b50663cf11fd0c27af225b2c95a213530
--- /dev/null
+++ b/src/app/features/admin/orgunit/orgunit.module.ts
@@ -0,0 +1,52 @@
+import {AdminOrgunitDeleteDialog} from "@admin/orgunit/components/dialogs/admin-orgunit-delete/admin-orgunit-delete.dialog";
+import {AdminOrgunitFormPresentational} from "@admin/orgunit/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational";
+import {AdminOrgunitCreateRoutable} from "@admin/orgunit/components/routables/admin-orgunit-create/admin-orgunit-create.routable";
+import {AdminOrgunitDetailRoutable} from "@admin/orgunit/components/routables/admin-orgunit-detail/admin-orgunit-detail.routable";
+import {AdminOrgunitEditRoutable} from "@admin/orgunit/components/routables/admin-orgunit-edit/admin-orgunit-edit.routable";
+import {AdminOrgunitListRoutable} from "@admin/orgunit/components/routables/admin-orgunit-list/admin-orgunit-list.routable";
+import {AdminOrgunitRoutingModule} from "@admin/orgunit/orgunit-routing.module";
+import {AdminOrganizationalUnitState} from "@admin/orgunit/stores/admin-organizational-unit.state";
+import {NgModule} from "@angular/core";
+import {SharedModule} from "@app/shared/shared.module";
+import {TranslateModule} from "@ngx-translate/core";
+import {NgxsModule} from "@ngxs/store";
+
+const routables = [
+  AdminOrgunitDetailRoutable,
+  AdminOrgunitListRoutable,
+  AdminOrgunitCreateRoutable,
+  AdminOrgunitEditRoutable,
+];
+const containers = [];
+const dialogs = [
+  AdminOrgunitDeleteDialog,
+];
+const presentationals = [
+  AdminOrgunitFormPresentational,
+];
+
+@NgModule({
+  declarations: [
+    ...routables,
+    ...containers,
+    ...dialogs,
+    ...presentationals,
+  ],
+  imports: [
+    SharedModule,
+    AdminOrgunitRoutingModule,
+    TranslateModule.forChild({}),
+    NgxsModule.forFeature([
+      AdminOrganizationalUnitState,
+    ]),
+  ],
+  entryComponents: [
+    ...dialogs,
+  ],
+  exports: [
+    ...routables,
+  ],
+  providers: [],
+})
+export class AdminOrgunitModule {
+}
diff --git a/src/app/features/admin/stores/organizational-unit/admin-organizational-unit.action.ts b/src/app/features/admin/orgunit/stores/admin-organizational-unit.action.ts
similarity index 93%
rename from src/app/features/admin/stores/organizational-unit/admin-organizational-unit.action.ts
rename to src/app/features/admin/orgunit/stores/admin-organizational-unit.action.ts
index dd3cac819054f1aa6c9b47fec7f8358de9d1a2a8..129f2bc471db675bec20f9865fa3ed4fcae2ff43 100644
--- a/src/app/features/admin/stores/organizational-unit/admin-organizational-unit.action.ts
+++ b/src/app/features/admin/orgunit/stores/admin-organizational-unit.action.ts
@@ -1,5 +1,5 @@
-import {OrganizationalUnitExtended} from "@app/features/deposit/models/organizational-unit-extended.model";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {OrganizationalUnitExtended} from "@deposit/models/organizational-unit-extended.model";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   ResourceAction,
   ResourceNameSpace,
diff --git a/src/app/features/admin/stores/organizational-unit/admin-organizational-unit.state.ts b/src/app/features/admin/orgunit/stores/admin-organizational-unit.state.ts
similarity index 85%
rename from src/app/features/admin/stores/organizational-unit/admin-organizational-unit.state.ts
rename to src/app/features/admin/orgunit/stores/admin-organizational-unit.state.ts
index caabc808f73aef72e5715fbdc92b31a6b4ff3260..1a1456ad55d60fd65a647b1fe83aa9e03714dbbd 100644
--- a/src/app/features/admin/stores/organizational-unit/admin-organizational-unit.state.ts
+++ b/src/app/features/admin/orgunit/stores/admin-organizational-unit.state.ts
@@ -1,27 +1,21 @@
-import {OrganizationalUnitPreservationPolicy} from "@app/features/admin/models/organizational-unit-preservation-policy.model";
-import {OrganizationalUnitSubmissionPolicy} from "@app/features/admin/models/organizational-unit-submission-policy.model";
+import {OrganizationalUnitPreservationPolicy} from "@admin/models/organizational-unit-preservation-policy.model";
+import {OrganizationalUnitSubmissionPolicy} from "@admin/models/organizational-unit-submission-policy.model";
 import {
   AdminOrgUnitAction,
   adminOrgUnitActionNameSpace,
-} from "@app/features/admin/stores/organizational-unit/admin-organizational-unit.action";
-import {adminOrgUnitPreservationPolicyActionNameSpace} from "@app/features/admin/stores/organizational-unit/preservation-policy/admin-organizational-unit-preservation-policy.action";
+} from "@admin/orgunit/stores/admin-organizational-unit.action";
+import {adminOrgUnitPreservationPolicyActionNameSpace} from "@admin/orgunit/stores/preservation-policy/admin-organizational-unit-preservation-policy.action";
 import {
   AdminOrganizationalUnitPreservationPolicyState,
   AdminOrganizationalUnitPreservationPolicyStateModel,
-} from "@app/features/admin/stores/organizational-unit/preservation-policy/admin-organizational-unit-preservation-policy.state";
-import {adminOrgUnitSubmissionPolicyActionNameSpace} from "@app/features/admin/stores/organizational-unit/submission-policy/admin-organizational-unit-submission-policy.action";
+} from "@admin/orgunit/stores/preservation-policy/admin-organizational-unit-preservation-policy.state";
+import {adminOrgUnitSubmissionPolicyActionNameSpace} from "@admin/orgunit/stores/submission-policy/admin-organizational-unit-submission-policy.action";
 import {
   AdminOrganizationalUnitSubmissionPolicyState,
   AdminOrganizationalUnitSubmissionPolicyStateModel,
-} from "@app/features/admin/stores/organizational-unit/submission-policy/admin-organizational-unit-submission-policy.state";
-import {OrganizationalUnitExtended} from "@app/features/deposit/models/organizational-unit-extended.model";
-import {DepositStateModel} from "@app/features/deposit/stores/deposit.state";
-import {AdminResourceApiEnum} from "@app/shared/enums/api.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {LocalModelAttributeEnum} from "@app/shared/enums/model-attribute.enum";
-import {RoutesEnum} from "@app/shared/enums/routes.enum";
-import {SharedPreservationPolicyAction} from "@app/shared/stores/preservation-policy/shared-preservation-policy.action";
-import {SharedSubmissionPolicyAction} from "@app/shared/stores/submission-policy/shared-submission-policy.action";
+} from "@admin/orgunit/stores/submission-policy/admin-organizational-unit-submission-policy.state";
+import {OrganizationalUnitExtended} from "@deposit/models/organizational-unit-extended.model";
+import {DepositStateModel} from "@deposit/stores/deposit.state";
 import {
   Action,
   Actions,
@@ -30,6 +24,12 @@ import {
   StateContext,
   Store,
 } from "@ngxs/store";
+import {AdminResourceApiEnum} from "@shared/enums/api.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {LocalModelAttributeEnum} from "@shared/enums/model-attribute.enum";
+import {RoutesEnum} from "@shared/enums/routes.enum";
+import {SharedPreservationPolicyAction} from "@shared/stores/preservation-policy/shared-preservation-policy.action";
+import {SharedSubmissionPolicyAction} from "@shared/stores/submission-policy/shared-submission-policy.action";
 
 import _ from "lodash";
 import {Observable} from "rxjs";
diff --git a/src/app/features/admin/stores/organizational-unit/preservation-policy/admin-organizational-unit-preservation-policy.action.ts b/src/app/features/admin/orgunit/stores/preservation-policy/admin-organizational-unit-preservation-policy.action.ts
similarity index 93%
rename from src/app/features/admin/stores/organizational-unit/preservation-policy/admin-organizational-unit-preservation-policy.action.ts
rename to src/app/features/admin/orgunit/stores/preservation-policy/admin-organizational-unit-preservation-policy.action.ts
index 6836a1d9d5b00e3aad762becebb184d17cf271f5..ac7b5615910d3c0c09c1eb02c0e9917678f4825a 100644
--- a/src/app/features/admin/stores/organizational-unit/preservation-policy/admin-organizational-unit-preservation-policy.action.ts
+++ b/src/app/features/admin/orgunit/stores/preservation-policy/admin-organizational-unit-preservation-policy.action.ts
@@ -1,6 +1,6 @@
-import {OrganizationalUnitPreservationPolicy} from "@app/features/admin/models/organizational-unit-preservation-policy.model";
+import {OrganizationalUnitPreservationPolicy} from "@admin/models/organizational-unit-preservation-policy.model";
 import {PreservationPolicy} from "@app/generated-api";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   Relation2TiersAction,
   Relation2TiersNameSpace,
diff --git a/src/app/features/admin/stores/organizational-unit/preservation-policy/admin-organizational-unit-preservation-policy.state.ts b/src/app/features/admin/orgunit/stores/preservation-policy/admin-organizational-unit-preservation-policy.state.ts
similarity index 69%
rename from src/app/features/admin/stores/organizational-unit/preservation-policy/admin-organizational-unit-preservation-policy.state.ts
rename to src/app/features/admin/orgunit/stores/preservation-policy/admin-organizational-unit-preservation-policy.state.ts
index 13a6692c765218dd7514745a8e0e3120b3016617..bfef3ed103e39e8bbfc81739a23738302024199b 100644
--- a/src/app/features/admin/stores/organizational-unit/preservation-policy/admin-organizational-unit-preservation-policy.state.ts
+++ b/src/app/features/admin/orgunit/stores/preservation-policy/admin-organizational-unit-preservation-policy.state.ts
@@ -1,15 +1,15 @@
-import {OrganizationalUnitPreservationPolicy} from "@app/features/admin/models/organizational-unit-preservation-policy.model";
-import {adminOrgUnitPreservationPolicyActionNameSpace} from "@app/features/admin/stores/organizational-unit/preservation-policy/admin-organizational-unit-preservation-policy.action";
+import {OrganizationalUnitPreservationPolicy} from "@admin/models/organizational-unit-preservation-policy.model";
+import {adminOrgUnitPreservationPolicyActionNameSpace} from "@admin/orgunit/stores/preservation-policy/admin-organizational-unit-preservation-policy.action";
 import {PreservationPolicy} from "@app/generated-api";
-import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum";
-import {AdminResourceApiEnum} from "@app/shared/enums/api.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 
 import {
   Actions,
   State,
   Store,
 } from "@ngxs/store";
+import {ApiResourceNameEnum} from "@shared/enums/api-resource-name.enum";
+import {AdminResourceApiEnum} from "@shared/enums/api.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   ApiService,
   defaultRelation2TiersStateInitValue,
diff --git a/src/app/features/admin/stores/organizational-unit/submission-policy/admin-organizational-unit-submission-policy.action.ts b/src/app/features/admin/orgunit/stores/submission-policy/admin-organizational-unit-submission-policy.action.ts
similarity index 93%
rename from src/app/features/admin/stores/organizational-unit/submission-policy/admin-organizational-unit-submission-policy.action.ts
rename to src/app/features/admin/orgunit/stores/submission-policy/admin-organizational-unit-submission-policy.action.ts
index 4781afd34bc2fac6a4e9f50dc51499b046051e27..ce9f0494f96d39507fdb541a4274cc24e2bb69e3 100644
--- a/src/app/features/admin/stores/organizational-unit/submission-policy/admin-organizational-unit-submission-policy.action.ts
+++ b/src/app/features/admin/orgunit/stores/submission-policy/admin-organizational-unit-submission-policy.action.ts
@@ -1,6 +1,6 @@
-import {OrganizationalUnitSubmissionPolicy} from "@app/features/admin/models/organizational-unit-submission-policy.model";
+import {OrganizationalUnitSubmissionPolicy} from "@admin/models/organizational-unit-submission-policy.model";
 import {SubmissionPolicy} from "@app/generated-api";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   Relation2TiersAction,
   Relation2TiersNameSpace,
diff --git a/src/app/features/admin/stores/organizational-unit/submission-policy/admin-organizational-unit-submission-policy.state.ts b/src/app/features/admin/orgunit/stores/submission-policy/admin-organizational-unit-submission-policy.state.ts
similarity index 69%
rename from src/app/features/admin/stores/organizational-unit/submission-policy/admin-organizational-unit-submission-policy.state.ts
rename to src/app/features/admin/orgunit/stores/submission-policy/admin-organizational-unit-submission-policy.state.ts
index 8efeac7ab6c23f70e34cc33511103544222a86a5..037ee356b090ae1d0d7f5c78a831098912bb890d 100644
--- a/src/app/features/admin/stores/organizational-unit/submission-policy/admin-organizational-unit-submission-policy.state.ts
+++ b/src/app/features/admin/orgunit/stores/submission-policy/admin-organizational-unit-submission-policy.state.ts
@@ -1,15 +1,15 @@
-import {OrganizationalUnitSubmissionPolicy} from "@app/features/admin/models/organizational-unit-submission-policy.model";
-import {adminOrgUnitSubmissionPolicyActionNameSpace} from "@app/features/admin/stores/organizational-unit/submission-policy/admin-organizational-unit-submission-policy.action";
+import {OrganizationalUnitSubmissionPolicy} from "@admin/models/organizational-unit-submission-policy.model";
+import {adminOrgUnitSubmissionPolicyActionNameSpace} from "@admin/orgunit/stores/submission-policy/admin-organizational-unit-submission-policy.action";
 import {SubmissionPolicy} from "@app/generated-api";
-import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum";
-import {AdminResourceApiEnum} from "@app/shared/enums/api.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 
 import {
   Actions,
   State,
   Store,
 } from "@ngxs/store";
+import {ApiResourceNameEnum} from "@shared/enums/api-resource-name.enum";
+import {AdminResourceApiEnum} from "@shared/enums/api.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   ApiService,
   defaultRelation2TiersStateInitValue,
diff --git a/src/app/features/admin/components/dialogs/admin-person-delete/admin-person-delete.dialog.ts b/src/app/features/admin/person/components/dialogs/admin-person-delete/admin-person-delete.dialog.ts
similarity index 58%
rename from src/app/features/admin/components/dialogs/admin-person-delete/admin-person-delete.dialog.ts
rename to src/app/features/admin/person/components/dialogs/admin-person-delete/admin-person-delete.dialog.ts
index 094b2ae61d9ae49bc5748ae04b20bd3b2803a5a2..a42914bf7dea71f5e4533cc7aabb5d3ca7e76fe2 100644
--- a/src/app/features/admin/components/dialogs/admin-person-delete/admin-person-delete.dialog.ts
+++ b/src/app/features/admin/person/components/dialogs/admin-person-delete/admin-person-delete.dialog.ts
@@ -1,3 +1,6 @@
+import {PersonExtended} from "@admin/models/person-extended.model";
+import {adminPersonActionNameSpace} from "@admin/person/stores/admin-person.action";
+import {AdminPersonStateModel} from "@admin/person/stores/admin-person.state";
 import {
   ChangeDetectionStrategy,
   Component,
@@ -7,19 +10,16 @@ import {
   MAT_DIALOG_DATA,
   MatDialogRef,
 } from "@angular/material";
-import {PersonExtended} from "@app/features/admin/models/person-extended.model";
-import {adminPersonActionNameSpace} from "@app/features/admin/stores/person/admin-person.action";
-import {AdminPersonStateModel} from "@app/features/admin/stores/person/admin-person.state";
-import {SharedAbstractDeleteDialog} from "@app/shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {DeleteDialog} from "@app/shared/models/delete-dialog.model";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDeleteDialog} from "@shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {DeleteDialog} from "@shared/models/delete-dialog.model";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-person-delete-dialog",
-  templateUrl: "../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
-  styleUrls: ["../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
+  templateUrl: "../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
+  styleUrls: ["../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminPersonDeleteDialog extends SharedAbstractDeleteDialog<PersonExtended, AdminPersonStateModel> {
diff --git a/src/app/features/admin/components/presentationals/admin-person-form/admin-person-form.html b/src/app/features/admin/person/components/presentationals/admin-person-form/admin-person-form.presentational.html
similarity index 100%
rename from src/app/features/admin/components/presentationals/admin-person-form/admin-person-form.html
rename to src/app/features/admin/person/components/presentationals/admin-person-form/admin-person-form.presentational.html
diff --git a/src/app/features/admin/components/presentationals/admin-person-form/admin-person-form.ts b/src/app/features/admin/person/components/presentationals/admin-person-form/admin-person-form.presentational.ts
similarity index 74%
rename from src/app/features/admin/components/presentationals/admin-person-form/admin-person-form.ts
rename to src/app/features/admin/person/components/presentationals/admin-person-form/admin-person-form.presentational.ts
index 0b235162b7a21f41facbb1e544c17708df5dc03d..479e3aa281a34c06fad21dcb534c3de5566b2eaa 100644
--- a/src/app/features/admin/components/presentationals/admin-person-form/admin-person-form.ts
+++ b/src/app/features/admin/person/components/presentationals/admin-person-form/admin-person-form.presentational.ts
@@ -1,3 +1,4 @@
+import {PersonExtended} from "@admin/models/person-extended.model";
 import {
   ChangeDetectionStrategy,
   ChangeDetectorRef,
@@ -8,13 +9,12 @@ import {
   FormBuilder,
   Validators,
 } from "@angular/forms";
-import {PersonExtended} from "@app/features/admin/models/person-extended.model";
 import {
   AccessOrganizationalUnit,
   Institution,
 } from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {BaseFormDefinition} from "@app/shared/models/base-form-definition.model";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {BaseFormDefinition} from "@shared/models/base-form-definition.model";
 import {
   PropertyName,
   SolidifyValidator,
@@ -22,11 +22,11 @@ import {
 
 @Component({
   selector: "dlcm-admin-person-form",
-  templateUrl: "./admin-person-form.html",
-  styleUrls: ["../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
+  templateUrl: "./admin-person-form.presentational.html",
+  styleUrls: ["../../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
-export class AdminPersonForm extends SharedAbstractFormPresentational<PersonExtended> {
+export class AdminPersonFormPresentational extends SharedAbstractFormPresentational<PersonExtended> {
   formDefinition: FormComponentFormDefinition = new FormComponentFormDefinition();
 
   @Input()
diff --git a/src/app/features/admin/components/routables/admin-person-create/admin-person-create.routable.html b/src/app/features/admin/person/components/routables/admin-person-create/admin-person-create.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-person-create/admin-person-create.routable.html
rename to src/app/features/admin/person/components/routables/admin-person-create/admin-person-create.routable.html
diff --git a/src/app/features/admin/components/routables/admin-person-create/admin-person-create.routable.ts b/src/app/features/admin/person/components/routables/admin-person-create/admin-person-create.routable.ts
similarity index 57%
rename from src/app/features/admin/components/routables/admin-person-create/admin-person-create.routable.ts
rename to src/app/features/admin/person/components/routables/admin-person-create/admin-person-create.routable.ts
index 117b3dfff41f2e4afab75b5b0eff0b54f49e6076..ba786d6fe7115d5152e736b884eb2c118d44ef2c 100644
--- a/src/app/features/admin/components/routables/admin-person-create/admin-person-create.routable.ts
+++ b/src/app/features/admin/person/components/routables/admin-person-create/admin-person-create.routable.ts
@@ -1,29 +1,29 @@
+import {PersonExtended} from "@admin/models/person-extended.model";
+import {adminPersonActionNameSpace} from "@admin/person/stores/admin-person.action";
+import {AdminPersonStateModel} from "@admin/person/stores/admin-person.state";
 import {
   ChangeDetectionStrategy,
   Component,
   ViewChild,
 } from "@angular/core";
-import {PersonExtended} from "@app/features/admin/models/person-extended.model";
-import {adminPersonActionNameSpace} from "@app/features/admin/stores/person/admin-person.action";
-import {AdminPersonStateModel} from "@app/features/admin/stores/person/admin-person.state";
 import {
   AccessOrganizationalUnit,
   Institution,
 } from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {SharedAbstractCreateRoutable} from "@app/shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {LocalStateModel} from "@app/shared/models/local-state.model";
 import {
   Select,
   Store,
 } from "@ngxs/store";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {SharedAbstractCreateRoutable} from "@shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {LocalStateModel} from "@shared/models/local-state.model";
 import {Observable} from "rxjs";
 
 @Component({
   selector: "dlcm-admin-person-create-routable",
   templateUrl: "./admin-person-create.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminPersonCreateRoutable extends SharedAbstractCreateRoutable<PersonExtended, AdminPersonStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-person-detail/admin-person-detail.routable.html b/src/app/features/admin/person/components/routables/admin-person-detail/admin-person-detail.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-person-detail/admin-person-detail.routable.html
rename to src/app/features/admin/person/components/routables/admin-person-detail/admin-person-detail.routable.html
diff --git a/src/app/features/admin/components/routables/admin-person-detail/admin-person-detail.routable.ts b/src/app/features/admin/person/components/routables/admin-person-detail/admin-person-detail.routable.ts
similarity index 68%
rename from src/app/features/admin/components/routables/admin-person-detail/admin-person-detail.routable.ts
rename to src/app/features/admin/person/components/routables/admin-person-detail/admin-person-detail.routable.ts
index f50cbe487adc73be8005344aec0263c75ebf090f..97da66dd573381fad7fe9103c63b0ae90fe119d1 100644
--- a/src/app/features/admin/components/routables/admin-person-detail/admin-person-detail.routable.ts
+++ b/src/app/features/admin/person/components/routables/admin-person-detail/admin-person-detail.routable.ts
@@ -1,30 +1,30 @@
+import {PersonExtended} from "@admin/models/person-extended.model";
+import {adminPersonActionNameSpace} from "@admin/person/stores/admin-person.action";
+import {AdminPersonStateModel} from "@admin/person/stores/admin-person.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {MatDialog} from "@angular/material";
 import {ActivatedRoute} from "@angular/router";
-import {PersonExtended} from "@app/features/admin/models/person-extended.model";
-import {adminPersonActionNameSpace} from "@app/features/admin/stores/person/admin-person.action";
-import {AdminPersonStateModel} from "@app/features/admin/stores/person/admin-person.state";
 import {
   AccessOrganizationalUnit,
   Institution,
 } from "@app/generated-api";
-import {SharedAbstractDetailRoutable} from "@app/shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {LocalStateModel} from "@app/shared/models/local-state.model";
 import {
   Select,
   Store,
 } from "@ngxs/store";
+import {SharedAbstractDetailRoutable} from "@shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {LocalStateModel} from "@shared/models/local-state.model";
 import {Observable} from "rxjs";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-person-detail-routable",
   templateUrl: "./admin-person-detail.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminPersonDetailRoutable extends SharedAbstractDetailRoutable<PersonExtended, AdminPersonStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-person-edit/admin-person-edit.routable.html b/src/app/features/admin/person/components/routables/admin-person-edit/admin-person-edit.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-person-edit/admin-person-edit.routable.html
rename to src/app/features/admin/person/components/routables/admin-person-edit/admin-person-edit.routable.html
diff --git a/src/app/features/admin/components/routables/admin-person-edit/admin-person-edit.routable.ts b/src/app/features/admin/person/components/routables/admin-person-edit/admin-person-edit.routable.ts
similarity index 62%
rename from src/app/features/admin/components/routables/admin-person-edit/admin-person-edit.routable.ts
rename to src/app/features/admin/person/components/routables/admin-person-edit/admin-person-edit.routable.ts
index e49cb3d683b577f988a48cf7850c0971faacf5ca..d610853122ec7108b391ce8cce50daf58a0d1774 100644
--- a/src/app/features/admin/components/routables/admin-person-edit/admin-person-edit.routable.ts
+++ b/src/app/features/admin/person/components/routables/admin-person-edit/admin-person-edit.routable.ts
@@ -1,28 +1,28 @@
+import {PersonExtended} from "@admin/models/person-extended.model";
+import {adminPersonActionNameSpace} from "@admin/person/stores/admin-person.action";
+import {AdminPersonStateModel} from "@admin/person/stores/admin-person.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {ActivatedRoute} from "@angular/router";
-import {PersonExtended} from "@app/features/admin/models/person-extended.model";
-import {adminPersonActionNameSpace} from "@app/features/admin/stores/person/admin-person.action";
-import {AdminPersonStateModel} from "@app/features/admin/stores/person/admin-person.state";
 import {
   AccessOrganizationalUnit,
   Institution,
 } from "@app/generated-api";
-import {SharedAbstractEditRoutable} from "@app/shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {LocalStateModel} from "@app/shared/models/local-state.model";
 import {
   Select,
   Store,
 } from "@ngxs/store";
+import {SharedAbstractEditRoutable} from "@shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {LocalStateModel} from "@shared/models/local-state.model";
 import {Observable} from "rxjs";
 
 @Component({
   selector: "dlcm-admin-person-edit-routable",
   templateUrl: "./admin-person-edit.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminPersonEditRoutable extends SharedAbstractEditRoutable<PersonExtended, AdminPersonStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-person-list/admin-person-list-routable.ts b/src/app/features/admin/person/components/routables/admin-person-list/admin-person-list.routable.ts
similarity index 64%
rename from src/app/features/admin/components/routables/admin-person-list/admin-person-list-routable.ts
rename to src/app/features/admin/person/components/routables/admin-person-list/admin-person-list.routable.ts
index 1dc8ebed11b4ac1eeda84bdb2d45eeb7b9d129b1..a639b81c64e2a08c03ce2729d8328aa48238ba35 100644
--- a/src/app/features/admin/components/routables/admin-person-list/admin-person-list-routable.ts
+++ b/src/app/features/admin/person/components/routables/admin-person-list/admin-person-list.routable.ts
@@ -1,20 +1,20 @@
+import {PersonExtended} from "@admin/models/person-extended.model";
+import {adminPersonActionNameSpace} from "@admin/person/stores/admin-person.action";
+import {AdminPersonStateModel} from "@admin/person/stores/admin-person.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
-import {PersonExtended} from "@app/features/admin/models/person-extended.model";
-import {adminPersonActionNameSpace} from "@app/features/admin/stores/person/admin-person.action";
-import {AdminPersonStateModel} from "@app/features/admin/stores/person/admin-person.state";
-import {SharedAbstractListRoutable} from "@app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
-import {FieldTypeEnum} from "@app/shared/enums/field-type.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractListRoutable} from "@shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
+import {FieldTypeEnum} from "@shared/enums/field-type.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-person-list-routable",
-  templateUrl: "../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
+  templateUrl: "../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminPersonListRoutable extends SharedAbstractListRoutable<PersonExtended, AdminPersonStateModel> {
diff --git a/src/app/features/admin/person/person-routing.module.js b/src/app/features/admin/person/person-routing.module.js
new file mode 100644
index 0000000000000000000000000000000000000000..a09539e4c5574d0b06a4340e1732044ba2271539
--- /dev/null
+++ b/src/app/features/admin/person/person-routing.module.js
@@ -0,0 +1,63 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+    return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var admin_person_create_routable_1 = require("@admin/person/components/routables/create/admin-person-create.routable");
+var admin_person_detail_routable_1 = require("@admin/person/components/routables/detail/admin-person-detail.routable");
+var admin_person_edit_routable_1 = require("@admin/person/components/routables/edit/admin-person-edit.routable");
+var admin_person_list_routable_1 = require("@admin/person/components/routables/list/admin-person-list-routable");
+var core_1 = require("@angular/core");
+var router_1 = require("@angular/router");
+var application_role_permission_enum_1 = require("@shared/enums/application-role-permission.enum");
+var routes_enum_1 = require("@shared/enums/routes.enum");
+var application_role_guard_service_1 = require("@shared/guards/application-role-guard.service");
+var solidify_frontend_1 = require("solidify-frontend");
+var routes = [
+    {
+        path: routes_enum_1.AppRoutesEnum.root,
+        component: admin_person_list_routable_1.AdminPersonListRoutable,
+        data: {
+            breadcrumb: solidify_frontend_1.TRANSLATE("breadcrumb.admin.person.list"),
+            permission: application_role_permission_enum_1.ApplicationRolePermissionEnum.rootPermission,
+        },
+        canActivate: [application_role_guard_service_1.ApplicationRoleGuardService],
+    },
+    {
+        path: routes_enum_1.AdminRoutesEnum.personDetail + routes_enum_1.AppRoutesEnum.separator + routes_enum_1.AppRoutesEnum.paramId,
+        component: admin_person_detail_routable_1.AdminPersonDetailRoutable,
+        data: {
+            breadcrumb: solidify_frontend_1.TRANSLATE("breadcrumb.admin.person.detail"),
+            permission: application_role_permission_enum_1.ApplicationRolePermissionEnum.rootPermission,
+        },
+    },
+    {
+        path: routes_enum_1.AdminRoutesEnum.personCreate,
+        component: admin_person_create_routable_1.AdminPersonCreateRoutable,
+        data: {
+            breadcrumb: solidify_frontend_1.TRANSLATE("breadcrumb.admin.person.create"),
+        },
+    },
+    {
+        path: routes_enum_1.AdminRoutesEnum.personEdit + routes_enum_1.AppRoutesEnum.separator + routes_enum_1.AppRoutesEnum.paramId,
+        component: admin_person_edit_routable_1.AdminPersonEditRoutable,
+        data: {
+            breadcrumb: solidify_frontend_1.TRANSLATE("breadcrumb.admin.person.edit"),
+        },
+    },
+];
+var AdminPersonRoutingModule = /** @class */ (function () {
+    function AdminPersonRoutingModule() {
+    }
+    AdminPersonRoutingModule = __decorate([
+        core_1.NgModule({
+            imports: [router_1.RouterModule.forChild(routes)],
+            exports: [router_1.RouterModule],
+        })
+    ], AdminPersonRoutingModule);
+    return AdminPersonRoutingModule;
+}());
+exports.AdminPersonRoutingModule = AdminPersonRoutingModule;
diff --git a/src/app/features/admin/person/person-routing.module.ts b/src/app/features/admin/person/person-routing.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6800c3c55255ec9e6e1f9a100f9d61f322567ebd
--- /dev/null
+++ b/src/app/features/admin/person/person-routing.module.ts
@@ -0,0 +1,60 @@
+import {AdminPersonCreateRoutable} from "@admin/person/components/routables/admin-person-create/admin-person-create.routable";
+import {AdminPersonDetailRoutable} from "@admin/person/components/routables/admin-person-detail/admin-person-detail.routable";
+import {AdminPersonEditRoutable} from "@admin/person/components/routables/admin-person-edit/admin-person-edit.routable";
+import {AdminPersonListRoutable} from "@admin/person/components/routables/admin-person-list/admin-person-list.routable";
+import {NgModule} from "@angular/core";
+import {
+  RouterModule,
+  Routes,
+} from "@angular/router";
+import {ApplicationRolePermissionEnum} from "@shared/enums/application-role-permission.enum";
+import {
+  AdminRoutesEnum,
+  AppRoutesEnum,
+} from "@shared/enums/routes.enum";
+import {ApplicationRoleGuardService} from "@shared/guards/application-role-guard.service";
+import {CanDeactivateGuard} from "@shared/services/can-deactivate-guard.service";
+import {TRANSLATE} from "solidify-frontend";
+
+const routes: Routes = [
+  {
+    path: AppRoutesEnum.root,
+    component: AdminPersonListRoutable,
+    data: {
+      permission: ApplicationRolePermissionEnum.rootPermission,
+    },
+    canActivate: [ApplicationRoleGuardService],
+  },
+  {
+    path: AdminRoutesEnum.personDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminPersonDetailRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.person.detail"),
+      permission: ApplicationRolePermissionEnum.rootPermission,
+    },
+  },
+  {
+    path: AdminRoutesEnum.personCreate,
+    component: AdminPersonCreateRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.person.create"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+  {
+    path: AdminRoutesEnum.personEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminPersonEditRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.person.edit"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule],
+})
+export class AdminPersonRoutingModule {
+}
diff --git a/src/app/features/admin/person/person.module.ts b/src/app/features/admin/person/person.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..58210b335a0061990dcc53511803f3d46694a747
--- /dev/null
+++ b/src/app/features/admin/person/person.module.ts
@@ -0,0 +1,52 @@
+import {AdminPersonDeleteDialog} from "@admin/person/components/dialogs/admin-person-delete/admin-person-delete.dialog";
+import {AdminPersonFormPresentational} from "@admin/person/components/presentationals/admin-person-form/admin-person-form.presentational";
+import {AdminPersonCreateRoutable} from "@admin/person/components/routables/admin-person-create/admin-person-create.routable";
+import {AdminPersonDetailRoutable} from "@admin/person/components/routables/admin-person-detail/admin-person-detail.routable";
+import {AdminPersonEditRoutable} from "@admin/person/components/routables/admin-person-edit/admin-person-edit.routable";
+import {AdminPersonListRoutable} from "@admin/person/components/routables/admin-person-list/admin-person-list.routable";
+import {AdminPersonRoutingModule} from "@admin/person/person-routing.module";
+import {AdminPersonState} from "@admin/person/stores/admin-person.state";
+import {NgModule} from "@angular/core";
+import {SharedModule} from "@app/shared/shared.module";
+import {TranslateModule} from "@ngx-translate/core";
+import {NgxsModule} from "@ngxs/store";
+
+const routables = [
+  AdminPersonListRoutable,
+  AdminPersonDetailRoutable,
+  AdminPersonCreateRoutable,
+  AdminPersonEditRoutable,
+];
+const containers = [];
+const dialogs = [
+  AdminPersonDeleteDialog,
+];
+const presentationals = [
+  AdminPersonFormPresentational,
+];
+
+@NgModule({
+  declarations: [
+    ...routables,
+    ...containers,
+    ...dialogs,
+    ...presentationals,
+  ],
+  imports: [
+    SharedModule,
+    AdminPersonRoutingModule,
+    TranslateModule.forChild({}),
+    NgxsModule.forFeature([
+      AdminPersonState,
+    ]),
+  ],
+  entryComponents: [
+    ...dialogs,
+  ],
+  exports: [
+    ...routables,
+  ],
+  providers: [],
+})
+export class AdminPersonModule {
+}
diff --git a/src/app/features/admin/stores/person/admin-person.action.ts b/src/app/features/admin/person/stores/admin-person.action.ts
similarity index 93%
rename from src/app/features/admin/stores/person/admin-person.action.ts
rename to src/app/features/admin/person/stores/admin-person.action.ts
index 237bf38d129dfdc4c4bb56944bf1db4760862f5c..5af1f6390e77c969a8b4c9a141bc483976b051e3 100644
--- a/src/app/features/admin/stores/person/admin-person.action.ts
+++ b/src/app/features/admin/person/stores/admin-person.action.ts
@@ -1,5 +1,5 @@
-import {PersonExtended} from "@app/features/admin/models/person-extended.model";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {PersonExtended} from "@admin/models/person-extended.model";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   ResourceAction,
   ResourceNameSpace,
diff --git a/src/app/features/admin/stores/person/admin-person.state.ts b/src/app/features/admin/person/stores/admin-person.state.ts
similarity index 77%
rename from src/app/features/admin/stores/person/admin-person.state.ts
rename to src/app/features/admin/person/stores/admin-person.state.ts
index 85c9e6057572659305c6062e0821dda59e685e49..1fa9278dc18500d5fccedfbbebc737fb23d6c7c3 100644
--- a/src/app/features/admin/stores/person/admin-person.state.ts
+++ b/src/app/features/admin/person/stores/admin-person.state.ts
@@ -1,13 +1,13 @@
-import {PersonExtended} from "@app/features/admin/models/person-extended.model";
-import {adminPersonActionNameSpace} from "@app/features/admin/stores/person/admin-person.action";
-import {AdminResourceApiEnum} from "@app/shared/enums/api.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {RoutesEnum} from "@app/shared/enums/routes.enum";
+import {PersonExtended} from "@admin/models/person-extended.model";
+import {adminPersonActionNameSpace} from "@admin/person/stores/admin-person.action";
 import {
   Actions,
   State,
   Store,
 } from "@ngxs/store";
+import {AdminResourceApiEnum} from "@shared/enums/api.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {RoutesEnum} from "@shared/enums/routes.enum";
 import {
   ApiService,
   defaultResourceStateInitValue,
diff --git a/src/app/features/admin/components/dialogs/admin-preservation-policy-delete/admin-preservation-policy-delete.dialog.ts b/src/app/features/admin/preservation-policy/components/dialogs/admin-preservation-policy-delete/admin-preservation-policy-delete.dialog.ts
similarity index 62%
rename from src/app/features/admin/components/dialogs/admin-preservation-policy-delete/admin-preservation-policy-delete.dialog.ts
rename to src/app/features/admin/preservation-policy/components/dialogs/admin-preservation-policy-delete/admin-preservation-policy-delete.dialog.ts
index 354eb8b1eb595888ae86e2c757efe38dbe421e51..6e513a104b558e2c50843286b10f632bb3e6d598 100644
--- a/src/app/features/admin/components/dialogs/admin-preservation-policy-delete/admin-preservation-policy-delete.dialog.ts
+++ b/src/app/features/admin/preservation-policy/components/dialogs/admin-preservation-policy-delete/admin-preservation-policy-delete.dialog.ts
@@ -1,3 +1,5 @@
+import {adminPreservationPolicyActionNameSpace} from "@admin/preservation-policy/stores/admin-preservation-policy.action";
+import {AdminPreservationPolicyStateModel} from "@admin/preservation-policy/stores/admin-preservation-policy.state";
 import {
   ChangeDetectionStrategy,
   Component,
@@ -7,19 +9,17 @@ import {
   MAT_DIALOG_DATA,
   MatDialogRef,
 } from "@angular/material";
-import {adminPreservationPolicyActionNameSpace} from "@app/features/admin/stores/preservation-policy/admin-preservation-policy.action";
-import {AdminPreservationPolicyStateModel} from "@app/features/admin/stores/preservation-policy/admin-preservation-policy.state";
 import {PreservationPolicy} from "@app/generated-api";
-import {SharedAbstractDeleteDialog} from "@app/shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {DeleteDialog} from "@app/shared/models/delete-dialog.model";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDeleteDialog} from "@shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {DeleteDialog} from "@shared/models/delete-dialog.model";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-preservation-policy-delete-dialog",
-  templateUrl: "../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
-  styleUrls: ["../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
+  templateUrl: "../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
+  styleUrls: ["../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminPreservationPolicyDeleteDialog extends SharedAbstractDeleteDialog<PreservationPolicy, AdminPreservationPolicyStateModel> {
diff --git a/src/app/features/admin/components/presentationals/admin-preservation-policy-form/admin-preservation-policy-form.presentational.html b/src/app/features/admin/preservation-policy/components/presentationals/admin-preservation-policy-form/admin-preservation-policy-form.presentational.html
similarity index 100%
rename from src/app/features/admin/components/presentationals/admin-preservation-policy-form/admin-preservation-policy-form.presentational.html
rename to src/app/features/admin/preservation-policy/components/presentationals/admin-preservation-policy-form/admin-preservation-policy-form.presentational.html
diff --git a/src/app/features/admin/components/presentationals/admin-preservation-policy-form/admin-preservation-policy-form.presentational.ts b/src/app/features/admin/preservation-policy/components/presentationals/admin-preservation-policy-form/admin-preservation-policy-form.presentational.ts
similarity index 84%
rename from src/app/features/admin/components/presentationals/admin-preservation-policy-form/admin-preservation-policy-form.presentational.ts
rename to src/app/features/admin/preservation-policy/components/presentationals/admin-preservation-policy-form/admin-preservation-policy-form.presentational.ts
index f2788e9eda83f4539aa446fe6e6e0b922dbe4ad0..b0ee0d3a5de11ef54fd1b54ed222d96e94a13ac1 100644
--- a/src/app/features/admin/components/presentationals/admin-preservation-policy-form/admin-preservation-policy-form.presentational.ts
+++ b/src/app/features/admin/preservation-policy/components/presentationals/admin-preservation-policy-form/admin-preservation-policy-form.presentational.ts
@@ -8,8 +8,8 @@ import {
   Validators,
 } from "@angular/forms";
 import {PreservationPolicy} from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {BaseFormDefinition} from "@app/shared/models/base-form-definition.model";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {BaseFormDefinition} from "@shared/models/base-form-definition.model";
 import {
   PropertyName,
   SolidifyValidator,
@@ -18,7 +18,7 @@ import {
 @Component({
   selector: "dlcm-admin-preservation-policy-form",
   templateUrl: "./admin-preservation-policy-form.presentational.html",
-  styleUrls: ["../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
+  styleUrls: ["../../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminPreservationPolicyFormPresentational extends SharedAbstractFormPresentational<PreservationPolicy> {
diff --git a/src/app/features/admin/components/routables/admin-preservation-policy-create/admin-preservation-policy-create.routable.html b/src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-create/admin-preservation-policy-create.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-preservation-policy-create/admin-preservation-policy-create.routable.html
rename to src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-create/admin-preservation-policy-create.routable.html
diff --git a/src/app/features/admin/components/routables/admin-preservation-policy-create/admin-preservation-policy-create.routable.ts b/src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-create/admin-preservation-policy-create.routable.ts
similarity index 52%
rename from src/app/features/admin/components/routables/admin-preservation-policy-create/admin-preservation-policy-create.routable.ts
rename to src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-create/admin-preservation-policy-create.routable.ts
index 58fa272d40d74d2b8aba0dd70c8fd29b60a7ee1a..fc0989c988211cf04e84b63490aba61f6008daea 100644
--- a/src/app/features/admin/components/routables/admin-preservation-policy-create/admin-preservation-policy-create.routable.ts
+++ b/src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-create/admin-preservation-policy-create.routable.ts
@@ -1,20 +1,20 @@
+import {adminPreservationPolicyActionNameSpace} from "@admin/preservation-policy/stores/admin-preservation-policy.action";
+import {AdminPreservationPolicyStateModel} from "@admin/preservation-policy/stores/admin-preservation-policy.state";
 import {
   ChangeDetectionStrategy,
   Component,
   ViewChild,
 } from "@angular/core";
-import {adminPreservationPolicyActionNameSpace} from "@app/features/admin/stores/preservation-policy/admin-preservation-policy.action";
-import {AdminPreservationPolicyStateModel} from "@app/features/admin/stores/preservation-policy/admin-preservation-policy.state";
 import {PreservationPolicy} from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {SharedAbstractCreateRoutable} from "@app/shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {SharedAbstractCreateRoutable} from "@shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 
 @Component({
   selector: "dlcm-admin-preservation-policy-create-routable",
   templateUrl: "./admin-preservation-policy-create.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminPreservationPolicyCreateRoutable extends SharedAbstractCreateRoutable<PreservationPolicy, AdminPreservationPolicyStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-preservation-policy-detail/admin-preservation-policy-detail.routable.html b/src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-detail/admin-preservation-policy-detail.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-preservation-policy-detail/admin-preservation-policy-detail.routable.html
rename to src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-detail/admin-preservation-policy-detail.routable.html
diff --git a/src/app/features/admin/components/routables/admin-preservation-policy-detail/admin-preservation-policy-detail.routable.ts b/src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-detail/admin-preservation-policy-detail.routable.ts
similarity index 67%
rename from src/app/features/admin/components/routables/admin-preservation-policy-detail/admin-preservation-policy-detail.routable.ts
rename to src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-detail/admin-preservation-policy-detail.routable.ts
index d85c9b0a2ac4ca5288f74232a13dc262038d3007..ee16237d22b6e63809a3393f103c1711156dde2c 100644
--- a/src/app/features/admin/components/routables/admin-preservation-policy-detail/admin-preservation-policy-detail.routable.ts
+++ b/src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-detail/admin-preservation-policy-detail.routable.ts
@@ -1,21 +1,21 @@
+import {adminPreservationPolicyActionNameSpace} from "@admin/preservation-policy/stores/admin-preservation-policy.action";
+import {AdminPreservationPolicyStateModel} from "@admin/preservation-policy/stores/admin-preservation-policy.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {MatDialog} from "@angular/material";
 import {ActivatedRoute} from "@angular/router";
-import {adminPreservationPolicyActionNameSpace} from "@app/features/admin/stores/preservation-policy/admin-preservation-policy.action";
-import {AdminPreservationPolicyStateModel} from "@app/features/admin/stores/preservation-policy/admin-preservation-policy.state";
 import {PreservationPolicy} from "@app/generated-api";
-import {SharedAbstractDetailRoutable} from "@app/shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDetailRoutable} from "@shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-preservation-policy-detail-routable",
   templateUrl: "./admin-preservation-policy-detail.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminPreservationPolicyDetailRoutable extends SharedAbstractDetailRoutable<PreservationPolicy, AdminPreservationPolicyStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-preservation-policy-edit/admin-preservation-policy-edit.routable.html b/src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-edit/admin-preservation-policy-edit.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-preservation-policy-edit/admin-preservation-policy-edit.routable.html
rename to src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-edit/admin-preservation-policy-edit.routable.html
diff --git a/src/app/features/admin/components/routables/admin-preservation-policy-edit/admin-preservation-policy-edit.routable.ts b/src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-edit/admin-preservation-policy-edit.routable.ts
similarity index 58%
rename from src/app/features/admin/components/routables/admin-preservation-policy-edit/admin-preservation-policy-edit.routable.ts
rename to src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-edit/admin-preservation-policy-edit.routable.ts
index c91e4aa47dad2d33e145da9e593e3d0dc77704f1..01591380acca853d0e5ceeab116d73d5b76b89c5 100644
--- a/src/app/features/admin/components/routables/admin-preservation-policy-edit/admin-preservation-policy-edit.routable.ts
+++ b/src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-edit/admin-preservation-policy-edit.routable.ts
@@ -1,19 +1,19 @@
+import {adminPreservationPolicyActionNameSpace} from "@admin/preservation-policy/stores/admin-preservation-policy.action";
+import {AdminPreservationPolicyStateModel} from "@admin/preservation-policy/stores/admin-preservation-policy.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {ActivatedRoute} from "@angular/router";
-import {adminPreservationPolicyActionNameSpace} from "@app/features/admin/stores/preservation-policy/admin-preservation-policy.action";
-import {AdminPreservationPolicyStateModel} from "@app/features/admin/stores/preservation-policy/admin-preservation-policy.state";
 import {PreservationPolicy} from "@app/generated-api";
-import {SharedAbstractEditRoutable} from "@app/shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractEditRoutable} from "@shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 
 @Component({
   selector: "dlcm-admin-preservation-policy-edit-routable",
   templateUrl: "./admin-preservation-policy-edit.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminPreservationPolicyEditRoutable extends SharedAbstractEditRoutable<PreservationPolicy, AdminPreservationPolicyStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-preservation-policy-list/admin-preservation-policy-list.routable.ts b/src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-list/admin-preservation-policy-list.routable.ts
similarity index 73%
rename from src/app/features/admin/components/routables/admin-preservation-policy-list/admin-preservation-policy-list.routable.ts
rename to src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-list/admin-preservation-policy-list.routable.ts
index 59f74476dfbbef609c33dab8c6e0499efd451132..11c3a620764eec4c82801e9a990719cf242bc2d6 100644
--- a/src/app/features/admin/components/routables/admin-preservation-policy-list/admin-preservation-policy-list.routable.ts
+++ b/src/app/features/admin/preservation-policy/components/routables/admin-preservation-policy-list/admin-preservation-policy-list.routable.ts
@@ -1,20 +1,20 @@
+import {adminPreservationPolicyActionNameSpace} from "@admin/preservation-policy/stores/admin-preservation-policy.action";
+import {AdminPreservationPolicyStateModel} from "@admin/preservation-policy/stores/admin-preservation-policy.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
-import {adminPreservationPolicyActionNameSpace} from "@app/features/admin/stores/preservation-policy/admin-preservation-policy.action";
-import {AdminPreservationPolicyStateModel} from "@app/features/admin/stores/preservation-policy/admin-preservation-policy.state";
 import {PreservationPolicy} from "@app/generated-api";
-import {SharedAbstractListRoutable} from "@app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
-import {FieldTypeEnum} from "@app/shared/enums/field-type.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractListRoutable} from "@shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
+import {FieldTypeEnum} from "@shared/enums/field-type.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-preservation-list-routable",
-  templateUrl: "../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
+  templateUrl: "../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminPreservationPolicyListRoutable extends SharedAbstractListRoutable<PreservationPolicy, AdminPreservationPolicyStateModel> {
diff --git a/src/app/features/admin/preservation-policy/preservation-policy-routing.module.ts b/src/app/features/admin/preservation-policy/preservation-policy-routing.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..58bed5578d8c01fc8db30c2c3244a4761f2a1b13
--- /dev/null
+++ b/src/app/features/admin/preservation-policy/preservation-policy-routing.module.ts
@@ -0,0 +1,54 @@
+import {AdminPreservationPolicyCreateRoutable} from "@admin/preservation-policy/components/routables/admin-preservation-policy-create/admin-preservation-policy-create.routable";
+import {AdminPreservationPolicyDetailRoutable} from "@admin/preservation-policy/components/routables/admin-preservation-policy-detail/admin-preservation-policy-detail.routable";
+import {AdminPreservationPolicyEditRoutable} from "@admin/preservation-policy/components/routables/admin-preservation-policy-edit/admin-preservation-policy-edit.routable";
+import {AdminPreservationPolicyListRoutable} from "@admin/preservation-policy/components/routables/admin-preservation-policy-list/admin-preservation-policy-list.routable";
+import {NgModule} from "@angular/core";
+import {
+  RouterModule,
+  Routes,
+} from "@angular/router";
+import {
+  AdminRoutesEnum,
+  AppRoutesEnum,
+} from "@shared/enums/routes.enum";
+import {CanDeactivateGuard} from "@shared/services/can-deactivate-guard.service";
+import {TRANSLATE} from "solidify-frontend";
+
+const routes: Routes = [
+  {
+    path: AppRoutesEnum.root,
+    component: AdminPreservationPolicyListRoutable,
+    data: {},
+  },
+  {
+    path: AdminRoutesEnum.preservationPolicyDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminPreservationPolicyDetailRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.preservationPolicy.detail"),
+    },
+  },
+  {
+    path: AdminRoutesEnum.preservationPolicyCreate,
+    component: AdminPreservationPolicyCreateRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.preservationPolicy.create"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+  {
+    path: AdminRoutesEnum.preservationPolicyEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminPreservationPolicyEditRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.preservationPolicy.edit"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule],
+})
+export class AdminPreservationPolicyRoutingModule {
+}
diff --git a/src/app/features/admin/preservation-policy/preservation-policy.module.ts b/src/app/features/admin/preservation-policy/preservation-policy.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..316a343e0a921ba856c41f5641d6afc0c8dca87d
--- /dev/null
+++ b/src/app/features/admin/preservation-policy/preservation-policy.module.ts
@@ -0,0 +1,52 @@
+import {AdminPreservationPolicyDeleteDialog} from "@admin/preservation-policy/components/dialogs/admin-preservation-policy-delete/admin-preservation-policy-delete.dialog";
+import {AdminPreservationPolicyFormPresentational} from "@admin/preservation-policy/components/presentationals/admin-preservation-policy-form/admin-preservation-policy-form.presentational";
+import {AdminPreservationPolicyCreateRoutable} from "@admin/preservation-policy/components/routables/admin-preservation-policy-create/admin-preservation-policy-create.routable";
+import {AdminPreservationPolicyDetailRoutable} from "@admin/preservation-policy/components/routables/admin-preservation-policy-detail/admin-preservation-policy-detail.routable";
+import {AdminPreservationPolicyEditRoutable} from "@admin/preservation-policy/components/routables/admin-preservation-policy-edit/admin-preservation-policy-edit.routable";
+import {AdminPreservationPolicyListRoutable} from "@admin/preservation-policy/components/routables/admin-preservation-policy-list/admin-preservation-policy-list.routable";
+import {AdminPreservationPolicyRoutingModule} from "@admin/preservation-policy/preservation-policy-routing.module";
+import {AdminPreservationPolicyState} from "@admin/preservation-policy/stores/admin-preservation-policy.state";
+import {NgModule} from "@angular/core";
+import {SharedModule} from "@app/shared/shared.module";
+import {TranslateModule} from "@ngx-translate/core";
+import {NgxsModule} from "@ngxs/store";
+
+const routables = [
+  AdminPreservationPolicyListRoutable,
+  AdminPreservationPolicyDetailRoutable,
+  AdminPreservationPolicyCreateRoutable,
+  AdminPreservationPolicyEditRoutable,
+];
+const containers = [];
+const dialogs = [
+  AdminPreservationPolicyDeleteDialog,
+];
+const presentationals = [
+  AdminPreservationPolicyFormPresentational,
+];
+
+@NgModule({
+  declarations: [
+    ...routables,
+    ...containers,
+    ...dialogs,
+    ...presentationals,
+  ],
+  imports: [
+    SharedModule,
+    AdminPreservationPolicyRoutingModule,
+    TranslateModule.forChild({}),
+    NgxsModule.forFeature([
+      AdminPreservationPolicyState,
+    ]),
+  ],
+  entryComponents: [
+    ...dialogs,
+  ],
+  exports: [
+    ...routables,
+  ],
+  providers: [],
+})
+export class AdminPreservationPolicyModule {
+}
diff --git a/src/app/features/admin/stores/preservation-policy/admin-preservation-policy.action.ts b/src/app/features/admin/preservation-policy/stores/admin-preservation-policy.action.ts
similarity index 97%
rename from src/app/features/admin/stores/preservation-policy/admin-preservation-policy.action.ts
rename to src/app/features/admin/preservation-policy/stores/admin-preservation-policy.action.ts
index bd7f5ccb83c2b025fc882a340a8c6a79b2dca1fc..15429758fe8d73dee38f8153c1576417110e514e 100644
--- a/src/app/features/admin/stores/preservation-policy/admin-preservation-policy.action.ts
+++ b/src/app/features/admin/preservation-policy/stores/admin-preservation-policy.action.ts
@@ -1,5 +1,5 @@
 import {PreservationPolicy} from "@app/generated-api";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   ResourceAction,
   ResourceNameSpace,
diff --git a/src/app/features/admin/stores/preservation-policy/admin-preservation-policy.state.ts b/src/app/features/admin/preservation-policy/stores/admin-preservation-policy.state.ts
similarity index 88%
rename from src/app/features/admin/stores/preservation-policy/admin-preservation-policy.state.ts
rename to src/app/features/admin/preservation-policy/stores/admin-preservation-policy.state.ts
index 2893bc6a1503a1689778921bd7cb6e2f0086b5b4..ea334d5630915f1ed16ba070e5227b33c2670881 100644
--- a/src/app/features/admin/stores/preservation-policy/admin-preservation-policy.state.ts
+++ b/src/app/features/admin/preservation-policy/stores/admin-preservation-policy.state.ts
@@ -1,12 +1,12 @@
 import {PreservationPolicy} from "@app/generated-api";
-import {AdminResourceApiEnum} from "@app/shared/enums/api.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {RoutesEnum} from "@app/shared/enums/routes.enum";
 import {
   Actions,
   State,
   Store,
 } from "@ngxs/store";
+import {AdminResourceApiEnum} from "@shared/enums/api.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {RoutesEnum} from "@shared/enums/routes.enum";
 import {
   ApiService,
   defaultResourceStateInitValue,
diff --git a/src/app/features/admin/components/dialogs/admin-role-delete/admin-role-delete.dialog.ts b/src/app/features/admin/role/components/dialogs/admin-role-delete/admin-role-delete.dialog.ts
similarity index 62%
rename from src/app/features/admin/components/dialogs/admin-role-delete/admin-role-delete.dialog.ts
rename to src/app/features/admin/role/components/dialogs/admin-role-delete/admin-role-delete.dialog.ts
index 5ca27f8095fb9c5b31f6ee09834a5ef6abe11451..c9884e1960597daaadbf64a2d4d7aa171fd2ad89 100644
--- a/src/app/features/admin/components/dialogs/admin-role-delete/admin-role-delete.dialog.ts
+++ b/src/app/features/admin/role/components/dialogs/admin-role-delete/admin-role-delete.dialog.ts
@@ -1,3 +1,5 @@
+import {adminRoleActionNameSpace} from "@admin/role/stores/admin-role.action";
+import {AdminRoleStateModel} from "@admin/role/stores/admin-role.state";
 import {
   ChangeDetectionStrategy,
   Component,
@@ -7,19 +9,17 @@ import {
   MAT_DIALOG_DATA,
   MatDialogRef,
 } from "@angular/material";
-import {adminRoleActionNameSpace} from "@app/features/admin/stores/role/admin-role.action";
-import {AdminRoleStateModel} from "@app/features/admin/stores/role/admin-role.state";
 import {Role} from "@app/generated-api";
-import {SharedAbstractDeleteDialog} from "@app/shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {DeleteDialog} from "@app/shared/models/delete-dialog.model";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDeleteDialog} from "@shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {DeleteDialog} from "@shared/models/delete-dialog.model";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-role-delete-dialog",
-  templateUrl: "../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
-  styleUrls: ["../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
+  templateUrl: "../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
+  styleUrls: ["../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminRoleDeleteDialog extends SharedAbstractDeleteDialog<Role, AdminRoleStateModel> {
diff --git a/src/app/features/admin/components/presentationals/admin-role-form/admin-role-form.presentational.html b/src/app/features/admin/role/components/presentationals/admin-role-form/admin-role-form.presentational.html
similarity index 100%
rename from src/app/features/admin/components/presentationals/admin-role-form/admin-role-form.presentational.html
rename to src/app/features/admin/role/components/presentationals/admin-role-form/admin-role-form.presentational.html
diff --git a/src/app/features/admin/components/presentationals/admin-role-form/admin-role-form.presentational.ts b/src/app/features/admin/role/components/presentationals/admin-role-form/admin-role-form.presentational.ts
similarity index 78%
rename from src/app/features/admin/components/presentationals/admin-role-form/admin-role-form.presentational.ts
rename to src/app/features/admin/role/components/presentationals/admin-role-form/admin-role-form.presentational.ts
index c2314ea549bf7e620f660d369ee705599d8b2734..5989e5e965de7b8f1092920e270e595b7541801d 100644
--- a/src/app/features/admin/components/presentationals/admin-role-form/admin-role-form.presentational.ts
+++ b/src/app/features/admin/role/components/presentationals/admin-role-form/admin-role-form.presentational.ts
@@ -8,8 +8,8 @@ import {
   Validators,
 } from "@angular/forms";
 import {Role} from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {BaseFormDefinition} from "@app/shared/models/base-form-definition.model";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {BaseFormDefinition} from "@shared/models/base-form-definition.model";
 import {
   PropertyName,
   SolidifyValidator,
@@ -18,7 +18,7 @@ import {
 @Component({
   selector: "dlcm-admin-role-form",
   templateUrl: "./admin-role-form.presentational.html",
-  styleUrls: ["../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
+  styleUrls: ["../../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminRoleFormPresentational extends SharedAbstractFormPresentational<Role> {
diff --git a/src/app/features/admin/components/routables/admin-role-create/admin-role-create.routable.html b/src/app/features/admin/role/components/routables/admin-role-create/admin-role-create.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-role-create/admin-role-create.routable.html
rename to src/app/features/admin/role/components/routables/admin-role-create/admin-role-create.routable.html
diff --git a/src/app/features/admin/components/routables/admin-role-create/admin-role-create.routable.ts b/src/app/features/admin/role/components/routables/admin-role-create/admin-role-create.routable.ts
similarity index 51%
rename from src/app/features/admin/components/routables/admin-role-create/admin-role-create.routable.ts
rename to src/app/features/admin/role/components/routables/admin-role-create/admin-role-create.routable.ts
index ab3f5153d7e9fa0d0b19abcd5d7f0dad92431493..78fa5b150aa53345ad61da3b12060bb3b0c1eccf 100644
--- a/src/app/features/admin/components/routables/admin-role-create/admin-role-create.routable.ts
+++ b/src/app/features/admin/role/components/routables/admin-role-create/admin-role-create.routable.ts
@@ -1,20 +1,20 @@
+import {adminRoleActionNameSpace} from "@admin/role/stores/admin-role.action";
+import {AdminRoleStateModel} from "@admin/role/stores/admin-role.state";
 import {
   ChangeDetectionStrategy,
   Component,
   ViewChild,
 } from "@angular/core";
-import {adminRoleActionNameSpace} from "@app/features/admin/stores/role/admin-role.action";
-import {AdminRoleStateModel} from "@app/features/admin/stores/role/admin-role.state";
 import {Role} from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {SharedAbstractCreateRoutable} from "@app/shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {SharedAbstractCreateRoutable} from "@shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 
 @Component({
   selector: "dlcm-admin-role-create-routable",
   templateUrl: "./admin-role-create.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminRoleCreateRoutable extends SharedAbstractCreateRoutable<Role, AdminRoleStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-role-detail/admin-role-detail.routable.html b/src/app/features/admin/role/components/routables/admin-role-detail/admin-role-detail.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-role-detail/admin-role-detail.routable.html
rename to src/app/features/admin/role/components/routables/admin-role-detail/admin-role-detail.routable.html
diff --git a/src/app/features/admin/components/routables/admin-role-detail/admin-role-detail.routable.ts b/src/app/features/admin/role/components/routables/admin-role-detail/admin-role-detail.routable.ts
similarity index 67%
rename from src/app/features/admin/components/routables/admin-role-detail/admin-role-detail.routable.ts
rename to src/app/features/admin/role/components/routables/admin-role-detail/admin-role-detail.routable.ts
index ebb91462975558cfc941e9d228f52beab32a7f12..3ccee92080dada4ee62d7dcad56883883035cbaf 100644
--- a/src/app/features/admin/components/routables/admin-role-detail/admin-role-detail.routable.ts
+++ b/src/app/features/admin/role/components/routables/admin-role-detail/admin-role-detail.routable.ts
@@ -1,21 +1,21 @@
+import {adminRoleActionNameSpace} from "@admin/role/stores/admin-role.action";
+import {AdminRoleStateModel} from "@admin/role/stores/admin-role.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {MatDialog} from "@angular/material";
 import {ActivatedRoute} from "@angular/router";
-import {adminRoleActionNameSpace} from "@app/features/admin/stores/role/admin-role.action";
-import {AdminRoleStateModel} from "@app/features/admin/stores/role/admin-role.state";
 import {Role} from "@app/generated-api";
-import {SharedAbstractDetailRoutable} from "@app/shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDetailRoutable} from "@shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-role-detail-routable",
   templateUrl: "./admin-role-detail.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminRoleDetailRoutable extends SharedAbstractDetailRoutable<Role, AdminRoleStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-role-edit/admin-role-edit.routable.html b/src/app/features/admin/role/components/routables/admin-role-edit/admin-role-edit.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-role-edit/admin-role-edit.routable.html
rename to src/app/features/admin/role/components/routables/admin-role-edit/admin-role-edit.routable.html
diff --git a/src/app/features/admin/components/routables/admin-role-edit/admin-role-edit.routable.ts b/src/app/features/admin/role/components/routables/admin-role-edit/admin-role-edit.routable.ts
similarity index 59%
rename from src/app/features/admin/components/routables/admin-role-edit/admin-role-edit.routable.ts
rename to src/app/features/admin/role/components/routables/admin-role-edit/admin-role-edit.routable.ts
index cab91b29a0cc3fc8a8480a0847b4ac0d5c096829..a77073029d289ab7e8f10e80be0136785bbb2c9a 100644
--- a/src/app/features/admin/components/routables/admin-role-edit/admin-role-edit.routable.ts
+++ b/src/app/features/admin/role/components/routables/admin-role-edit/admin-role-edit.routable.ts
@@ -1,19 +1,19 @@
+import {adminRoleActionNameSpace} from "@admin/role/stores/admin-role.action";
+import {AdminRoleStateModel} from "@admin/role/stores/admin-role.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {ActivatedRoute} from "@angular/router";
-import {adminRoleActionNameSpace} from "@app/features/admin/stores/role/admin-role.action";
-import {AdminRoleStateModel} from "@app/features/admin/stores/role/admin-role.state";
 import {Role} from "@app/generated-api";
-import {SharedAbstractEditRoutable} from "@app/shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractEditRoutable} from "@shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 
 @Component({
   selector: "dlcm-admin-submission-policy-edit-routable",
   templateUrl: "./admin-role-edit.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminRoleEditRoutable extends SharedAbstractEditRoutable<Role, AdminRoleStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-role-list/admin-role-list.routable.ts b/src/app/features/admin/role/components/routables/admin-role-list/admin-role-list.routable.ts
similarity index 59%
rename from src/app/features/admin/components/routables/admin-role-list/admin-role-list.routable.ts
rename to src/app/features/admin/role/components/routables/admin-role-list/admin-role-list.routable.ts
index ea17146dde2a3a683f5ee79ccf9fc9d8cd56f004..4296786f5ce37fb180c6f272fa4ddfac46c23285 100644
--- a/src/app/features/admin/components/routables/admin-role-list/admin-role-list.routable.ts
+++ b/src/app/features/admin/role/components/routables/admin-role-list/admin-role-list.routable.ts
@@ -1,20 +1,20 @@
+import {adminRoleActionNameSpace} from "@admin/role/stores/admin-role.action";
+import {AdminRoleStateModel} from "@admin/role/stores/admin-role.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
-import {adminRoleActionNameSpace} from "@app/features/admin/stores/role/admin-role.action";
-import {AdminRoleStateModel} from "@app/features/admin/stores/role/admin-role.state";
 import {Role} from "@app/generated-api";
-import {SharedAbstractListRoutable} from "@app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
-import {FieldTypeEnum} from "@app/shared/enums/field-type.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractListRoutable} from "@shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
+import {FieldTypeEnum} from "@shared/enums/field-type.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-submission-policy-list-routable",
-  templateUrl: "../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
+  templateUrl: "../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminRoleListRoutable extends SharedAbstractListRoutable<Role, AdminRoleStateModel> {
diff --git a/src/app/features/admin/role/role-routing.module.ts b/src/app/features/admin/role/role-routing.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..cbcee1a85a633741e69cdf2d19c8214841caad9f
--- /dev/null
+++ b/src/app/features/admin/role/role-routing.module.ts
@@ -0,0 +1,53 @@
+import {AdminRoleCreateRoutable} from "@admin/role/components/routables/admin-role-create/admin-role-create.routable";
+import {AdminRoleDetailRoutable} from "@admin/role/components/routables/admin-role-detail/admin-role-detail.routable";
+import {AdminRoleEditRoutable} from "@admin/role/components/routables/admin-role-edit/admin-role-edit.routable";
+import {AdminRoleListRoutable} from "@admin/role/components/routables/admin-role-list/admin-role-list.routable";
+import {NgModule} from "@angular/core";
+import {
+  RouterModule,
+  Routes,
+} from "@angular/router";
+import {
+  AdminRoutesEnum,
+  AppRoutesEnum,
+} from "@shared/enums/routes.enum";
+import {CanDeactivateGuard} from "@shared/services/can-deactivate-guard.service";
+import {TRANSLATE} from "solidify-frontend";
+
+const routes: Routes = [
+  {
+    path: AppRoutesEnum.root,
+    component: AdminRoleListRoutable,
+    data: {},
+  },
+  {
+    path: AdminRoutesEnum.roleDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminRoleDetailRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.role.detail"),
+    },
+  },
+  {
+    component: AdminRoleCreateRoutable,
+    path: AdminRoutesEnum.roleCreate,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.role.create"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+  {
+    path: AdminRoutesEnum.roleEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminRoleEditRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.role.edit"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule],
+})
+export class AdminRoleRoutingModule {
+}
diff --git a/src/app/features/admin/role/role.module.ts b/src/app/features/admin/role/role.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4ddeb2975da49f6e2c0fd10cd77bf84457315cb5
--- /dev/null
+++ b/src/app/features/admin/role/role.module.ts
@@ -0,0 +1,52 @@
+import {AdminRoleDeleteDialog} from "@admin/role/components/dialogs/admin-role-delete/admin-role-delete.dialog";
+import {AdminRoleFormPresentational} from "@admin/role/components/presentationals/admin-role-form/admin-role-form.presentational";
+import {AdminRoleCreateRoutable} from "@admin/role/components/routables/admin-role-create/admin-role-create.routable";
+import {AdminRoleDetailRoutable} from "@admin/role/components/routables/admin-role-detail/admin-role-detail.routable";
+import {AdminRoleEditRoutable} from "@admin/role/components/routables/admin-role-edit/admin-role-edit.routable";
+import {AdminRoleListRoutable} from "@admin/role/components/routables/admin-role-list/admin-role-list.routable";
+import {AdminRoleRoutingModule} from "@admin/role/role-routing.module";
+import {AdminRoleState} from "@admin/role/stores/admin-role.state";
+import {NgModule} from "@angular/core";
+import {SharedModule} from "@app/shared/shared.module";
+import {TranslateModule} from "@ngx-translate/core";
+import {NgxsModule} from "@ngxs/store";
+
+const routables = [
+  AdminRoleListRoutable,
+  AdminRoleCreateRoutable,
+  AdminRoleDetailRoutable,
+  AdminRoleEditRoutable,
+];
+const containers = [];
+const dialogs = [
+  AdminRoleDeleteDialog,
+];
+const presentationals = [
+  AdminRoleFormPresentational,
+];
+
+@NgModule({
+  declarations: [
+    ...routables,
+    ...containers,
+    ...dialogs,
+    ...presentationals,
+  ],
+  imports: [
+    SharedModule,
+    AdminRoleRoutingModule,
+    TranslateModule.forChild({}),
+    NgxsModule.forFeature([
+      AdminRoleState,
+    ]),
+  ],
+  entryComponents: [
+    ...dialogs,
+  ],
+  exports: [
+    ...routables,
+  ],
+  providers: [],
+})
+export class AdminRoleModule {
+}
diff --git a/src/app/features/admin/stores/role/admin-role.action.ts b/src/app/features/admin/role/stores/admin-role.action.ts
similarity index 97%
rename from src/app/features/admin/stores/role/admin-role.action.ts
rename to src/app/features/admin/role/stores/admin-role.action.ts
index bf27a5773301a914cbbe8a54a2e21e5c8cf53e00..09885e6b7b58653038223a2e534b6dcfce4d9c09 100644
--- a/src/app/features/admin/stores/role/admin-role.action.ts
+++ b/src/app/features/admin/role/stores/admin-role.action.ts
@@ -1,5 +1,5 @@
 import {Role} from "@app/generated-api";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   ResourceAction,
   ResourceNameSpace,
diff --git a/src/app/features/admin/stores/role/admin-role.state.ts b/src/app/features/admin/role/stores/admin-role.state.ts
similarity index 81%
rename from src/app/features/admin/stores/role/admin-role.state.ts
rename to src/app/features/admin/role/stores/admin-role.state.ts
index 9a4fa27d678ea245daf09ed303bc848da264333a..3fcfe8e596d60301d43e6144590968202a2103fc 100644
--- a/src/app/features/admin/stores/role/admin-role.state.ts
+++ b/src/app/features/admin/role/stores/admin-role.state.ts
@@ -1,13 +1,13 @@
-import {adminRoleActionNameSpace} from "@app/features/admin/stores/role/admin-role.action";
+import {adminRoleActionNameSpace} from "@admin/role/stores/admin-role.action";
 import {Role} from "@app/generated-api";
-import {AdminResourceApiEnum} from "@app/shared/enums/api.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {RoutesEnum} from "@app/shared/enums/routes.enum";
 import {
   Actions,
   State,
   Store,
 } from "@ngxs/store";
+import {AdminResourceApiEnum} from "@shared/enums/api.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {RoutesEnum} from "@shared/enums/routes.enum";
 import {
   ApiService,
   defaultResourceStateInitValue,
diff --git a/src/app/features/admin/stores/admin.state.ts b/src/app/features/admin/stores/admin.state.ts
index 24e3c26a7a5d8d6861caab75f218660c08cb4148..1bb7ed0c41905bf325776da46bbc82fcf56c4a48 100644
--- a/src/app/features/admin/stores/admin.state.ts
+++ b/src/app/features/admin/stores/admin.state.ts
@@ -1,43 +1,43 @@
 import {
   AdminFundingAgenciesState,
   AdminFundingAgenciesStateModel,
-} from "@app/features/admin/stores/funding-agency/admin-funding-agencies.state";
+} from "@admin/funding-agencies/stores/admin-funding-agencies.state";
 import {
   AdminInstitutionState,
   AdminInstitutionStateModel,
-} from "@app/features/admin/stores/institution/admin-institution.state";
+} from "@admin/institution/stores/admin-institution.state";
 import {
   AdminLicenseState,
   AdminLicenseStateModel,
-} from "@app/features/admin/stores/license/admin-license.state";
+} from "@admin/license/stores/admin-license.state";
 import {
   AdminOAuth2ClientState,
   AdminOAuth2ClientStateModel,
-} from "@app/features/admin/stores/oauth2-client/admin-oauth2-client.state";
+} from "@admin/oauth2-client/stores/admin-oauth2-client.state";
 import {
   AdminOrganizationalUnitState,
   AdminOrganizationalUnitStateModel,
-} from "@app/features/admin/stores/organizational-unit/admin-organizational-unit.state";
+} from "@admin/orgunit/stores/admin-organizational-unit.state";
 import {
   AdminPersonState,
   AdminPersonStateModel,
-} from "@app/features/admin/stores/person/admin-person.state";
+} from "@admin/person/stores/admin-person.state";
 import {
   AdminPreservationPolicyState,
   AdminPreservationPolicyStateModel,
-} from "@app/features/admin/stores/preservation-policy/admin-preservation-policy.state";
+} from "@admin/preservation-policy/stores/admin-preservation-policy.state";
 import {
   AdminRoleState,
   AdminRoleStateModel,
-} from "@app/features/admin/stores/role/admin-role.state";
+} from "@admin/role/stores/admin-role.state";
 import {
   AdminSubmissionPolicyState,
   AdminSubmissionPolicyStateModel,
-} from "@app/features/admin/stores/submission-policy/admin-submission-policy.state";
+} from "@admin/submission-policy/stores/admin-submission-policy.state";
 import {
   AdminUserState,
   AdminUserStateModel,
-} from "@app/features/admin/stores/user/admin-user.state";
+} from "@admin/user/stores/admin-user.state";
 import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {
   State,
diff --git a/src/app/features/admin/components/dialogs/admin-submission-policy-delete/admin-submission-policy-delete.dialog.ts b/src/app/features/admin/submission-policy/components/dialogs/admin-submission-policy-delete/admin-submission-policy-delete.dialog.ts
similarity index 62%
rename from src/app/features/admin/components/dialogs/admin-submission-policy-delete/admin-submission-policy-delete.dialog.ts
rename to src/app/features/admin/submission-policy/components/dialogs/admin-submission-policy-delete/admin-submission-policy-delete.dialog.ts
index 50cd19e50b56f331ec2ccc0f4fe7017585363e4c..e851879a9df2c908cb166d668d8f3a8bd9987317 100644
--- a/src/app/features/admin/components/dialogs/admin-submission-policy-delete/admin-submission-policy-delete.dialog.ts
+++ b/src/app/features/admin/submission-policy/components/dialogs/admin-submission-policy-delete/admin-submission-policy-delete.dialog.ts
@@ -1,3 +1,5 @@
+import {adminSubmissionPolicyActionNameSpace} from "@admin/submission-policy/stores/admin-submission-policy.action";
+import {AdminSubmissionPolicyStateModel} from "@admin/submission-policy/stores/admin-submission-policy.state";
 import {
   ChangeDetectionStrategy,
   Component,
@@ -7,19 +9,17 @@ import {
   MAT_DIALOG_DATA,
   MatDialogRef,
 } from "@angular/material";
-import {adminSubmissionPolicyActionNameSpace} from "@app/features/admin/stores/submission-policy/admin-submission-policy.action";
-import {AdminSubmissionPolicyStateModel} from "@app/features/admin/stores/submission-policy/admin-submission-policy.state";
 import {SubmissionPolicy} from "@app/generated-api";
-import {SharedAbstractDeleteDialog} from "@app/shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {DeleteDialog} from "@app/shared/models/delete-dialog.model";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDeleteDialog} from "@shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {DeleteDialog} from "@shared/models/delete-dialog.model";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-submission-policy-delete-dialog",
-  templateUrl: "../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
-  styleUrls: ["../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
+  templateUrl: "../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
+  styleUrls: ["../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminSubmissionPolicyDeleteDialog extends SharedAbstractDeleteDialog<SubmissionPolicy, AdminSubmissionPolicyStateModel> {
diff --git a/src/app/features/admin/components/presentationals/admin-submission-policy-form/admin-submission-policy-form.presentational.html b/src/app/features/admin/submission-policy/components/presentationals/admin-submission-policy-form/admin-submission-policy-form.presentational.html
similarity index 100%
rename from src/app/features/admin/components/presentationals/admin-submission-policy-form/admin-submission-policy-form.presentational.html
rename to src/app/features/admin/submission-policy/components/presentationals/admin-submission-policy-form/admin-submission-policy-form.presentational.html
diff --git a/src/app/features/admin/components/presentationals/admin-submission-policy-form/admin-submission-policy-form.presentational.ts b/src/app/features/admin/submission-policy/components/presentationals/admin-submission-policy-form/admin-submission-policy-form.presentational.ts
similarity index 83%
rename from src/app/features/admin/components/presentationals/admin-submission-policy-form/admin-submission-policy-form.presentational.ts
rename to src/app/features/admin/submission-policy/components/presentationals/admin-submission-policy-form/admin-submission-policy-form.presentational.ts
index dc1c03d3cd5759f82923650834ace583a164151b..e062851e99dd5fc7dc84dabbeed67b92735132cf 100644
--- a/src/app/features/admin/components/presentationals/admin-submission-policy-form/admin-submission-policy-form.presentational.ts
+++ b/src/app/features/admin/submission-policy/components/presentationals/admin-submission-policy-form/admin-submission-policy-form.presentational.ts
@@ -8,8 +8,8 @@ import {
   Validators,
 } from "@angular/forms";
 import {SubmissionPolicy} from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {BaseFormDefinition} from "@app/shared/models/base-form-definition.model";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {BaseFormDefinition} from "@shared/models/base-form-definition.model";
 import {
   PropertyName,
   SolidifyValidator,
@@ -18,7 +18,7 @@ import {
 @Component({
   selector: "dlcm-admin-submission-policy-form",
   templateUrl: "./admin-submission-policy-form.presentational.html",
-  styleUrls: ["../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
+  styleUrls: ["../../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminSubmissionPolicyFormPresentational extends SharedAbstractFormPresentational<SubmissionPolicy> {
diff --git a/src/app/features/admin/components/routables/admin-submission-policy-create/admin-submission-policy-create.routable.html b/src/app/features/admin/submission-policy/components/routables/admin-submission-policy-create/admin-submission-policy-create.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-submission-policy-create/admin-submission-policy-create.routable.html
rename to src/app/features/admin/submission-policy/components/routables/admin-submission-policy-create/admin-submission-policy-create.routable.html
diff --git a/src/app/features/admin/components/routables/admin-submission-policy-create/admin-submission-policy-create.routable.ts b/src/app/features/admin/submission-policy/components/routables/admin-submission-policy-create/admin-submission-policy-create.routable.ts
similarity index 52%
rename from src/app/features/admin/components/routables/admin-submission-policy-create/admin-submission-policy-create.routable.ts
rename to src/app/features/admin/submission-policy/components/routables/admin-submission-policy-create/admin-submission-policy-create.routable.ts
index 4fc64ed092926957d9424080dbcd002b18604e75..a875e7f82715f1fe25bb2362fda0648b07a722c3 100644
--- a/src/app/features/admin/components/routables/admin-submission-policy-create/admin-submission-policy-create.routable.ts
+++ b/src/app/features/admin/submission-policy/components/routables/admin-submission-policy-create/admin-submission-policy-create.routable.ts
@@ -1,20 +1,20 @@
+import {adminSubmissionPolicyActionNameSpace} from "@admin/submission-policy/stores/admin-submission-policy.action";
+import {AdminSubmissionPolicyStateModel} from "@admin/submission-policy/stores/admin-submission-policy.state";
 import {
   ChangeDetectionStrategy,
   Component,
   ViewChild,
 } from "@angular/core";
-import {adminSubmissionPolicyActionNameSpace} from "@app/features/admin/stores/submission-policy/admin-submission-policy.action";
-import {AdminSubmissionPolicyStateModel} from "@app/features/admin/stores/submission-policy/admin-submission-policy.state";
 import {SubmissionPolicy} from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {SharedAbstractCreateRoutable} from "@app/shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {SharedAbstractCreateRoutable} from "@shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 
 @Component({
   selector: "dlcm-admin-submission-policy-create-routable",
   templateUrl: "./admin-submission-policy-create.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminSubmissionPolicyCreateRoutable extends SharedAbstractCreateRoutable<SubmissionPolicy, AdminSubmissionPolicyStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable.html b/src/app/features/admin/submission-policy/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable.html
rename to src/app/features/admin/submission-policy/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable.html
diff --git a/src/app/features/admin/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable.ts b/src/app/features/admin/submission-policy/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable.ts
similarity index 67%
rename from src/app/features/admin/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable.ts
rename to src/app/features/admin/submission-policy/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable.ts
index 7737f8ae66c5bfac27e151517ffab9a349a05edb..e9969b1152992d3b15aa0956822895fe9c9ca1e8 100644
--- a/src/app/features/admin/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable.ts
+++ b/src/app/features/admin/submission-policy/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable.ts
@@ -1,21 +1,21 @@
+import {adminSubmissionPolicyActionNameSpace} from "@admin/submission-policy/stores/admin-submission-policy.action";
+import {AdminSubmissionPolicyStateModel} from "@admin/submission-policy/stores/admin-submission-policy.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {MatDialog} from "@angular/material";
 import {ActivatedRoute} from "@angular/router";
-import {adminSubmissionPolicyActionNameSpace} from "@app/features/admin/stores/submission-policy/admin-submission-policy.action";
-import {AdminSubmissionPolicyStateModel} from "@app/features/admin/stores/submission-policy/admin-submission-policy.state";
 import {SubmissionPolicy} from "@app/generated-api";
-import {SharedAbstractDetailRoutable} from "@app/shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDetailRoutable} from "@shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-submission-policy-detail-routable",
   templateUrl: "./admin-submission-policy-detail.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminSubmissionPolicyDetailRoutable extends SharedAbstractDetailRoutable<SubmissionPolicy, AdminSubmissionPolicyStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable.html b/src/app/features/admin/submission-policy/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable.html
rename to src/app/features/admin/submission-policy/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable.html
diff --git a/src/app/features/admin/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable.ts b/src/app/features/admin/submission-policy/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable.ts
similarity index 58%
rename from src/app/features/admin/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable.ts
rename to src/app/features/admin/submission-policy/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable.ts
index ac2b8da8d7c17d0fdb683c8fb1526958653bbca8..d342583457f308072f04971cdd71405b4c3d7b8e 100644
--- a/src/app/features/admin/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable.ts
+++ b/src/app/features/admin/submission-policy/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable.ts
@@ -1,19 +1,19 @@
+import {adminSubmissionPolicyActionNameSpace} from "@admin/submission-policy/stores/admin-submission-policy.action";
+import {AdminSubmissionPolicyStateModel} from "@admin/submission-policy/stores/admin-submission-policy.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {ActivatedRoute} from "@angular/router";
-import {adminSubmissionPolicyActionNameSpace} from "@app/features/admin/stores/submission-policy/admin-submission-policy.action";
-import {AdminSubmissionPolicyStateModel} from "@app/features/admin/stores/submission-policy/admin-submission-policy.state";
 import {SubmissionPolicy} from "@app/generated-api";
-import {SharedAbstractEditRoutable} from "@app/shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractEditRoutable} from "@shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 
 @Component({
   selector: "dlcm-admin-submission-policy-edit-routable",
   templateUrl: "./admin-submission-policy-edit.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminSubmissionPolicyEditRoutable extends SharedAbstractEditRoutable<SubmissionPolicy, AdminSubmissionPolicyStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-submission-policy-list/admin-submission-policy-list.routable.ts b/src/app/features/admin/submission-policy/components/routables/admin-submission-policy-list/admin-submission-policy-list.routable.ts
similarity index 73%
rename from src/app/features/admin/components/routables/admin-submission-policy-list/admin-submission-policy-list.routable.ts
rename to src/app/features/admin/submission-policy/components/routables/admin-submission-policy-list/admin-submission-policy-list.routable.ts
index 3499411c8de4327dcc380f749405bb46560070d7..afa5f5c2115ce20cb766ef3a8b4168c36f9e7ba1 100644
--- a/src/app/features/admin/components/routables/admin-submission-policy-list/admin-submission-policy-list.routable.ts
+++ b/src/app/features/admin/submission-policy/components/routables/admin-submission-policy-list/admin-submission-policy-list.routable.ts
@@ -1,20 +1,20 @@
+import {adminSubmissionPolicyActionNameSpace} from "@admin/submission-policy/stores/admin-submission-policy.action";
+import {AdminSubmissionPolicyStateModel} from "@admin/submission-policy/stores/admin-submission-policy.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
-import {adminSubmissionPolicyActionNameSpace} from "@app/features/admin/stores/submission-policy/admin-submission-policy.action";
-import {AdminSubmissionPolicyStateModel} from "@app/features/admin/stores/submission-policy/admin-submission-policy.state";
 import {SubmissionPolicy} from "@app/generated-api";
-import {SharedAbstractListRoutable} from "@app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
-import {FieldTypeEnum} from "@app/shared/enums/field-type.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractListRoutable} from "@shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
+import {FieldTypeEnum} from "@shared/enums/field-type.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-submission-policy-list-routable",
-  templateUrl: "../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
+  templateUrl: "../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminSubmissionPolicyListRoutable extends SharedAbstractListRoutable<SubmissionPolicy, AdminSubmissionPolicyStateModel> {
diff --git a/src/app/features/admin/stores/submission-policy/admin-submission-policy.action.ts b/src/app/features/admin/submission-policy/stores/admin-submission-policy.action.ts
similarity index 97%
rename from src/app/features/admin/stores/submission-policy/admin-submission-policy.action.ts
rename to src/app/features/admin/submission-policy/stores/admin-submission-policy.action.ts
index 79546801a3a2eb392f20df7655d379b21532d2d1..ee1fbc18f5136e63cc29ff4f685731497539233c 100644
--- a/src/app/features/admin/stores/submission-policy/admin-submission-policy.action.ts
+++ b/src/app/features/admin/submission-policy/stores/admin-submission-policy.action.ts
@@ -1,5 +1,5 @@
 import {SubmissionPolicy} from "@app/generated-api";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
   ResourceAction,
   ResourceNameSpace,
diff --git a/src/app/features/admin/stores/submission-policy/admin-submission-policy.state.ts b/src/app/features/admin/submission-policy/stores/admin-submission-policy.state.ts
similarity index 88%
rename from src/app/features/admin/stores/submission-policy/admin-submission-policy.state.ts
rename to src/app/features/admin/submission-policy/stores/admin-submission-policy.state.ts
index f54aabea7af3be75127b9b62a6d8341e39cfe987..1c0c1dcdac222b038a991a00cfef288c68b4d347 100644
--- a/src/app/features/admin/stores/submission-policy/admin-submission-policy.state.ts
+++ b/src/app/features/admin/submission-policy/stores/admin-submission-policy.state.ts
@@ -1,12 +1,12 @@
 import {SubmissionPolicy} from "@app/generated-api";
-import {AdminResourceApiEnum} from "@app/shared/enums/api.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {RoutesEnum} from "@app/shared/enums/routes.enum";
 import {
   Actions,
   State,
   Store,
 } from "@ngxs/store";
+import {AdminResourceApiEnum} from "@shared/enums/api.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {RoutesEnum} from "@shared/enums/routes.enum";
 import {
   ApiService,
   defaultResourceStateInitValue,
diff --git a/src/app/features/admin/submission-policy/submission-policy-routing.module.ts b/src/app/features/admin/submission-policy/submission-policy-routing.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1359e39113f5cf61457e75f8e21c16ec522820a2
--- /dev/null
+++ b/src/app/features/admin/submission-policy/submission-policy-routing.module.ts
@@ -0,0 +1,54 @@
+import {AdminSubmissionPolicyCreateRoutable} from "@admin/submission-policy/components/routables/admin-submission-policy-create/admin-submission-policy-create.routable";
+import {AdminSubmissionPolicyDetailRoutable} from "@admin/submission-policy/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable";
+import {AdminSubmissionPolicyEditRoutable} from "@admin/submission-policy/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable";
+import {AdminSubmissionPolicyListRoutable} from "@admin/submission-policy/components/routables/admin-submission-policy-list/admin-submission-policy-list.routable";
+import {NgModule} from "@angular/core";
+import {
+  RouterModule,
+  Routes,
+} from "@angular/router";
+import {
+  AdminRoutesEnum,
+  AppRoutesEnum,
+} from "@shared/enums/routes.enum";
+import {CanDeactivateGuard} from "@shared/services/can-deactivate-guard.service";
+import {TRANSLATE} from "solidify-frontend";
+
+const routes: Routes = [
+  {
+    path: AppRoutesEnum.root,
+    component: AdminSubmissionPolicyListRoutable,
+    data: {},
+  },
+  {
+    path: AdminRoutesEnum.submissionPolicyDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminSubmissionPolicyDetailRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.submissionPolicy.detail"),
+    },
+  },
+  {
+    path: AdminRoutesEnum.submissionPolicyEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminSubmissionPolicyEditRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.submissionPolicy.edit"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+  {
+    path: AdminRoutesEnum.submissionPolicyCreate,
+    component: AdminSubmissionPolicyCreateRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.submissionPolicy.create"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule],
+})
+export class AdminSubmissionPolicyRoutingModule {
+}
diff --git a/src/app/features/admin/submission-policy/submission-policy.module.ts b/src/app/features/admin/submission-policy/submission-policy.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6de6cad499ce2c4325f360d7b30870b21641768d
--- /dev/null
+++ b/src/app/features/admin/submission-policy/submission-policy.module.ts
@@ -0,0 +1,52 @@
+import {AdminSubmissionPolicyDeleteDialog} from "@admin/submission-policy/components/dialogs/admin-submission-policy-delete/admin-submission-policy-delete.dialog";
+import {AdminSubmissionPolicyFormPresentational} from "@admin/submission-policy/components/presentationals/admin-submission-policy-form/admin-submission-policy-form.presentational";
+import {AdminSubmissionPolicyCreateRoutable} from "@admin/submission-policy/components/routables/admin-submission-policy-create/admin-submission-policy-create.routable";
+import {AdminSubmissionPolicyDetailRoutable} from "@admin/submission-policy/components/routables/admin-submission-policy-detail/admin-submission-policy-detail.routable";
+import {AdminSubmissionPolicyEditRoutable} from "@admin/submission-policy/components/routables/admin-submission-policy-edit/admin-submission-policy-edit.routable";
+import {AdminSubmissionPolicyListRoutable} from "@admin/submission-policy/components/routables/admin-submission-policy-list/admin-submission-policy-list.routable";
+import {AdminSubmissionPolicyState} from "@admin/submission-policy/stores/admin-submission-policy.state";
+import {AdminSubmissionPolicyRoutingModule} from "@admin/submission-policy/submission-policy-routing.module";
+import {NgModule} from "@angular/core";
+import {SharedModule} from "@app/shared/shared.module";
+import {TranslateModule} from "@ngx-translate/core";
+import {NgxsModule} from "@ngxs/store";
+
+const routables = [
+  AdminSubmissionPolicyListRoutable,
+  AdminSubmissionPolicyDetailRoutable,
+  AdminSubmissionPolicyEditRoutable,
+  AdminSubmissionPolicyCreateRoutable,
+];
+const containers = [];
+const dialogs = [
+  AdminSubmissionPolicyDeleteDialog,
+];
+const presentationals = [
+  AdminSubmissionPolicyFormPresentational,
+];
+
+@NgModule({
+  declarations: [
+    ...routables,
+    ...containers,
+    ...dialogs,
+    ...presentationals,
+  ],
+  imports: [
+    SharedModule,
+    AdminSubmissionPolicyRoutingModule,
+    TranslateModule.forChild({}),
+    NgxsModule.forFeature([
+      AdminSubmissionPolicyState,
+    ]),
+  ],
+  entryComponents: [
+    ...dialogs,
+  ],
+  exports: [
+    ...routables,
+  ],
+  providers: [],
+})
+export class AdminSubmissionPolicyModule {
+}
diff --git a/src/app/features/admin/components/dialogs/admin-user-delete/admin-user-delete.dialog.ts b/src/app/features/admin/user/components/dialogs/admin-user-delete/admin-user-delete.dialog.ts
similarity index 63%
rename from src/app/features/admin/components/dialogs/admin-user-delete/admin-user-delete.dialog.ts
rename to src/app/features/admin/user/components/dialogs/admin-user-delete/admin-user-delete.dialog.ts
index 7476cd104246b4726d80ddf5bf969124aba07aee..8e21e8d336e9c5dab20bbeae63ae081027b8c656 100644
--- a/src/app/features/admin/components/dialogs/admin-user-delete/admin-user-delete.dialog.ts
+++ b/src/app/features/admin/user/components/dialogs/admin-user-delete/admin-user-delete.dialog.ts
@@ -1,3 +1,5 @@
+import {adminUserActionNameSpace} from "@admin/user/stores/admin-user.action";
+import {AdminUserStateModel} from "@admin/user/stores/admin-user.state";
 import {
   ChangeDetectionStrategy,
   Component,
@@ -7,19 +9,17 @@ import {
   MAT_DIALOG_DATA,
   MatDialogRef,
 } from "@angular/material";
-import {adminUserActionNameSpace} from "@app/features/admin/stores/user/admin-user.action";
-import {AdminUserStateModel} from "@app/features/admin/stores/user/admin-user.state";
-import {SharedAbstractDeleteDialog} from "@app/shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {DeleteDialog} from "@app/shared/models/delete-dialog.model";
 import {Store} from "@ngxs/store";
+import {SharedAbstractDeleteDialog} from "@shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {UserExtended} from "@shared/models/business/user-extended.model";
+import {DeleteDialog} from "@shared/models/delete-dialog.model";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-user-delete-dialog",
-  templateUrl: "../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
-  styleUrls: ["../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
+  templateUrl: "../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.html",
+  styleUrls: ["../../../../../../shared/components/dialogs/shared-abstract-delete/shared-abstract-delete.dialog.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminUserDeleteDialog extends SharedAbstractDeleteDialog<UserExtended, AdminUserStateModel> {
diff --git a/src/app/features/admin/components/presentationals/admin-user-form/admin-user-form.html b/src/app/features/admin/user/components/presentationals/admin-user-form/admin-user-form.presentational.html
similarity index 100%
rename from src/app/features/admin/components/presentationals/admin-user-form/admin-user-form.html
rename to src/app/features/admin/user/components/presentationals/admin-user-form/admin-user-form.presentational.html
diff --git a/src/app/features/admin/components/presentationals/admin-user-form/admin-user-form.ts b/src/app/features/admin/user/components/presentationals/admin-user-form/admin-user-form.presentational.ts
similarity index 89%
rename from src/app/features/admin/components/presentationals/admin-user-form/admin-user-form.ts
rename to src/app/features/admin/user/components/presentationals/admin-user-form/admin-user-form.presentational.ts
index 29108fd7584665aa589f3540ff2cefda0ac11dcf..18ce1ac2e211983bef41b7608eb7068c8d7e57c1 100644
--- a/src/app/features/admin/components/presentationals/admin-user-form/admin-user-form.ts
+++ b/src/app/features/admin/user/components/presentationals/admin-user-form/admin-user-form.presentational.ts
@@ -14,9 +14,9 @@ import {
   ApplicationRole,
   Person,
 } from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {UserApplicationRoleEnum} from "@app/shared/enums/user-application-role.enum";
-import {BaseFormDefinition} from "@app/shared/models/base-form-definition.model";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {UserApplicationRoleEnum} from "@shared/enums/user-application-role.enum";
+import {BaseFormDefinition} from "@shared/models/base-form-definition.model";
 import {UserExtended} from "@shared/models/business/user-extended.model";
 import {
   isNullOrUndefined,
@@ -26,11 +26,11 @@ import {
 
 @Component({
   selector: "dlcm-admin-user-form",
-  templateUrl: "./admin-user-form.html",
-  styleUrls: ["../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
+  templateUrl: "./admin-user-form.presentational.html",
+  styleUrls: ["../../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
-export class AdminUserForm extends SharedAbstractFormPresentational<UserExtended> {
+export class AdminUserFormPresentational extends SharedAbstractFormPresentational<UserExtended> {
   formDefinition: FormComponentFormDefinition = new FormComponentFormDefinition();
 
   applicationRolesNames: string[] = [...Object.values(UserApplicationRoleEnum)];
diff --git a/src/app/features/admin/components/routables/admin-user-create/admin-user-create.routable.html b/src/app/features/admin/user/components/routables/admin-user-create/admin-user-create.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-user-create/admin-user-create.routable.html
rename to src/app/features/admin/user/components/routables/admin-user-create/admin-user-create.routable.html
diff --git a/src/app/features/admin/components/routables/admin-user-create/admin-user-create.routable.ts b/src/app/features/admin/user/components/routables/admin-user-create/admin-user-create.routable.ts
similarity index 60%
rename from src/app/features/admin/components/routables/admin-user-create/admin-user-create.routable.ts
rename to src/app/features/admin/user/components/routables/admin-user-create/admin-user-create.routable.ts
index d5df5f29be0bb3b7319e71179160054e16e051c8..226842cc8d0b42bd006bd378afec9b8f8f62dee5 100644
--- a/src/app/features/admin/components/routables/admin-user-create/admin-user-create.routable.ts
+++ b/src/app/features/admin/user/components/routables/admin-user-create/admin-user-create.routable.ts
@@ -1,29 +1,29 @@
+import {adminUserActionNameSpace} from "@admin/user/stores/admin-user.action";
+import {AdminUserStateModel} from "@admin/user/stores/admin-user.state";
 import {
   ChangeDetectionStrategy,
   Component,
   ViewChild,
 } from "@angular/core";
-import {adminUserActionNameSpace} from "@app/features/admin/stores/user/admin-user.action";
-import {AdminUserStateModel} from "@app/features/admin/stores/user/admin-user.state";
 import {
   AccessOrganizationalUnit,
   Person,
 } from "@app/generated-api";
-import {SharedAbstractFormPresentational} from "@app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
-import {SharedAbstractCreateRoutable} from "@app/shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {LocalStateModel} from "@app/shared/models/local-state.model";
 import {
   Select,
   Store,
 } from "@ngxs/store";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {SharedAbstractCreateRoutable} from "@shared/components/routables/shared-abstract-create/shared-abstract-create.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {UserExtended} from "@shared/models/business/user-extended.model";
+import {LocalStateModel} from "@shared/models/local-state.model";
 import {Observable} from "rxjs";
 
 @Component({
   selector: "dlcm-admin-user-create-routable",
   templateUrl: "./admin-user-create.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-create/shared-abstract-create.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminUserCreateRoutable extends SharedAbstractCreateRoutable<UserExtended, AdminUserStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-user-detail/admin-user-detail.routable.html b/src/app/features/admin/user/components/routables/admin-user-detail/admin-user-detail.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-user-detail/admin-user-detail.routable.html
rename to src/app/features/admin/user/components/routables/admin-user-detail/admin-user-detail.routable.html
diff --git a/src/app/features/admin/components/routables/admin-user-detail/admin-user-detail.routable.ts b/src/app/features/admin/user/components/routables/admin-user-detail/admin-user-detail.routable.ts
similarity index 72%
rename from src/app/features/admin/components/routables/admin-user-detail/admin-user-detail.routable.ts
rename to src/app/features/admin/user/components/routables/admin-user-detail/admin-user-detail.routable.ts
index 062676dea8285dd1ca7fe5d3ab11ffeff9edabcb..c4d52da5880d07ed553922276980233d678af223 100644
--- a/src/app/features/admin/components/routables/admin-user-detail/admin-user-detail.routable.ts
+++ b/src/app/features/admin/user/components/routables/admin-user-detail/admin-user-detail.routable.ts
@@ -1,30 +1,30 @@
+import {adminUserActionNameSpace} from "@admin/user/stores/admin-user.action";
+import {AdminUserStateModel} from "@admin/user/stores/admin-user.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {MatDialog} from "@angular/material";
 import {ActivatedRoute} from "@angular/router";
-import {adminUserActionNameSpace} from "@app/features/admin/stores/user/admin-user.action";
-import {AdminUserStateModel} from "@app/features/admin/stores/user/admin-user.state";
 import {
   AccessOrganizationalUnit,
   Person,
 } from "@app/generated-api";
-import {SharedAbstractDetailRoutable} from "@app/shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {LocalStateModel} from "@app/shared/models/local-state.model";
 import {
   Select,
   Store,
 } from "@ngxs/store";
+import {SharedAbstractDetailRoutable} from "@shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {UserExtended} from "@shared/models/business/user-extended.model";
+import {LocalStateModel} from "@shared/models/local-state.model";
 import {Observable} from "rxjs";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-user-detail-routable",
   templateUrl: "./admin-user-detail.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-detail/shared-abstract-detail.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminUserDetailRoutable extends SharedAbstractDetailRoutable<UserExtended, AdminUserStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-user-edit/admin-user-edit.routable.html b/src/app/features/admin/user/components/routables/admin-user-edit/admin-user-edit.routable.html
similarity index 100%
rename from src/app/features/admin/components/routables/admin-user-edit/admin-user-edit.routable.html
rename to src/app/features/admin/user/components/routables/admin-user-edit/admin-user-edit.routable.html
diff --git a/src/app/features/admin/components/routables/admin-user-edit/admin-user-edit.routable.ts b/src/app/features/admin/user/components/routables/admin-user-edit/admin-user-edit.routable.ts
similarity index 66%
rename from src/app/features/admin/components/routables/admin-user-edit/admin-user-edit.routable.ts
rename to src/app/features/admin/user/components/routables/admin-user-edit/admin-user-edit.routable.ts
index 32a6e3a100f9a3a68192e1b96b40efe3dbe4f53b..6a85a5314f03d850cf75ee860fc9f8ca50c01b35 100644
--- a/src/app/features/admin/components/routables/admin-user-edit/admin-user-edit.routable.ts
+++ b/src/app/features/admin/user/components/routables/admin-user-edit/admin-user-edit.routable.ts
@@ -1,28 +1,28 @@
+import {adminUserActionNameSpace} from "@admin/user/stores/admin-user.action";
+import {AdminUserStateModel} from "@admin/user/stores/admin-user.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
 import {ActivatedRoute} from "@angular/router";
-import {adminUserActionNameSpace} from "@app/features/admin/stores/user/admin-user.action";
-import {AdminUserStateModel} from "@app/features/admin/stores/user/admin-user.state";
 import {
   AccessOrganizationalUnit,
   Person,
 } from "@app/generated-api";
-import {SharedAbstractEditRoutable} from "@app/shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {LocalStateModel} from "@app/shared/models/local-state.model";
 import {
   Select,
   Store,
 } from "@ngxs/store";
+import {SharedAbstractEditRoutable} from "@shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {UserExtended} from "@shared/models/business/user-extended.model";
+import {LocalStateModel} from "@shared/models/local-state.model";
 import {Observable} from "rxjs";
 
 @Component({
   selector: "dlcm-admin-user-edit-routable",
   templateUrl: "./admin-user-edit.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-edit/shared-abstract-edit.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminUserEditRoutable extends SharedAbstractEditRoutable<UserExtended, AdminUserStateModel> {
diff --git a/src/app/features/admin/components/routables/admin-user-list/admin-user-list-routable.ts b/src/app/features/admin/user/components/routables/admin-user-list/admin-user-list.routable.ts
similarity index 75%
rename from src/app/features/admin/components/routables/admin-user-list/admin-user-list-routable.ts
rename to src/app/features/admin/user/components/routables/admin-user-list/admin-user-list.routable.ts
index 8f60eb089cac676ec3bf3fb625abce96f8487771..0989305154d3bd60e91cb14bba962e64f7ad3f83 100644
--- a/src/app/features/admin/components/routables/admin-user-list/admin-user-list-routable.ts
+++ b/src/app/features/admin/user/components/routables/admin-user-list/admin-user-list.routable.ts
@@ -1,20 +1,20 @@
+import {adminUserActionNameSpace} from "@admin/user/stores/admin-user.action";
+import {AdminUserStateModel} from "@admin/user/stores/admin-user.state";
 import {
   ChangeDetectionStrategy,
   Component,
 } from "@angular/core";
-import {adminUserActionNameSpace} from "@app/features/admin/stores/user/admin-user.action";
-import {AdminUserStateModel} from "@app/features/admin/stores/user/admin-user.state";
-import {SharedAbstractListRoutable} from "@app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
-import {FieldTypeEnum} from "@app/shared/enums/field-type.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {Store} from "@ngxs/store";
+import {SharedAbstractListRoutable} from "@shared/components/routables/shared-abstract-list/shared-abstract-list.routable";
+import {FieldTypeEnum} from "@shared/enums/field-type.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {UserExtended} from "@shared/models/business/user-extended.model";
 import {TRANSLATE} from "solidify-frontend";
 
 @Component({
   selector: "dlcm-admin-user-list-routable",
-  templateUrl: "../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
-  styleUrls: ["../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
+  templateUrl: "../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.html",
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-list/shared-abstract-list.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
 export class AdminUserListRoutable extends SharedAbstractListRoutable<UserExtended, AdminUserStateModel> {
diff --git a/src/app/features/admin/stores/user/admin-user.action.ts b/src/app/features/admin/user/stores/admin-user.action.ts
similarity index 97%
rename from src/app/features/admin/stores/user/admin-user.action.ts
rename to src/app/features/admin/user/stores/admin-user.action.ts
index 7e3e46edeb079b91f38f4cbf854c1b5e6ef392c8..e5e1ac275a4eb8299d16c84ec1413fbf9c954de8 100644
--- a/src/app/features/admin/stores/user/admin-user.action.ts
+++ b/src/app/features/admin/user/stores/admin-user.action.ts
@@ -1,4 +1,4 @@
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {UserExtended} from "@shared/models/business/user-extended.model";
 import {
   ResourceAction,
diff --git a/src/app/features/admin/stores/user/admin-user.state.ts b/src/app/features/admin/user/stores/admin-user.state.ts
similarity index 83%
rename from src/app/features/admin/stores/user/admin-user.state.ts
rename to src/app/features/admin/user/stores/admin-user.state.ts
index 92e514685c451f5d1f07946ee44b597237122b61..d16b0d7d91050c39fd1f971463765b33f03235f0 100644
--- a/src/app/features/admin/stores/user/admin-user.state.ts
+++ b/src/app/features/admin/user/stores/admin-user.state.ts
@@ -1,12 +1,7 @@
 import {
   AdminUserAction,
   adminUserActionNameSpace,
-} from "@app/features/admin/stores/user/admin-user.action";
-import {AdminResourceApiEnum} from "@app/shared/enums/api.enum";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
-import {RoutesEnum} from "@app/shared/enums/routes.enum";
-import {SharedOrgUnitAction} from "@app/shared/stores/organizational-unit/shared-organizational-unit.action";
-import {SharedPersonAction} from "@app/shared/stores/person/shared-person.action";
+} from "@admin/user/stores/admin-user.action";
 import {
   Action,
   Actions,
@@ -14,7 +9,12 @@ import {
   StateContext,
   Store,
 } from "@ngxs/store";
+import {AdminResourceApiEnum} from "@shared/enums/api.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {RoutesEnum} from "@shared/enums/routes.enum";
 import {UserExtended} from "@shared/models/business/user-extended.model";
+import {SharedOrgUnitAction} from "@shared/stores/organizational-unit/shared-organizational-unit.action";
+import {SharedPersonAction} from "@shared/stores/person/shared-person.action";
 import {
   ApiService,
   defaultResourceStateInitValue,
diff --git a/src/app/features/admin/user/user-routing.module.ts b/src/app/features/admin/user/user-routing.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c8f2404f00c99e56af32364547392deeeff0239a
--- /dev/null
+++ b/src/app/features/admin/user/user-routing.module.ts
@@ -0,0 +1,60 @@
+import {AdminUserCreateRoutable} from "@admin/user/components/routables/admin-user-create/admin-user-create.routable";
+import {AdminUserDetailRoutable} from "@admin/user/components/routables/admin-user-detail/admin-user-detail.routable";
+import {AdminUserEditRoutable} from "@admin/user/components/routables/admin-user-edit/admin-user-edit.routable";
+import {AdminUserListRoutable} from "@admin/user/components/routables/admin-user-list/admin-user-list.routable";
+import {NgModule} from "@angular/core";
+import {
+  RouterModule,
+  Routes,
+} from "@angular/router";
+import {ApplicationRolePermissionEnum} from "@shared/enums/application-role-permission.enum";
+import {
+  AdminRoutesEnum,
+  AppRoutesEnum,
+} from "@shared/enums/routes.enum";
+import {ApplicationRoleGuardService} from "@shared/guards/application-role-guard.service";
+import {CanDeactivateGuard} from "@shared/services/can-deactivate-guard.service";
+import {TRANSLATE} from "solidify-frontend";
+
+const routes: Routes = [
+  {
+    path: AppRoutesEnum.root,
+    component: AdminUserListRoutable,
+    data: {
+      permission: ApplicationRolePermissionEnum.rootPermission,
+    },
+    canActivate: [ApplicationRoleGuardService],
+  },
+  {
+    path: AdminRoutesEnum.userDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminUserDetailRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.user.detail"),
+      permission: ApplicationRolePermissionEnum.rootPermission,
+    },
+  },
+  {
+    path: AdminRoutesEnum.userCreate,
+    component: AdminUserCreateRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.user.create"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+  {
+    path: AdminRoutesEnum.userEdit + AppRoutesEnum.separator + AppRoutesEnum.paramId,
+    component: AdminUserEditRoutable,
+    data: {
+      breadcrumb: TRANSLATE("breadcrumb.admin.user.edit"),
+    },
+    canDeactivate: [CanDeactivateGuard],
+  },
+
+];
+
+@NgModule({
+  imports: [RouterModule.forChild(routes)],
+  exports: [RouterModule],
+})
+export class AdminUserRoutingModule {
+}
diff --git a/src/app/features/admin/user/user.module.ts b/src/app/features/admin/user/user.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e1203e1ae157a1ceb17bc6c0adf5f56b4d8fcc42
--- /dev/null
+++ b/src/app/features/admin/user/user.module.ts
@@ -0,0 +1,52 @@
+import {AdminUserDeleteDialog} from "@admin/user/components/dialogs/admin-user-delete/admin-user-delete.dialog";
+import {AdminUserFormPresentational} from "@admin/user/components/presentationals/admin-user-form/admin-user-form.presentational";
+import {AdminUserCreateRoutable} from "@admin/user/components/routables/admin-user-create/admin-user-create.routable";
+import {AdminUserDetailRoutable} from "@admin/user/components/routables/admin-user-detail/admin-user-detail.routable";
+import {AdminUserEditRoutable} from "@admin/user/components/routables/admin-user-edit/admin-user-edit.routable";
+import {AdminUserListRoutable} from "@admin/user/components/routables/admin-user-list/admin-user-list.routable";
+import {AdminUserState} from "@admin/user/stores/admin-user.state";
+import {AdminUserRoutingModule} from "@admin/user/user-routing.module";
+import {NgModule} from "@angular/core";
+import {SharedModule} from "@app/shared/shared.module";
+import {TranslateModule} from "@ngx-translate/core";
+import {NgxsModule} from "@ngxs/store";
+
+const routables = [
+  AdminUserListRoutable,
+  AdminUserDetailRoutable,
+  AdminUserCreateRoutable,
+  AdminUserEditRoutable,
+];
+const containers = [];
+const dialogs = [
+  AdminUserDeleteDialog,
+];
+const presentationals = [
+  AdminUserFormPresentational,
+];
+
+@NgModule({
+  declarations: [
+    ...routables,
+    ...containers,
+    ...dialogs,
+    ...presentationals,
+  ],
+  imports: [
+    SharedModule,
+    AdminUserRoutingModule,
+    TranslateModule.forChild({}),
+    NgxsModule.forFeature([
+      AdminUserState,
+    ]),
+  ],
+  entryComponents: [
+    ...dialogs,
+  ],
+  exports: [
+    ...routables,
+  ],
+  providers: [],
+})
+export class AdminUserModule {
+}
diff --git a/src/app/features/deposit/models/deposit-data-file.model.ts b/src/app/features/deposit/models/deposit-data-file.model.ts
index 844be35aa6a9314d2b50a314577e05a3eb46d214..15522364bc56272a43012076c85f231fffa12e0d 100644
--- a/src/app/features/deposit/models/deposit-data-file.model.ts
+++ b/src/app/features/deposit/models/deposit-data-file.model.ts
@@ -1,9 +1,6 @@
 import {Checksum} from "@app/features/deposit/models/checksum.model";
 import {FileFormat} from "@app/features/deposit/models/file-format.model";
-import {
-  ChangeInfo,
-  Deposit,
-} from "@app/generated-api";
+import {ChangeInfo} from "@app/generated-api";
 
 export enum DepositDataFileStateEnum {
   IN_ERROR = "IN_ERROR",
diff --git a/src/app/features/home/components/routables/home-browsing/home-browsing.routable.ts b/src/app/features/home/components/routables/home-browsing/home-browsing.routable.ts
index 398ea48c391d11e4c49027e75563d84bac55633d..6edfe7565f6c36c4cca470d404a6c6ab868efd4a 100644
--- a/src/app/features/home/components/routables/home-browsing/home-browsing.routable.ts
+++ b/src/app/features/home/components/routables/home-browsing/home-browsing.routable.ts
@@ -19,9 +19,7 @@ import {
 } from "@ngxs/store";
 import {RoutesEnum} from "@shared/enums/routes.enum";
 import {Observable} from "rxjs";
-import {
-  tap,
-} from "rxjs/operators";
+import {tap} from "rxjs/operators";
 import {
   isNullOrUndefined,
   QueryParameters,
diff --git a/src/app/features/home/stores/organizational-unit/home-organizational-unit.action.ts b/src/app/features/home/stores/organizational-unit/home-organizational-unit.action.ts
index 1323ba98e127c0e1f145e5bd7df3caceae650890..e20390d4a64be4858842bf0ef2c73c2dac2eaace 100644
--- a/src/app/features/home/stores/organizational-unit/home-organizational-unit.action.ts
+++ b/src/app/features/home/stores/organizational-unit/home-organizational-unit.action.ts
@@ -1,8 +1,8 @@
 import {AccessOrganizationalUnit} from "@app/generated-api";
 import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {
-  QueryParameters,
   CollectionTyped,
+  QueryParameters,
   ResourceAction,
   ResourceNameSpace,
   TypeDefaultAction,
diff --git a/src/app/features/home/stores/organizational-unit/home-organizational-unit.state.ts b/src/app/features/home/stores/organizational-unit/home-organizational-unit.state.ts
index a57ace5f4199602eb84835bfe49cc210d86c6be4..1dbb2c4b8b4475d7b7def88b184ca890cda04520 100644
--- a/src/app/features/home/stores/organizational-unit/home-organizational-unit.state.ts
+++ b/src/app/features/home/stores/organizational-unit/home-organizational-unit.state.ts
@@ -122,7 +122,6 @@ export class HomeOrganizationalUnitState extends ResourceState<AccessOrganizatio
       );
   }
 
-
   @Action(HomeOrgUnitAction.GetDefaultMaximumSuccess)
   getDefaultMaximumSuccess(ctx: StateContext<ResourceStateModel<AccessOrganizationalUnit>>, action: HomeOrgUnitAction.GetDefaultMaximumSuccess): void {
     const queryParameters = StoreUtil.updateQueryParameters(ctx, action.list);
diff --git a/src/app/shared/components/routables/shared-abstract-create/shared-abstract-create.routable.ts b/src/app/shared/components/routables/shared-abstract-create/shared-abstract-create.routable.ts
index e0c9b9459de66ffcecb2702a8d536a553cf0ed22..4086ef64a80e97dcd669c140e1083fa793b67807 100644
--- a/src/app/shared/components/routables/shared-abstract-create/shared-abstract-create.routable.ts
+++ b/src/app/shared/components/routables/shared-abstract-create/shared-abstract-create.routable.ts
@@ -1,16 +1,9 @@
-import {
-  OnInit,
-  Output,
-} from "@angular/core";
+import {OnInit} from "@angular/core";
 import {SharedAbstractCrudRoutable} from "@app/shared/components/routables/shared-abstract-crud/shared-abstract-crud.routable";
 import {Store} from "@ngxs/store";
-import {
-  BehaviorSubject,
-  Observable,
-} from "rxjs";
+import {Observable} from "rxjs";
 import {
   ModelFormControlEvent,
-  ObservableUtil,
   ResourceActionHelper,
   ResourceNameSpace,
   ResourceStateModel,
@@ -20,6 +13,7 @@ import {LocalStateEnum} from "../../../enums/local-state.enum";
 
 export abstract class SharedAbstractCreateRoutable<TResourceModel, UResourceStateModel extends ResourceStateModel<TResourceModel>> extends SharedAbstractCrudRoutable<TResourceModel, UResourceStateModel> implements OnInit {
   isLoadingObs: Observable<boolean>;
+
   protected constructor(protected store: Store,
                         protected state: LocalStateEnum,
                         private resourceActionNameSpace: ResourceNameSpace,
diff --git a/src/app/shared/enums/routes.enum.ts b/src/app/shared/enums/routes.enum.ts
index eca30ae89e2abeb4ecd02d868501bee029274125..9cc10ee5c89caa38ac8f6221e7972d0249090ef4 100644
--- a/src/app/shared/enums/routes.enum.ts
+++ b/src/app/shared/enums/routes.enum.ts
@@ -34,38 +34,47 @@ export enum AdminRoutesEnum {
   submissionPolicyCreate = "create",
   submissionPolicyDetail = "detail",
   submissionPolicyEdit = "edit",
+
   preservationPolicy = "preservation-policy",
   preservationPolicyDetail = "detail",
   preservationPolicyCreate = "create",
   preservationPolicyEdit = "edit",
+
   license = "license",
   licenseCreate = "create",
   licenseEdit = "edit",
   licenseDetail = "detail",
+
   organizationalUnit = "organizational-unit",
   organizationalUnitCreate = "create",
   organizationalUnitDetail = "detail",
   organizationalUnitEdit = "edit",
+
   institution = "institution",
   institutionCreate = "create",
   institutionDetail = "detail",
   institutionEdit = "edit",
+
   user = "user",
   userDetail = "detail",
   userCreate = "create",
   userEdit = "edit",
+
   oauth2client = "oauth2-clients",
   oauth2clientCreate = "create",
   oauth2clientDetail = "detail",
   oauth2clientEdit = "edit",
+
   person = "person",
   personDetail = "detail",
   personCreate = "create",
   personEdit = "edit",
+
   role = "role",
   roleDetail = "detail",
   roleCreate = "create",
   roleEdit = "edit",
+
   fundingAgencies = "funding-agencies",
   fundingAgenciesDetail = "detail",
   fundingAgenciesCreate = "create",
diff --git a/src/app/shared/utils/store-dialog.util.ts b/src/app/shared/utils/store-dialog.util.ts
index d22b8778b153e5e7ce2a89da935ee1fbad721f68..6178db79441af2f25345216342420e82f8ff2874 100644
--- a/src/app/shared/utils/store-dialog.util.ts
+++ b/src/app/shared/utils/store-dialog.util.ts
@@ -1,14 +1,14 @@
-import {AdminFundingAgencyDeleteDialog} from "@admin/components/dialogs/admin-funding-agency-delete/admin-funding-agency-delete.dialog";
+import {AdminFundingAgencyDeleteDialog} from "@admin/funding-agencies/components/dialogs/admin-funding-agency-delete/admin-funding-agency-delete.dialog";
+import {AdminInstitutionDeleteDialog} from "@admin/institution/components/dialogs/admin-institution-delete/admin-institution-delete.dialog";
+import {AdminLicenseDeleteDialog} from "@admin/license/components/dialogs/admin-license-delete/admin-license-delete.dialog";
+import {AdminOauth2ClientDeleteDialog} from "@admin/oauth2-client/components/dialogs/admin-oauth2-client-delete/admin-oauth2-client-delete.dialog";
+import {AdminOrgunitDeleteDialog} from "@admin/orgunit/components/dialogs/admin-orgunit-delete/admin-orgunit-delete.dialog";
+import {AdminPersonDeleteDialog} from "@admin/person/components/dialogs/admin-person-delete/admin-person-delete.dialog";
+import {AdminPreservationPolicyDeleteDialog} from "@admin/preservation-policy/components/dialogs/admin-preservation-policy-delete/admin-preservation-policy-delete.dialog";
+import {AdminRoleDeleteDialog} from "@admin/role/components/dialogs/admin-role-delete/admin-role-delete.dialog";
+import {AdminSubmissionPolicyDeleteDialog} from "@admin/submission-policy/components/dialogs/admin-submission-policy-delete/admin-submission-policy-delete.dialog";
+import {AdminUserDeleteDialog} from "@admin/user/components/dialogs/admin-user-delete/admin-user-delete.dialog";
 import {Component} from "@angular/core";
-import {AdminInstitutionDeleteDialog} from "@app/features/admin/components/dialogs/admin-institution-delete/admin-institution-delete.dialog";
-import {AdminLicenseDeleteDialog} from "@app/features/admin/components/dialogs/admin-license-delete/admin-license-delete.dialog";
-import {AdminOauth2ClientDeleteDialog} from "@app/features/admin/components/dialogs/admin-oauth2-client-delete/admin-oauth2-client-delete.dialog";
-import {AdminOrgunitDeleteDialog} from "@app/features/admin/components/dialogs/admin-orgunit-delete/admin-orgunit-delete.dialog";
-import {AdminPersonDeleteDialog} from "@app/features/admin/components/dialogs/admin-person-delete/admin-person-delete.dialog";
-import {AdminPreservationPolicyDeleteDialog} from "@app/features/admin/components/dialogs/admin-preservation-policy-delete/admin-preservation-policy-delete.dialog";
-import {AdminRoleDeleteDialog} from "@app/features/admin/components/dialogs/admin-role-delete/admin-role-delete.dialog";
-import {AdminSubmissionPolicyDeleteDialog} from "@app/features/admin/components/dialogs/admin-submission-policy-delete/admin-submission-policy-delete.dialog";
-import {AdminUserDeleteDialog} from "@app/features/admin/components/dialogs/admin-user-delete/admin-user-delete.dialog";
 import {DepositDeleteDialog as DepositDeleteDialog} from "@app/features/deposit/components/dialogs/deposit-delete/deposit-delete.dialog";
 import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {StringUtil} from "solidify-frontend";
diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json
index 10b24d6b048d1900e9191d5b5c09f4561c2f5320..088c0084f0a3eb46ea4c0cefcfd10aa8e7d1c238 100644
--- a/src/assets/i18n/de.json
+++ b/src/assets/i18n/de.json
@@ -544,64 +544,65 @@
     },
     "admin": {
       "funding-agencies": {
-        "create": "Create funding agency",
+        "create": "Create",
         "detail": "Detail",
-        "list": "List"
+        "edit": "breadcrumb.admin.funding-agencies.edit",
+        "root": "Funding agency"
       },
       "institution": {
-        "create": "Create institution",
-        "detail": "License institution",
-        "edit": "Edit institution",
-        "list": "List institution"
+        "create": "Create",
+        "detail": "License",
+        "edit": "Edit",
+        "root": "Institution"
       },
       "license": {
-        "create": "Create license",
-        "detail": "License detail",
-        "edit": "Edit license",
-        "list": "List license"
+        "create": "Create",
+        "detail": "License",
+        "edit": "Edit",
+        "root": "License"
       },
       "oauth2Client": {
-        "create": "Create OAuth2 Client",
-        "detail": "Detail OAuth2 Client",
-        "edit": "Edit OAuth2 Client",
-        "list": "List OAuth2 Clients"
+        "create": "Create",
+        "detail": "Detail",
+        "edit": "Edit",
+        "root": "OAuth2 Clients"
       },
       "organizationalUnit": {
-        "create": "Create organizational unit",
-        "detail": "Detail organizational unit",
-        "edit": "Edit organizational unit",
-        "list": "List organizational unit"
+        "create": "Create",
+        "detail": "Detail",
+        "edit": "Edit",
+        "root": "Organizational unit"
       },
       "person": {
-        "create": "Create person",
-        "detail": "Person's details",
-        "edit": "Edit person",
-        "list": "People list"
+        "create": "Create",
+        "detail": "Detail",
+        "edit": "Edit",
+        "root": "People"
       },
       "preservationPolicy": {
-        "create": "Create preservation policy",
-        "detail": "Detail preservation policy",
-        "edit": "Edit preservation policy",
-        "list": "List preservation policy"
+        "create": "Create",
+        "detail": "Detail",
+        "edit": "Edit",
+        "root": "Preservation policy"
       },
       "role": {
-        "create": "Create Role",
+        "create": "Create",
         "detail": "Detail",
         "edit": "Edit",
-        "list": "List"
+        "root": "Role"
       },
       "root": "Admin",
       "submissionPolicy": {
-        "create": "Create submission policy",
-        "detail": "Detail submission policy",
-        "edit": "Edit submission policy",
-        "list": "List submission policy"
+        "create": "Create",
+        "detail": "Detail",
+        "edit": "Edit",
+        "root": "Submission policy"
       },
       "user": {
-        "create": "Create user",
-        "detail": "Detail user",
-        "edit": "Edit user",
-        "list": "List user"
+        "create": "Create",
+        "detail": "Detail",
+        "edit": "Edit",
+        "root": "User"
       }
     },
     "deposit": {
@@ -976,4 +977,4 @@
       }
     }
   }
-}
+}
\ No newline at end of file
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
index 10b24d6b048d1900e9191d5b5c09f4561c2f5320..c681dcf17dcb010058bd9e73da2012d99b4349ae 100644
--- a/src/assets/i18n/en.json
+++ b/src/assets/i18n/en.json
@@ -544,64 +544,65 @@
     },
     "admin": {
       "funding-agencies": {
-        "create": "Create funding agency",
+        "create": "Create",
         "detail": "Detail",
-        "list": "List"
+        "edit": "Edit",
+        "root": "Funding agency"
       },
       "institution": {
-        "create": "Create institution",
-        "detail": "License institution",
-        "edit": "Edit institution",
-        "list": "List institution"
+        "create": "Create",
+        "detail": "License",
+        "edit": "Edit",
+        "root": "Institution"
       },
       "license": {
-        "create": "Create license",
-        "detail": "License detail",
-        "edit": "Edit license",
-        "list": "List license"
+        "create": "Create",
+        "detail": "License",
+        "edit": "Edit",
+        "root": "License"
       },
       "oauth2Client": {
-        "create": "Create OAuth2 Client",
-        "detail": "Detail OAuth2 Client",
-        "edit": "Edit OAuth2 Client",
-        "list": "List OAuth2 Clients"
+        "create": "Create",
+        "detail": "Detail",
+        "edit": "Edit",
+        "root": "OAuth2 Clients"
       },
       "organizationalUnit": {
-        "create": "Create organizational unit",
-        "detail": "Detail organizational unit",
-        "edit": "Edit organizational unit",
-        "list": "List organizational unit"
+        "create": "Create",
+        "detail": "Detail",
+        "edit": "Edit",
+        "root": "Organizational unit"
       },
       "person": {
-        "create": "Create person",
-        "detail": "Person's details",
-        "edit": "Edit person",
-        "list": "People list"
+        "create": "Create",
+        "detail": "Detail",
+        "edit": "Edit",
+        "root": "People"
       },
       "preservationPolicy": {
-        "create": "Create preservation policy",
-        "detail": "Detail preservation policy",
-        "edit": "Edit preservation policy",
-        "list": "List preservation policy"
+        "create": "Create",
+        "detail": "Detail",
+        "edit": "Edit",
+        "root": "Preservation policy"
       },
       "role": {
-        "create": "Create Role",
+        "create": "Create",
         "detail": "Detail",
         "edit": "Edit",
-        "list": "List"
+        "root": "Role"
       },
       "root": "Admin",
       "submissionPolicy": {
-        "create": "Create submission policy",
-        "detail": "Detail submission policy",
-        "edit": "Edit submission policy",
-        "list": "List submission policy"
+        "create": "Create",
+        "detail": "Detail",
+        "edit": "Edit",
+        "root": "Submission policy"
       },
       "user": {
-        "create": "Create user",
-        "detail": "Detail user",
-        "edit": "Edit user",
-        "list": "List user"
+        "create": "Create",
+        "detail": "Detail",
+        "edit": "Edit",
+        "root": "User"
       }
     },
     "deposit": {
diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json
index 355b82a7bb166d33fd7a1cb94190ccdf66f6ff7f..2242bab81b34b00a1171ad9a23c9b3970e8d3de6 100644
--- a/src/assets/i18n/fr.json
+++ b/src/assets/i18n/fr.json
@@ -544,64 +544,65 @@
     },
     "admin": {
       "funding-agencies": {
-        "create": "Créer agence financement",
+        "create": "Créer",
         "detail": "Détail",
-        "list": "Liste"
+        "edit": "Modifier",
+        "root": "Agence financement"
       },
       "institution": {
-        "create": "Créer institution",
-        "detail": "Détail institution",
-        "edit": "Modifier institution",
-        "list": "Liste institution"
+        "create": "Créer",
+        "detail": "Détail",
+        "edit": "Modifier",
+        "root": "Institution"
       },
       "license": {
-        "create": "Créer licence",
-        "detail": "Détail licence",
-        "edit": "Modifier licence",
-        "list": "Liste licence"
+        "create": "Créer",
+        "detail": "Détail",
+        "edit": "Modifier",
+        "root": "Licence"
       },
       "oauth2Client": {
-        "create": "Créer client OAuth2",
-        "detail": "Détail client OAuth2",
-        "edit": "Modifier client OAuth2",
-        "list": "Liste clients OAuth2"
+        "create": "Créer",
+        "detail": "Détail",
+        "edit": "Modifier",
+        "root": "Client OAuth2"
       },
       "organizationalUnit": {
-        "create": "Créer unité organisationelle",
-        "detail": "Détail unité organisationelle",
-        "edit": "Modifier unité organisationelle",
-        "list": "Liste unité organisationelle"
+        "create": "Créer",
+        "detail": "Détail",
+        "edit": "Modifier",
+        "root": "Unité organisationelle"
       },
       "person": {
-        "create": "Créer une personne",
-        "detail": "Détail d'une personne",
-        "edit": "Modifier une personne",
-        "list": "Liste des personnes"
+        "create": "Créer",
+        "detail": "Détail",
+        "edit": "Modifier",
+        "root": "Personne"
       },
       "preservationPolicy": {
-        "create": "Créer politique de préservation",
-        "detail": "Détail politique de préservation",
-        "edit": "Modifier politique de préservation",
-        "list": "Liste politique de préservation"
+        "create": "Créer",
+        "detail": "Détail",
+        "edit": "Modifier",
+        "root": "Liste politique de préservation"
       },
       "role": {
-        "create": "Créer Role",
+        "create": "Créer",
         "detail": "Détail",
         "edit": "Modifier",
-        "list": "Liste"
+        "root": "Role"
       },
       "root": "Administration",
       "submissionPolicy": {
-        "create": "Créer politique de soumission",
-        "detail": "Détail politique de soumission",
-        "edit": "Modifier politique de soumission",
-        "list": "Liste politique de soumission"
+        "create": "Créer",
+        "detail": "Détail",
+        "edit": "Modifier",
+        "root": "Politique soumission"
       },
       "user": {
-        "create": "Créer utilisateur",
-        "detail": "Supprimer utilisateur",
-        "edit": "Modifier utilisateur",
-        "list": "Liste utilisateur"
+        "create": "Créer",
+        "detail": "Supprimer",
+        "edit": "Modifier",
+        "root": "Utilisateur"
       }
     },
     "deposit": {
diff --git a/src/environments/environment.dlcmtest.ts b/src/environments/environment.dlcmtest.ts
index 5e59839bd13e69670a01d1b29959cc1ea578a5ad..898756aa9749e8beabaa71877d26e57041801d95 100644
--- a/src/environments/environment.dlcmtest.ts
+++ b/src/environments/environment.dlcmtest.ts
@@ -1,8 +1,6 @@
 import {ThemeEnum} from "@app/shared/enums/theme.enum";
-import {
-  defaultEnvironment} from "./environment.defaults";
-import {DlcmEnvironment,
-} from "./environment.defaults.model";
+import {defaultEnvironment} from "./environment.defaults";
+import {DlcmEnvironment} from "./environment.defaults.model";
 
 export const environment: DlcmEnvironment = {
   ...defaultEnvironment,
diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts
index 31dd09a2884d6fc01458a62f8a347885626f97a1..89fa7e5b7a4be8e8dcdba31930cc12f26824d6f5 100644
--- a/src/environments/environment.prod.ts
+++ b/src/environments/environment.prod.ts
@@ -1,8 +1,6 @@
 import {ThemeEnum} from "@app/shared/enums/theme.enum";
-import {
-  defaultEnvironment} from "./environment.defaults";
-import {DlcmEnvironment,
-} from "./environment.defaults.model";
+import {defaultEnvironment} from "./environment.defaults";
+import {DlcmEnvironment} from "./environment.defaults.model";
 
 export const environment: DlcmEnvironment = {
   ...defaultEnvironment,
diff --git a/src/environments/environment.ts b/src/environments/environment.ts
index 1f55db3aa3505bacec1cfacd46356124e619184e..4abb3fe70dcf8c0fdadeb62de029dbdb476604b7 100644
--- a/src/environments/environment.ts
+++ b/src/environments/environment.ts
@@ -3,10 +3,8 @@
 // The list of file replacements can be found in `angular.json`.
 
 import {ThemeEnum} from "@app/shared/enums/theme.enum";
-import {
-  defaultEnvironment} from "./environment.defaults";
-import {DlcmEnvironment,
-} from "./environment.defaults.model";
+import {defaultEnvironment} from "./environment.defaults";
+import {DlcmEnvironment} from "./environment.defaults.model";
 import {environmentLocal} from "./environment.local";
 
 export const environment: DlcmEnvironment = {