diff --git a/src/app/enums/index.ts b/src/app/enums/index.ts
index 05852d8845598ebd06b285236acba93e300fdb0f..14b5cd7143f005693cc35526c22b092c97d407e0 100644
--- a/src/app/enums/index.ts
+++ b/src/app/enums/index.ts
@@ -350,6 +350,12 @@ export namespace Enums {
     export const TypeEnum = {
       FORMLY: "FORMLY" as TypeEnum,
     };
+    export const LanguageEnumTranslate: KeyValue[] = [
+      {
+        key: TypeEnum.FORMLY,
+        value: MARK_AS_TRANSLATABLE("formDescription.typeEnum.formly"),
+      },
+    ];
   }
 
   export namespace Language {
diff --git a/src/app/features/admin/admin.module.ts b/src/app/features/admin/admin.module.ts
index fa6ba6e8d3b5f73526438f5c1a07fb20a864fe98..76611c9c63bf81ce55399376c123b725fa73e9b8 100644
--- a/src/app/features/admin/admin.module.ts
+++ b/src/app/features/admin/admin.module.ts
@@ -9,6 +9,7 @@ import {AdminNotificationState} from "@admin/notification/stores/admin-notificat
 import {AdminNotificationStatusHistoryState} from "@admin/notification/stores/status-history/admin-notification-status-history.state";
 import {AdminOaiSetState} from "@admin/oai-set/stores/admin-oai-set.state";
 import {AdminOAuth2ClientState} from "@admin/oauth2-client/stores/admin-oauth2-client.state";
+import {AdminOrganizationalUnitAdditionalFieldsFormState} from "@admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.state";
 import {AdminOrganizationalUnitState} from "@admin/organizational-unit/stores/admin-organizational-unit.state";
 import {AdminOrganizationalUnitDisseminationPolicyState} from "@admin/organizational-unit/stores/dissemination-policy/admin-organizational-unit-dissemination-policy.state";
 import {AdminOrganizationalUnitFundingAgencyState} from "@admin/organizational-unit/stores/funding-agency/admin-organizational-unit-funding-agency.state";
diff --git a/src/app/features/admin/organizational-unit/admin-organizational-unit-routing.module.ts b/src/app/features/admin/organizational-unit/admin-organizational-unit-routing.module.ts
index 43c8c2222adc70d6b525fae7b8d835e162e49c24..b2a1d017e84737fb4deb944667ed75f39703f081 100644
--- a/src/app/features/admin/organizational-unit/admin-organizational-unit-routing.module.ts
+++ b/src/app/features/admin/organizational-unit/admin-organizational-unit-routing.module.ts
@@ -1,6 +1,8 @@
+import {AdminOrganizationalUnitAdditionalFieldsListRoutable} from "@admin/organizational-unit/components/routables/admin-organizational-unit-additional-fields-list/admin-organizational-unit-additional-fields-list.routable";
 import {AdminOrganizationalUnitCreateRoutable} from "@admin/organizational-unit/components/routables/admin-organizational-unit-create/admin-organizational-unit-create.routable";
+import {AdminOrganizationalUnitDetailEditRoutable} from "@admin/organizational-unit/components/routables/admin-organizational-unit-detail-edit/admin-organizational-unit-detail-edit.routable";
 import {AdminOrganizationalUnitListRoutable} from "@admin/organizational-unit/components/routables/admin-organizational-unit-list/admin-organizational-unit-list.routable";
-import {AdminOrganizationalUnitDetailEditRoutable} from "@admin/organizational-unit/components/routables/admin-orgunit-detail-edit/admin-organizational-unit-detail-edit.routable";
+import {AdminOrganizationalUnitMetadataRoutable} from "@admin/organizational-unit/components/routables/admin-organizational-unit-metadata/admin-organizational-unit-metadata.routable";
 import {AdminOrganizationalUnitState} from "@admin/organizational-unit/stores/admin-organizational-unit.state";
 import {NgModule} from "@angular/core";
 import {
@@ -14,8 +16,6 @@ import {
 } from "@shared/enums/routes.enum";
 import {CanDeactivateGuard} from "@shared/services/can-deactivate-guard.service";
 import {MARK_AS_TRANSLATABLE} from "solidify-frontend";
-import {AdminOrgUnitAdditionalFieldsFormListRoutable} from "@admin/organizational-unit/components/routables/admin-orgunit-additional-fields-form-list/admin-orgunit-additional-fields-form-list.routable";
-import {AdminOrgUnitTabsRoutable} from "@admin/organizational-unit/components/routables/admin-orgunit-tabs/admin-orgunit-tabs.routable";
 
 const routes: Routes = [
   {
@@ -25,39 +25,40 @@ const routes: Routes = [
   },
   {
     path: AdminRoutesEnum.organizationalUnitDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    redirectTo: AdminRoutesEnum.organizationalUnitDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId + AppRoutesEnum.separator + AdminRoutesEnum.organizationalUnitDetail,
+    redirectTo: AdminRoutesEnum.organizationalUnitDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId + AppRoutesEnum.separator + AdminRoutesEnum.organizationalUnitData,
     pathMatch: "full",
   },
   {
     path: AdminRoutesEnum.organizationalUnitDetail + AppRoutesEnum.separator + AppRoutesEnum.paramId,
-    component: AdminOrgUnitTabsRoutable,
+    component: AdminOrganizationalUnitDetailEditRoutable,
     data: {
       breadcrumbMemoizedSelector: AdminOrganizationalUnitState.currentTitle,
     },
     children: [
       {
-        path: AdminRoutesEnum.organizationalUnitDetail,
-        component: AdminOrganizationalUnitDetailEditRoutable,
+        path: AdminRoutesEnum.organizationalUnitData,
+        component: AdminOrganizationalUnitMetadataRoutable,
         data: {
-          breadcrumb: MARK_AS_TRANSLATABLE("breadcrumb.admin.organizationalUnit.edit"),
+          breadcrumb: MARK_AS_TRANSLATABLE("breadcrumb.admin.organizationalUnit.detail"),
         },
+        children: [
+          {
+            path: AdminRoutesEnum.organizationalUnitEdit,
+            data: {
+              breadcrumb: MARK_AS_TRANSLATABLE("breadcrumb.admin.organizationalUnit.edit"),
+            },
+            canDeactivate: [CanDeactivateGuard],
+          },
+        ],
       },
       {
         path: AdminRoutesEnum.organizationalUnitAdditionalFieldsForm,
-        component: AdminOrgUnitAdditionalFieldsFormListRoutable,
+        component: AdminOrganizationalUnitAdditionalFieldsListRoutable,
         data: {
           breadcrumb: MARK_AS_TRANSLATABLE("breadcrumb.admin.organizationalUnit.additionalFieldsForm.list"),
         },
-        children: [
-          {
-            path: AppRoutesEnum.paramId,
-            data: {
-              breadcrumb: MARK_AS_TRANSLATABLE("breadcrumb.admin.organizationalUnit.additionalFieldsForm.edit"),
-            },
-          }
-        ]
-      }
-    ]
+      },
+    ],
   },
   {
     path: AdminRoutesEnum.organizationalUnitCreate,
@@ -67,7 +68,6 @@ const routes: Routes = [
     },
     canDeactivate: [CanDeactivateGuard],
   },
-
 ];
 
 @NgModule({
diff --git a/src/app/features/admin/organizational-unit/admin-organizational-unit.module.ts b/src/app/features/admin/organizational-unit/admin-organizational-unit.module.ts
index ddf7d241ab41b99259b1bdaa681c7a2bf2e10a04..be4951a0f8c3b8ace2ae850dab7ad31a45636db2 100644
--- a/src/app/features/admin/organizational-unit/admin-organizational-unit.module.ts
+++ b/src/app/features/admin/organizational-unit/admin-organizational-unit.module.ts
@@ -1,9 +1,15 @@
 import {AdminOrganizationalUnitRoutingModule} from "@admin/organizational-unit/admin-organizational-unit-routing.module";
+import {AdminOrganizationalUnitAdditionalFieldsDetailCreateUpdateDialog} from "@admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog";
+import {AdminOrganizationalUnitAdditionalFieldsRenameDialog} from "@admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog";
 import {AdminOrganizationalUnitDeleteDialog} from "@admin/organizational-unit/components/dialogs/admin-organizational-unit-delete/admin-organizational-unit-delete.dialog";
+import {AdminOrganizationalUnitAdditionalFieldsFormPresentational} from "@admin/organizational-unit/components/presentationals/admin-organizational-unit-additional-fields-form/admin-organizational-unit-additional-fields-form.presentational";
 import {AdminOrganizationalUnitFormPresentational} from "@admin/organizational-unit/components/presentationals/admin-organizational-unit-form/admin-organizational-unit-form.presentational";
+import {AdminOrganizationalUnitAdditionalFieldsListRoutable} from "@admin/organizational-unit/components/routables/admin-organizational-unit-additional-fields-list/admin-organizational-unit-additional-fields-list.routable";
 import {AdminOrganizationalUnitCreateRoutable} from "@admin/organizational-unit/components/routables/admin-organizational-unit-create/admin-organizational-unit-create.routable";
+import {AdminOrganizationalUnitDetailEditRoutable} from "@admin/organizational-unit/components/routables/admin-organizational-unit-detail-edit/admin-organizational-unit-detail-edit.routable";
 import {AdminOrganizationalUnitListRoutable} from "@admin/organizational-unit/components/routables/admin-organizational-unit-list/admin-organizational-unit-list.routable";
-import {AdminOrganizationalUnitDetailEditRoutable} from "@admin/organizational-unit/components/routables/admin-orgunit-detail-edit/admin-organizational-unit-detail-edit.routable";
+import {AdminOrganizationalUnitMetadataRoutable} from "@admin/organizational-unit/components/routables/admin-organizational-unit-metadata/admin-organizational-unit-metadata.routable";
+import {AdminOrganizationalUnitService} from "@admin/organizational-unit/services/admin-organizational-unit.service";
 import {AdminOrganizationalUnitState} from "@admin/organizational-unit/stores/admin-organizational-unit.state";
 import {NgModule} from "@angular/core";
 import {SharedModule} from "@app/shared/shared.module";
@@ -14,13 +20,21 @@ const routables = [
   AdminOrganizationalUnitCreateRoutable,
   AdminOrganizationalUnitDetailEditRoutable,
   AdminOrganizationalUnitListRoutable,
+  AdminOrganizationalUnitMetadataRoutable,
+  AdminOrganizationalUnitAdditionalFieldsListRoutable,
 ];
 const containers = [];
 const dialogs = [
   AdminOrganizationalUnitDeleteDialog,
+  AdminOrganizationalUnitAdditionalFieldsDetailCreateUpdateDialog,
+  AdminOrganizationalUnitAdditionalFieldsRenameDialog,
 ];
 const presentationals = [
   AdminOrganizationalUnitFormPresentational,
+  AdminOrganizationalUnitAdditionalFieldsFormPresentational,
+];
+const services = [
+  AdminOrganizationalUnitService,
 ];
 
 @NgModule({
@@ -44,7 +58,9 @@ const presentationals = [
   exports: [
     ...routables,
   ],
-  providers: [],
+  providers: [
+    ...services,
+  ],
 })
 export class AdminOrganizationalUnitModule {
 }
diff --git a/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog.html b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog.html
new file mode 100644
index 0000000000000000000000000000000000000000..b88ffeabaf20a3171e1c234faf42df4b9b7e80e4
--- /dev/null
+++ b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog.html
@@ -0,0 +1,31 @@
+<dlcm-shared-base-action-dialog [titleToTranslate]="titleToTranslate | translate">
+  <div [dlcmSpinner]="isLoadingObs | async">
+    <dlcm-admin-organizational-unit-additional-fields-form #formPresentational
+                                                           class="form"
+                                                           [model]="data.additionalFieldsForm"
+                                                           [readonly]="data.mode === 'detail'"
+                                                           (submitChange)="update($event)"
+                                                           (checkAvailableChange)="checkAvailable($event)"
+                                                           (dirtyChange)="updateCanDeactivate($event)"
+    ></dlcm-admin-organizational-unit-additional-fields-form>
+  </div>
+</dlcm-shared-base-action-dialog>
+<div mat-dialog-actions>
+  <button mat-button
+          [mat-dialog-close]=""
+          [solidifyAutoFocus]="true"
+  >
+    {{'admin.organizationalUnit.additionalFields.modal.detailCreateUpdate.button.close' | translate}}
+  </button>
+  <button *ngIf="data.mode !== 'detail'"
+          mat-flat-button
+          color="primary"
+          [dlcmButtonSpinner]="isLoadingObs | async"
+          [disabled]="formPresentational?.form?.invalid || formPresentational?.form?.pristine"
+          solidifyShortCuts
+          (onEnter)="confirm(formPresentational?.form?.value)"
+          (click)="confirm(formPresentational?.form?.value)"
+  >
+    {{confirmToTranslate | translate}}
+  </button>
+</div>
diff --git a/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog.scss b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog.scss
new file mode 100644
index 0000000000000000000000000000000000000000..5179569958eb11d5ee12a35e9365fd109ecc71db
--- /dev/null
+++ b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog.scss
@@ -0,0 +1,11 @@
+@import "../sass/abstracts/mixins";
+
+:host {
+  .form {
+    display: block;
+  }
+
+  .form ::ng-deep form > * {
+    width: 100% !important;
+  }
+}
\ No newline at end of file
diff --git a/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog.ts b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d4da66a9dc3ff81f30170712f908d1c7d72553e1
--- /dev/null
+++ b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog.ts
@@ -0,0 +1,109 @@
+import {AdminOrganizationalUnitAdditionalFieldsFormAction} from "@admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.action";
+import {AdminOrganizationalUnitAdditionalFieldsFormState} from "@admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.state";
+import {
+  ChangeDetectionStrategy,
+  ChangeDetectorRef,
+  Component,
+  Inject,
+  OnInit,
+  ViewChild,
+} from "@angular/core";
+import {
+  MAT_DIALOG_DATA,
+  MatDialog,
+  MatDialogRef,
+} from "@angular/material/dialog";
+import {ActivatedRoute} from "@angular/router";
+import {
+  AdditionalFieldsForm,
+  OaiSet,
+} from "@models";
+import {
+  Actions,
+  ofActionCompleted,
+  Store,
+} from "@ngxs/store";
+import {SharedAbstractDialog} from "@shared/components/dialogs/shared-abstract/shared-abstract.dialog";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {FormControlKey} from "@shared/models/form-control-key.model";
+import {Observable} from "rxjs";
+import {
+  take,
+  tap,
+} from "rxjs/operators";
+import {
+  isTrue,
+  MARK_AS_TRANSLATABLE,
+  MemoizedUtil,
+  ModelFormControlEvent,
+} from "solidify-frontend";
+
+@Component({
+  selector: "dlcm-admin-organizational-unit-additional-fields-detail-create-update-dialog",
+  templateUrl: "./admin-organizational-unit-additional-fields-detail-create-update.dialog.html",
+  styleUrls: ["./admin-organizational-unit-additional-fields-detail-create-update.dialog.scss"],
+  changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class AdminOrganizationalUnitAdditionalFieldsDetailCreateUpdateDialog extends SharedAbstractDialog implements OnInit {
+  isLoadingObs: Observable<boolean> = MemoizedUtil.isLoading(this._store, AdminOrganizationalUnitAdditionalFieldsFormState);
+  confirmToTranslate: string;
+
+  @ViewChild("formPresentational")
+  readonly formPresentational: SharedAbstractFormPresentational<OaiSet>;
+
+  constructor(protected readonly _store: Store,
+              protected readonly _route: ActivatedRoute,
+              protected readonly _actions$: Actions,
+              protected readonly _changeDetector: ChangeDetectorRef,
+              protected readonly _dialog: MatDialog,
+              protected readonly _dialogRef: MatDialogRef<AdminOrganizationalUnitAdditionalFieldsDetailCreateUpdateDialog>,
+              @Inject(MAT_DIALOG_DATA) readonly data: AdminOrganizationalUnitAdditionalFieldsDetailCreateEditDialogData) {
+    super();
+  }
+
+  ngOnInit(): void {
+    super.ngOnInit();
+
+    if (this.data.mode === "update") {
+      this.titleToTranslate = MARK_AS_TRANSLATABLE("admin.organizationalUnit.additionalFields.modal.detailCreateUpdate.title.update");
+      this.confirmToTranslate = MARK_AS_TRANSLATABLE("admin.organizationalUnit.additionalFields.modal.detailCreateUpdate.button.confirm");
+    } else if (this.data.mode === "detail") {
+      this.titleToTranslate = MARK_AS_TRANSLATABLE("admin.organizationalUnit.additionalFields.modal.detailCreateUpdate.title.detail");
+      this.confirmToTranslate = MARK_AS_TRANSLATABLE("admin.organizationalUnit.additionalFields.modal.detailCreateUpdate.button.confirm");
+    } else if (this.data.mode === "create") {
+      this.titleToTranslate = MARK_AS_TRANSLATABLE("admin.organizationalUnit.additionalFields.modal.detailCreateUpdate.title.create");
+      this.confirmToTranslate = MARK_AS_TRANSLATABLE("admin.organizationalUnit.additionalFields.modal.detailCreateUpdate.button.confirm");
+    }
+  }
+
+  update($event: ModelFormControlEvent<AdditionalFieldsForm>): void {
+
+  }
+
+  checkAvailable($event: FormControlKey): void {
+
+  }
+
+  updateCanDeactivate($event: boolean): void {
+
+  }
+
+  confirm(additionalFieldsForm: AdditionalFieldsForm): void {
+    this.subscribe(this._actions$.pipe(
+      ofActionCompleted(AdminOrganizationalUnitAdditionalFieldsFormAction.CreateSuccess),
+      take(1),
+      tap((result) => {
+        if (isTrue(result.result.successful)) {
+          this._dialogRef.close();
+        }
+      }),
+    ));
+    this._store.dispatch(new AdminOrganizationalUnitAdditionalFieldsFormAction.Create(this.data.parentResId, additionalFieldsForm));
+  }
+}
+
+export interface AdminOrganizationalUnitAdditionalFieldsDetailCreateEditDialogData {
+  parentResId: string;
+  additionalFieldsForm: AdditionalFieldsForm;
+  mode: "update" | "create" | "detail";
+}
diff --git a/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog.html b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog.html
new file mode 100644
index 0000000000000000000000000000000000000000..38a34f184adae359fcb0160b25f70557fa75d667
--- /dev/null
+++ b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog.html
@@ -0,0 +1,35 @@
+<dlcm-shared-base-action-dialog [titleToTranslate]="'admin.organizationalUnit.additionalFields.modal.rename.title' | translate">
+  <form [formGroup]="form"
+        class="form"
+        (ngSubmit)="onSubmit()"
+  >
+    <mat-form-field *ngIf="getFormControl(formDefinition.name) as fd">
+      <input [formControl]="fd"
+             [solidifyValidation]="errors"
+             matInput
+             [placeholder]="'admin.organizationalUnit.additionalFields.modal.rename.name' | translate"
+             [required]="formValidationHelper.hasRequiredField(fd)"
+      >
+      <mat-error #errors></mat-error>
+    </mat-form-field>
+  </form>
+</dlcm-shared-base-action-dialog>
+<div mat-dialog-actions
+     class="footer"
+>
+  <button mat-button
+          [mat-dialog-close]=""
+          cdkFocusInitial
+  >{{'admin.organizationalUnit.additionalFields.modal.rename.button.close' | translate}}
+  </button>
+  <button mat-flat-button
+          color="primary"
+          [dlcmButtonSpinner]="isLoadingObs | async"
+          [disabled]="form.invalid || form.pristine"
+          solidifyShortCuts
+          (onEnter)="onSubmit()"
+          (click)="onSubmit()"
+  >{{'admin.organizationalUnit.additionalFields.modal.rename.button.confirmChange' | translate}}
+  </button>
+</div>
+
diff --git a/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog.scss b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog.scss
new file mode 100644
index 0000000000000000000000000000000000000000..fba57391f85a40ab8a5ed772d10947972896b38b
--- /dev/null
+++ b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog.scss
@@ -0,0 +1,10 @@
+@import "../sass/abstracts/variables";
+@import "../sass/abstracts/mixins";
+
+:host {
+  .form {
+    > * {
+      width: 100%;
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog.ts b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog.ts
new file mode 100644
index 0000000000000000000000000000000000000000..dddd6c297905e7aa074b4c80a41f520f2d519864
--- /dev/null
+++ b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog.ts
@@ -0,0 +1,104 @@
+import {AdminOrganizationalUnitAdditionalFieldsFormAction} from "@admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.action";
+import {AdminOrganizationalUnitAdditionalFieldsFormState} from "@admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.state";
+import {
+  ChangeDetectionStrategy,
+  Component,
+  Inject,
+  OnInit,
+} from "@angular/core";
+import {
+  AbstractControl,
+  FormBuilder,
+  FormGroup,
+} from "@angular/forms";
+import {
+  MAT_DIALOG_DATA,
+  MatDialogRef,
+} from "@angular/material/dialog";
+import {AdditionalFieldsForm} from "@models";
+import {
+  Actions,
+  ofActionCompleted,
+  Store,
+} from "@ngxs/store";
+import {SharedAbstractContainer} from "@shared/components/containers/shared-abstract/shared-abstract.container";
+import {BaseFormDefinition} from "@shared/models/base-form-definition.model";
+import {Observable} from "rxjs";
+import {
+  take,
+  tap,
+} from "rxjs/operators";
+import {
+  FormValidationHelper,
+  isTrue,
+  MemoizedUtil,
+  PropertyName,
+  SolidifyValidator,
+} from "solidify-frontend";
+
+@Component({
+  selector: "dlcm-admin-organizational-unit-additional-fields-rename-dialog",
+  templateUrl: "./admin-organizational-unit-additional-fields-rename.dialog.html",
+  styleUrls: ["./admin-organizational-unit-additional-fields-rename.dialog.scss"],
+  changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class AdminOrganizationalUnitAdditionalFieldsRenameDialog extends SharedAbstractContainer implements OnInit {
+  isLoadingObs: Observable<boolean> = MemoizedUtil.isLoading(this._store, AdminOrganizationalUnitAdditionalFieldsFormState);
+
+  form: FormGroup;
+  formDefinition: FormComponentFormDefinition = new FormComponentFormDefinition();
+
+  constructor(private readonly _store: Store,
+              private readonly _actions$: Actions,
+              private readonly _dialogRef: MatDialogRef<AdminOrganizationalUnitAdditionalFieldsRenameDialog>,
+              @Inject(MAT_DIALOG_DATA) public data: AdminOrganizationalUnitAdditionalFieldsRenameDialogData,
+              private readonly _fb: FormBuilder) {
+    super();
+  }
+
+  ngOnInit(): void {
+    super.ngOnInit();
+    this.form = this._fb.group({
+      [this.formDefinition.name]: [this.data.additionalFieldsForm.name, SolidifyValidator],
+    });
+  }
+
+  close(): void {
+    this._dialogRef.close();
+  }
+
+  onSubmit(): void {
+    this._store.dispatch(new AdminOrganizationalUnitAdditionalFieldsFormAction.Update(this.data.parentResId, {
+      resId: this.data.additionalFieldsForm.resId,
+      name: this.form.get(this.formDefinition.name).value,
+    }));
+
+    this.subscribe(this._actions$.pipe(
+      ofActionCompleted(AdminOrganizationalUnitAdditionalFieldsFormAction.UpdateSuccess),
+      take(1),
+      tap((result) => {
+        if (isTrue(result.result.successful)) {
+          this._dialogRef.close();
+          this._store.dispatch(new AdminOrganizationalUnitAdditionalFieldsFormAction.GetAll(this.data.parentResId));
+        }
+      }),
+    ));
+  }
+
+  getFormControl(key: string): AbstractControl {
+    return FormValidationHelper.getFormControl(this.form, key);
+  }
+
+  get formValidationHelper(): typeof FormValidationHelper {
+    return FormValidationHelper;
+  }
+}
+
+class FormComponentFormDefinition extends BaseFormDefinition {
+  @PropertyName() name: string;
+}
+
+export interface AdminOrganizationalUnitAdditionalFieldsRenameDialogData {
+  parentResId: string;
+  additionalFieldsForm: AdditionalFieldsForm;
+}
diff --git a/src/app/features/admin/organizational-unit/components/presentationals/admin-organizational-unit-additional-fields-form/admin-organizational-unit-additional-fields-form.presentational.html b/src/app/features/admin/organizational-unit/components/presentationals/admin-organizational-unit-additional-fields-form/admin-organizational-unit-additional-fields-form.presentational.html
new file mode 100644
index 0000000000000000000000000000000000000000..6c72c005d2a31389cd4150b39bf0f4d24794abe9
--- /dev/null
+++ b/src/app/features/admin/organizational-unit/components/presentationals/admin-organizational-unit-additional-fields-form/admin-organizational-unit-additional-fields-form.presentational.html
@@ -0,0 +1,41 @@
+<form [formGroup]="form"
+      class="form-two-columns"
+      (ngSubmit)="onSubmit()"
+>
+  <mat-form-field *ngIf="getFormControl(formDefinition.name) as fd">
+    <input [formControl]="fd"
+           [solidifyValidation]="errors"
+           matInput
+           [placeholder]="'admin.organizationalUnit.additionalField.form.name' | translate"
+           [required]="formValidationHelper.hasRequiredField(fd)"
+    >
+    <mat-error #errors></mat-error>
+  </mat-form-field>
+
+  <!--      <mat-form-field *ngIf="getFormControl(formDefinition.type) as fd">-->
+  <!--        <mat-label>{{'admin.organizationalUnit.additionalField.form.type' | translate}}</mat-label>-->
+  <!--        <mat-select [formControl]="fd"-->
+  <!--                    [solidifyValidation]="errors"-->
+  <!--                    [required]="formValidationHelper.hasRequiredField(fd)"-->
+  <!--        >-->
+  <!--          <mat-option *ngFor="let formType of listFormType"-->
+  <!--                      [value]="formType.key"-->
+  <!--          >-->
+  <!--            {{formType.value | translate}}-->
+  <!--          </mat-option>-->
+  <!--        </mat-select>-->
+  <!--        <mat-error #errors></mat-error>-->
+  <!--      </mat-form-field>-->
+  <mat-form-field *ngIf="getFormControl(formDefinition.description) as fd">
+    <mat-label>{{'admin.organizationalUnit.additionalField.form.description' | translate }}</mat-label>
+    <textarea [formControl]="fd"
+              [solidifyValidation]="errors"
+              matInput
+              cdkTextareaAutosize
+              cdkAutosizeMinRows="5"
+              cdkAutosizeMaxRows="10"
+              [required]="formValidationHelper.hasRequiredField(fd)"
+    ></textarea>
+    <mat-error #errors></mat-error>
+  </mat-form-field>
+</form>
diff --git a/src/app/features/admin/organizational-unit/components/presentationals/admin-organizational-unit-additional-fields-form/admin-organizational-unit-additional-fields-form.presentational.ts b/src/app/features/admin/organizational-unit/components/presentationals/admin-organizational-unit-additional-fields-form/admin-organizational-unit-additional-fields-form.presentational.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5ffceb5a285964244a670573e6ad6eb131e5a8d7
--- /dev/null
+++ b/src/app/features/admin/organizational-unit/components/presentationals/admin-organizational-unit-additional-fields-form/admin-organizational-unit-additional-fields-form.presentational.ts
@@ -0,0 +1,70 @@
+import {
+  ChangeDetectionStrategy,
+  ChangeDetectorRef,
+  Component,
+  ElementRef,
+} from "@angular/core";
+import {
+  FormBuilder,
+  Validators,
+} from "@angular/forms";
+import {BreakpointService} from "@app/shared/services/breakpoint.service";
+import {Enums} from "@enums";
+import {environment} from "@environments/environment";
+import {AdditionalFieldsForm} from "@models";
+import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
+import {BaseFormDefinition} from "@shared/models/base-form-definition.model";
+import {
+  KeyValue,
+  PropertyName,
+  SolidifyValidator,
+} from "solidify-frontend";
+
+@Component({
+  selector: "dlcm-admin-organizational-unit-additional-fields-form",
+  templateUrl: "./admin-organizational-unit-additional-fields-form.presentational.html",
+  styleUrls: ["../../../../../../shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"],
+  changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class AdminOrganizationalUnitAdditionalFieldsFormPresentational extends SharedAbstractFormPresentational<AdditionalFieldsForm> {
+  readonly TIME_BEFORE_DISPLAY_TOOLTIP: number = environment.timeBeforeDisplayTooltipOnInput;
+  formDefinition: FormComponentFormDefinition = new FormComponentFormDefinition();
+
+  listFormType: KeyValue[] = Enums.FormDescription.LanguageEnumTranslate;
+
+  constructor(protected readonly _changeDetectorRef: ChangeDetectorRef,
+              protected readonly _elementRef: ElementRef,
+              private readonly _fb: FormBuilder,
+              public readonly breakpointService: BreakpointService) {
+    super(_changeDetectorRef, _elementRef);
+  }
+
+  protected initNewForm(): void {
+    this.form = this._fb.group({
+      [this.formDefinition.type]: [Enums.FormDescription.TypeEnum.FORMLY, [Validators.required, SolidifyValidator]],
+      [this.formDefinition.name]: ["", [SolidifyValidator]],
+      [this.formDefinition.description]: [""],
+    });
+
+  }
+
+  protected bindFormTo(additionalFieldsForm: AdditionalFieldsForm): void {
+    this.form = this._fb.group({
+      [this.formDefinition.type]: [additionalFieldsForm.type, [Validators.required, SolidifyValidator]],
+      [this.formDefinition.name]: [additionalFieldsForm.name, [SolidifyValidator]],
+      [this.formDefinition.description]: [additionalFieldsForm.description],
+    });
+  }
+
+  protected treatmentBeforeSubmit(additionalFieldsForm: AdditionalFieldsForm | any): AdditionalFieldsForm {
+    return additionalFieldsForm;
+  }
+}
+
+class FormComponentFormDefinition extends BaseFormDefinition {
+  @PropertyName() type: string;
+  @PropertyName() name: string;
+  @PropertyName() description: string;
+  @PropertyName() creation: string;
+  @PropertyName() lastUpdate: string;
+}
diff --git a/src/app/features/admin/orgunit/components/routables/admin-orgunit-additional-fields-form-list/admin-orgunit-additional-fields-form.routable.html b/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-additional-fields-list/admin-organizational-unit-additional-fields-list.routable.html
similarity index 68%
rename from src/app/features/admin/orgunit/components/routables/admin-orgunit-additional-fields-form-list/admin-orgunit-additional-fields-form.routable.html
rename to src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-additional-fields-list/admin-organizational-unit-additional-fields-list.routable.html
index 83c1e7a3ac90223b5280df8f0e2ee253ad275886..bc9904df7cbb24e46905827d80b3bddc34f0a7f7 100644
--- a/src/app/features/admin/orgunit/components/routables/admin-orgunit-additional-fields-form-list/admin-orgunit-additional-fields-form.routable.html
+++ b/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-additional-fields-list/admin-organizational-unit-additional-fields-list.routable.html
@@ -1,16 +1,12 @@
-<div class="additional-fields-form">
-
+<div class="wrapper"
+     [dlcmSpinner]="isLoadingObs | async"
+>
   <dlcm-shared-data-table [columns]="columns"
                           [datas]="additionalFieldsFormObs | async"
                           [queryParameters]="queryParametersObs | async"
+                          [actions]="actions"
                           [isLoading]="isLoadingObs | async"
                           (queryParametersChange)="onQueryParametersEvent($event)"
+                          (selectChange)="select($event)"
   ></dlcm-shared-data-table>
-
-  <div class="wrapper"
-       [dlcmSpinner]="isLoadingObs | async"
-  >
-
-  </div>
-
 </div>
diff --git a/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-additional-fields-list/admin-organizational-unit-additional-fields-list.routable.scss b/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-additional-fields-list/admin-organizational-unit-additional-fields-list.routable.scss
new file mode 100644
index 0000000000000000000000000000000000000000..8fc015250c5bb7c988390e2688794d33ff136da6
--- /dev/null
+++ b/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-additional-fields-list/admin-organizational-unit-additional-fields-list.routable.scss
@@ -0,0 +1,7 @@
+@import "../sass/abstracts/variables";
+@import "../sass/abstracts/mixins";
+
+:host {
+  width: 100%;
+  @include spinner-wrapper();
+}
diff --git a/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-additional-fields-list/admin-organizational-unit-additional-fields-list.routable.ts b/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-additional-fields-list/admin-organizational-unit-additional-fields-list.routable.ts
new file mode 100644
index 0000000000000000000000000000000000000000..629a7cebfe734fca86a48e148a9c686ed66f3789
--- /dev/null
+++ b/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-additional-fields-list/admin-organizational-unit-additional-fields-list.routable.ts
@@ -0,0 +1,135 @@
+import {
+  AdminOrganizationalUnitAdditionalFieldsDetailCreateEditDialogData,
+  AdminOrganizationalUnitAdditionalFieldsDetailCreateUpdateDialog,
+} from "@admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog";
+import {
+  AdminOrganizationalUnitAdditionalFieldsRenameDialog,
+  AdminOrganizationalUnitAdditionalFieldsRenameDialogData,
+} from "@admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog";
+import {AdminOrganizationalUnitAdditionalFieldsFormAction} from "@admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.action";
+import {AdminOrganizationalUnitAdditionalFieldsFormState} from "@admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.state";
+import {
+  ChangeDetectionStrategy,
+  ChangeDetectorRef,
+  Component,
+} from "@angular/core";
+import {MatDialog} from "@angular/material/dialog";
+import {ActivatedRoute} from "@angular/router";
+import {DepositDataFile} from "@deposit/models/deposit-data-file.model";
+import {AdditionalFieldsForm} from "@models";
+import {Store} from "@ngxs/store";
+import {FieldTypeEnum} from "@shared/enums/field-type.enum";
+import {IconNameEnum} from "@shared/enums/icon-name.enum";
+import {AppRoutesEnum} from "@shared/enums/routes.enum";
+import {DataTableActions} from "@shared/models/data-table-actions.model";
+import {DataTableColumns} from "@shared/models/data-table-columns.model";
+import {Observable} from "rxjs";
+import {
+  CompositionState,
+  isNullOrUndefined,
+  MARK_AS_TRANSLATABLE,
+  MemoizedUtil,
+  OrderEnum,
+  QueryParameters,
+} from "solidify-frontend";
+
+@Component({
+  selector: "dlcm-admin-organizational-unit-additional-fields-list-routable",
+  templateUrl: "./admin-organizational-unit-additional-fields-list.routable.html",
+  styleUrls: ["./admin-organizational-unit-additional-fields-list.routable.scss"],
+  changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class AdminOrganizationalUnitAdditionalFieldsListRoutable {
+  isLoadingObs: Observable<boolean> = MemoizedUtil.isLoading(this._store, AdminOrganizationalUnitAdditionalFieldsFormState);
+
+  _orgUnitResId: string;
+  _resId: string;
+
+  additionalFieldsFormObs: Observable<AdditionalFieldsForm[]> = CompositionState.list(this._store, AdminOrganizationalUnitAdditionalFieldsFormState);
+  queryParametersObs: Observable<QueryParameters> = MemoizedUtil.select(this._store, AdminOrganizationalUnitAdditionalFieldsFormState, (state) => state.queryParameters);
+
+  columns: DataTableColumns<AdditionalFieldsForm>[];
+
+  actions: DataTableActions<DepositDataFile>[] = [
+    {
+      logo: IconNameEnum.edit,
+      callback: (additionalFieldsForm: AdditionalFieldsForm) => this.renameVersion(this._resId, additionalFieldsForm),
+      placeholder: current => MARK_AS_TRANSLATABLE("crud.list.action.rename"),
+    },
+    {
+      logo: IconNameEnum.create,
+      callback: (additionalFieldsForm: AdditionalFieldsForm) => this.createNewVersionFromExistingOne(this._resId, additionalFieldsForm),
+      placeholder: current => MARK_AS_TRANSLATABLE("crud.list.action.createNewVersionFromExistingOne"),
+    },
+  ];
+
+  constructor(protected readonly _store: Store,
+              protected readonly _route: ActivatedRoute,
+              private readonly _changeDetector: ChangeDetectorRef,
+              public readonly _dialog: MatDialog) {
+    this.retrieveResIdFromUrl();
+    this.defineColumns();
+  }
+
+  protected retrieveResIdFromUrl(): void {
+    this._orgUnitResId = this._route.snapshot.paramMap.get(AppRoutesEnum.paramIdWithoutPrefixParam);
+    if (isNullOrUndefined(this._orgUnitResId)) {
+      this._orgUnitResId = this._route.parent.snapshot.paramMap.get(AppRoutesEnum.paramIdWithoutPrefixParam);
+    }
+  }
+
+  onQueryParametersEvent(queryParameters: QueryParameters): void {
+    this._store.dispatch(new AdminOrganizationalUnitAdditionalFieldsFormAction.ChangeQueryParameters(this._orgUnitResId, queryParameters));
+    this._changeDetector.detectChanges(); // Allow to display spinner the first time
+  }
+
+  defineColumns(): void {
+    this.columns = [
+      {
+        field: "name",
+        header: MARK_AS_TRANSLATABLE("admin.organizationalUnit.additionalFields.table.header.name"),
+        type: FieldTypeEnum.string,
+        order: OrderEnum.none,
+        isFilterable: true,
+        isSortable: true,
+      },
+      {
+        field: "creation.when" as any,
+        header: MARK_AS_TRANSLATABLE("admin.organizationalUnit.additionalFields.table.header.creation.when"),
+        type: FieldTypeEnum.datetime,
+        order: OrderEnum.ascending,
+        isFilterable: true,
+        isSortable: true,
+      },
+    ];
+  }
+
+  select(additionalFieldsForm: AdditionalFieldsForm): void {
+    this._dialog.open(AdminOrganizationalUnitAdditionalFieldsDetailCreateUpdateDialog, {
+      data: {
+        parentResId: this._orgUnitResId,
+        additionalFieldsForm: additionalFieldsForm,
+        mode: "detail",
+      } as AdminOrganizationalUnitAdditionalFieldsDetailCreateEditDialogData,
+    });
+  }
+
+  private renameVersion(_resId: string, additionalFieldsForm: AdditionalFieldsForm): void {
+    this._dialog.open(AdminOrganizationalUnitAdditionalFieldsRenameDialog, {
+      data: {
+        parentResId: this._orgUnitResId,
+        additionalFieldsForm: additionalFieldsForm,
+      } as AdminOrganizationalUnitAdditionalFieldsRenameDialogData,
+    });
+  }
+
+  private createNewVersionFromExistingOne(_resId: string, additionalFieldsForm: AdditionalFieldsForm): void {
+    this._dialog.open(AdminOrganizationalUnitAdditionalFieldsDetailCreateUpdateDialog, {
+      data: {
+        parentResId: this._orgUnitResId,
+        additionalFieldsForm: additionalFieldsForm,
+        mode: "update",
+      } as AdminOrganizationalUnitAdditionalFieldsDetailCreateEditDialogData,
+    });
+  }
+}
diff --git a/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-detail-edit/admin-organizational-unit-detail-edit.routable.html b/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-detail-edit/admin-organizational-unit-detail-edit.routable.html
new file mode 100644
index 0000000000000000000000000000000000000000..890cb1ab94f353daa850663c3903a36748194d3c
--- /dev/null
+++ b/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-detail-edit/admin-organizational-unit-detail-edit.routable.html
@@ -0,0 +1,28 @@
+<lib-empty-container
+    cdkTrapFocus
+    solidifyShortCuts
+    [solidifyFocusFirstElement]="true"
+    (onEscape)="backToList()"
+>
+  <dlcm-shared-banner-edit-mode [isEdit]="isEdit"></dlcm-shared-banner-edit-mode>
+
+
+  <dlcm-shared-button-toolbar-detail [mode]="isEdit ? 'edit' : 'detail'"
+                                     [formPresentational]="formPresentational"
+                                     [currentModel]="currentObs | async"
+                                     [listExtraButtons]="listExtraButtons"
+                                     [saveAvailable]="false"
+                                     (editChange)="edit()"
+                                     (deleteChange)="delete()"
+                                     (backToDetailChange)="backToDetail()"
+                                     (backToListChange)="backToList()"
+  >
+  </dlcm-shared-button-toolbar-detail>
+
+  <dlcm-shared-tabs-container [tabs]="listTabs"
+                              [isLoading]="isLoadingObs | async"
+                              (tabChange)="setCurrentTab($event)"
+  >
+    <router-outlet></router-outlet>
+  </dlcm-shared-tabs-container>
+</lib-empty-container>
diff --git a/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-detail-edit/admin-organizational-unit-detail-edit.routable.ts b/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-detail-edit/admin-organizational-unit-detail-edit.routable.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1426979effc7b6344ac3cceb22bd9950f3d5d4a1
--- /dev/null
+++ b/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-detail-edit/admin-organizational-unit-detail-edit.routable.ts
@@ -0,0 +1,155 @@
+import {
+  AdminOrganizationalUnitAdditionalFieldsDetailCreateEditDialogData,
+  AdminOrganizationalUnitAdditionalFieldsDetailCreateUpdateDialog,
+} from "@admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog";
+import {AdminOrganizationalUnitService} from "@admin/organizational-unit/services/admin-organizational-unit.service";
+import {adminOrganizationalUnitActionNameSpace} from "@admin/organizational-unit/stores/admin-organizational-unit.action";
+import {
+  AdminOrganizationalUnitState,
+  AdminOrganizationalUnitStateModel,
+} from "@admin/organizational-unit/stores/admin-organizational-unit.state";
+import {
+  ChangeDetectionStrategy,
+  ChangeDetectorRef,
+  Component,
+  OnInit,
+} from "@angular/core";
+import {MatDialog} from "@angular/material/dialog";
+import {ActivatedRoute} from "@angular/router";
+import {
+  OrganizationalUnit,
+  PreservationPolicy,
+  Role,
+  SubmissionPolicy,
+} from "@models";
+import {
+  Actions,
+  Select,
+  Store,
+} from "@ngxs/store";
+import {Tab} from "@shared/components/containers/shared-tabs/shared-tabs.container";
+import {SharedAbstractDetailEditCommonRoutable} from "@shared/components/routables/shared-abstract-detail-edit-common/shared-abstract-detail-edit-common.routable";
+import {IconNameEnum} from "@shared/enums/icon-name.enum";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {
+  AdminRoutesEnum,
+  AppRoutesEnum,
+} from "@shared/enums/routes.enum";
+import {ExtraButtonToolbar} from "@shared/models/extra-button-toolbar.model";
+import {sharedOrgUnitActionNameSpace} from "@shared/stores/organizational-unit/shared-organizational-unit.action";
+import {SharedPreservationPolicyState} from "@shared/stores/preservation-policy/shared-preservation-policy.state";
+import {SharedResearchDomainAction} from "@shared/stores/research-domain/shared-research-domain.action";
+import {SharedRoleState} from "@shared/stores/role/shared-role.state";
+import {SharedSubmissionPolicyState} from "@shared/stores/submission-policy/shared-submission-policy.state";
+import {Observable} from "rxjs";
+import {
+  MARK_AS_TRANSLATABLE,
+  MemoizedUtil,
+  Override,
+  OverrideProperty,
+  ResourceNameSpace,
+} from "solidify-frontend";
+
+@Component({
+  selector: "dlcm-admin-organizational-unit-detail-edit-routable",
+  templateUrl: "./admin-organizational-unit-detail-edit.routable.html",
+  styleUrls: ["../../../../../../shared/components/routables/shared-abstract-detail-edit-common/shared-abstract-detail-edit-common.routable.scss"],
+  changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class AdminOrganizationalUnitDetailEditRoutable extends SharedAbstractDetailEditCommonRoutable<OrganizationalUnit, AdminOrganizationalUnitStateModel> implements OnInit {
+  @Select(AdminOrganizationalUnitState.isLoadingWithDependency) isLoadingWithDependencyObs: Observable<boolean>;
+  @Select(AdminOrganizationalUnitState.isReadyToBeDisplayed) isReadyToBeDisplayedObs: Observable<boolean>;
+  listSubmissionPoliciesObs: Observable<SubmissionPolicy[]> = MemoizedUtil.list(this._store, SharedSubmissionPolicyState);
+  listPreservationPoliciesObs: Observable<PreservationPolicy[]> = MemoizedUtil.list(this._store, SharedPreservationPolicyState);
+  listRoleObs: Observable<Role[]> = MemoizedUtil.list(this._store, SharedRoleState);
+
+  @OverrideProperty()
+  checkAvailableResourceNameSpace: ResourceNameSpace = sharedOrgUnitActionNameSpace;
+
+  readonly KEY_PARAM_NAME: keyof OrganizationalUnit & string = "name";
+
+  private currentTab: Tab;
+
+  listTabs: Tab[] = [
+    {
+      id: TabEnum.DATA,
+      suffixUrl: AdminRoutesEnum.organizationalUnitData,
+      icon: IconNameEnum.metadata,
+      titleToTranslate: MARK_AS_TRANSLATABLE("admin.organizationalUnit.tab.detail"),
+      route: () => [...this.rootUrl, AdminRoutesEnum.organizationalUnitData],
+    },
+    {
+      id: TabEnum.ADDITIONAL_FIELDS_FORM,
+      suffixUrl: AdminRoutesEnum.organizationalUnitAdditionalFieldsForm,
+      icon: IconNameEnum.files,
+      titleToTranslate: MARK_AS_TRANSLATABLE("admin.organizationalUnit.tab.additionalFieldsForm"),
+      route: () => [...this.rootUrl, AdminRoutesEnum.organizationalUnitAdditionalFieldsForm],
+    },
+  ];
+
+  private get rootUrl(): string[] {
+    return [AppRoutesEnum.admin, AdminRoutesEnum.organizationalUnit, AdminRoutesEnum.organizationalUnitDetail, this._resId];
+  }
+
+  listExtraButtons: ExtraButtonToolbar<OrganizationalUnit>[] = [
+    {
+      color: "primary",
+      typeButton: "flat-button",
+      icon: IconNameEnum.save,
+      labelToTranslate: (current) => MARK_AS_TRANSLATABLE("app.navigation.button.save"),
+      order: 40,
+      callback: () => this._adminOrganizationalUnitService?.formPresentational?.onSubmit(),
+      displayCondition: () => this.isEdit,
+      disableCondition: () => this._adminOrganizationalUnitService?.formPresentational?.form?.pristine || this._adminOrganizationalUnitService?.formPresentational?.form?.invalid,
+    },
+    {
+      color: "primary",
+      typeButton: "button",
+      icon: IconNameEnum.create,
+      labelToTranslate: (current) => MARK_AS_TRANSLATABLE("admin.organizationalUnit.button.createAdditionalFieldsForm"),
+      order: 40,
+      callback: () => this.createAdditionalFieldsFromScratch(this._resId),
+    },
+  ];
+
+  constructor(protected readonly _store: Store,
+              protected readonly _route: ActivatedRoute,
+              protected readonly _actions$: Actions,
+              protected readonly _changeDetector: ChangeDetectorRef,
+              public readonly _dialog: MatDialog,
+              private readonly _adminOrganizationalUnitService: AdminOrganizationalUnitService) {
+    super(_store, _route, _actions$, _changeDetector, _dialog, LocalStateEnum.admin_organizationalUnit, adminOrganizationalUnitActionNameSpace, LocalStateEnum.admin);
+  }
+
+  ngOnInit(): void {
+    super.ngOnInit();
+    this._store.dispatch(new SharedResearchDomainAction.GetSource());
+  }
+
+  setCurrentTab($event: Tab): void {
+    this.currentTab = $event;
+  }
+
+  protected getSubResourceWithParentId(id: string): void {
+  }
+
+  private createAdditionalFieldsFromScratch(_resId: string): void {
+    this._dialog.open(AdminOrganizationalUnitAdditionalFieldsDetailCreateUpdateDialog, {
+      data: {
+        parentResId: this._resId,
+        additionalFieldsForm: undefined,
+        mode: "create",
+      } as AdminOrganizationalUnitAdditionalFieldsDetailCreateEditDialogData,
+    });
+  }
+
+  @Override()
+  backToDetail(): void {
+    super.backToDetail([...this.rootUrl, AdminRoutesEnum.organizationalUnitData]);
+  }
+}
+
+enum TabEnum {
+  DATA = "DATA",
+  ADDITIONAL_FIELDS_FORM = "ADDITIONAL_FIELDS_FORM",
+}
diff --git a/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-metadata/admin-organizational-unit-metadata.routable.html b/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-metadata/admin-organizational-unit-metadata.routable.html
new file mode 100644
index 0000000000000000000000000000000000000000..308654050d5d172c705395a0f1cc27809b912f15
--- /dev/null
+++ b/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-metadata/admin-organizational-unit-metadata.routable.html
@@ -0,0 +1,28 @@
+<div class="wrapper"
+     [dlcmSpinner]="isLoadingWithDependencyObs | async"
+>
+  <dlcm-admin-organizational-unit-form #formPresentational
+                                       [solidifyFocusFirstElement]="isEdit"
+                                       *ngIf="isReadyToBeDisplayedObs | async"
+                                       [model]="currentObs| async"
+                                       [selectedSubmissionPolicies]="selectedSubmissionPoliciesObs | async"
+                                       [selectedPreservationPolicies]="selectedPreservationPoliciesObs | async"
+                                       [selectedDisseminationPolicies]="selectedDisseminationPoliciesObs | async"
+                                       [selectedPersonRole]="selectedPersonRoleObs | async"
+                                       [selectedFundingAgencies]="selectedFundingAgenciesObs | async"
+                                       [selectedInstitutions]="selectedInstitutionsObs | async"
+                                       [listSubmissionPolicies]="listSubmissionPoliciesObs | async"
+                                       [listPreservationPolicies]="listPreservationPoliciesObs | async"
+                                       [listDisseminationPolicies]="listDisseminationPoliciesObs | async"
+                                       [researchDomainSources]="researchDomainSourcesObs | async"
+                                       [defaultPlatformLicenseId]="(systemPropertyObs | async)?.defaultLicense"
+                                       [listRole]="listRoleObs | async"
+                                       [readonly]="!isEdit"
+                                       [editAvailable]="editAvailable"
+                                       (checkAvailableChange)="checkAvailable($event)"
+                                       (submitChange)="update($event)"
+                                       (dirtyChange)="updateCanDeactivate($event)"
+                                       (navigate)="navigate($event)"
+                                       (editChange)="edit()"
+  ></dlcm-admin-organizational-unit-form>
+</div>
diff --git a/src/app/features/admin/organizational-unit/components/routables/admin-orgunit-detail-edit/admin-organizational-unit-detail-edit.routable.ts b/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-metadata/admin-organizational-unit-metadata.routable.ts
similarity index 80%
rename from src/app/features/admin/organizational-unit/components/routables/admin-orgunit-detail-edit/admin-organizational-unit-detail-edit.routable.ts
rename to src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-metadata/admin-organizational-unit-metadata.routable.ts
index 7448bd876f4a9d126373e016feb20b6a702db58f..c574a3c5a4c185ef3503ad87c8f313c404098461 100644
--- a/src/app/features/admin/organizational-unit/components/routables/admin-orgunit-detail-edit/admin-organizational-unit-detail-edit.routable.ts
+++ b/src/app/features/admin/organizational-unit/components/routables/admin-organizational-unit-metadata/admin-organizational-unit-metadata.routable.ts
@@ -1,4 +1,6 @@
 import {PersonRole} from "@admin/models/person-role.model";
+import {AdminOrganizationalUnitFormPresentational} from "@admin/organizational-unit/components/presentationals/admin-organizational-unit-form/admin-organizational-unit-form.presentational";
+import {AdminOrganizationalUnitService} from "@admin/organizational-unit/services/admin-organizational-unit.service";
 import {adminOrganizationalUnitActionNameSpace} from "@admin/organizational-unit/stores/admin-organizational-unit.action";
 import {
   AdminOrganizationalUnitState,
@@ -21,6 +23,7 @@ import {
   ChangeDetectorRef,
   Component,
   OnInit,
+  ViewChild,
 } from "@angular/core";
 import {MatDialog} from "@angular/material/dialog";
 import {ActivatedRoute} from "@angular/router";
@@ -35,6 +38,7 @@ import {
   SubmissionPolicy,
   SystemProperty,
 } from "@models";
+import {Navigate} from "@ngxs/router-plugin";
 import {
   Actions,
   Select,
@@ -42,6 +46,11 @@ import {
 } from "@ngxs/store";
 import {SharedAbstractDetailEditCommonRoutable} from "@shared/components/routables/shared-abstract-detail-edit-common/shared-abstract-detail-edit-common.routable";
 import {LocalStateEnum} from "@shared/enums/local-state.enum";
+import {
+  AdminRoutesEnum,
+  DepositRoutesEnum,
+  RoutesEnum,
+} from "@shared/enums/routes.enum";
 import {SharedDisseminationPolicyState} from "@shared/stores/dissemination-policy/shared-dissemination-policy.state";
 import {sharedOrgUnitActionNameSpace} from "@shared/stores/organizational-unit/shared-organizational-unit.action";
 import {SharedPreservationPolicyState} from "@shared/stores/preservation-policy/shared-preservation-policy.state";
@@ -51,22 +60,25 @@ import {SharedRoleState} from "@shared/stores/role/shared-role.state";
 import {SharedSubmissionPolicyState} from "@shared/stores/submission-policy/shared-submission-policy.state";
 import {Observable} from "rxjs";
 import {
-  MARK_AS_TRANSLATABLE,
+  filter,
+  take,
+  tap,
+} from "rxjs/operators";
+import {
+  isNotNullNorUndefined,
   MemoizedUtil,
+  Override,
   OverrideProperty,
   ResourceNameSpace,
 } from "solidify-frontend";
-import {Tab} from "@shared/components/containers/shared-tabs/shared-tabs.container";
-import {AdminRoutesEnum, AppRoutesEnum, DepositRoutesEnum} from "@shared/enums/routes.enum";
-import {IconNameEnum} from "@shared/enums/icon-name.enum";
 
 @Component({
   selector: "dlcm-admin-organizational-unit-detail-edit-routable",
-  templateUrl: "./admin-organizational-unit-detail-edit.routable.html",
+  templateUrl: "./admin-organizational-unit-metadata.routable.html",
   styleUrls: ["../../../../../../shared/components/routables/shared-abstract-detail-edit-common/shared-abstract-detail-edit-common.routable.scss"],
   changeDetection: ChangeDetectionStrategy.OnPush,
 })
-export class AdminOrganizationalUnitDetailEditRoutable extends SharedAbstractDetailEditCommonRoutable<OrganizationalUnit, AdminOrganizationalUnitStateModel> implements OnInit {
+export class AdminOrganizationalUnitMetadataRoutable extends SharedAbstractDetailEditCommonRoutable<OrganizationalUnit, AdminOrganizationalUnitStateModel> implements OnInit {
   @Select(AdminOrganizationalUnitState.isLoadingWithDependency) isLoadingWithDependencyObs: Observable<boolean>;
   @Select(AdminOrganizationalUnitState.isReadyToBeDisplayed) isReadyToBeDisplayedObs: Observable<boolean>;
   selectedSubmissionPoliciesObs: Observable<SubmissionPolicy[]> = MemoizedUtil.selected(this._store, AdminOrganizationalUnitSubmissionPolicyState);
@@ -85,40 +97,32 @@ export class AdminOrganizationalUnitDetailEditRoutable extends SharedAbstractDet
   @OverrideProperty()
   checkAvailableResourceNameSpace: ResourceNameSpace = sharedOrgUnitActionNameSpace;
 
-  readonly KEY_PARAM_NAME: keyof OrganizationalUnit & string = "name";
-
-  private get rootUrl(): string[] {
-    return [AppRoutesEnum.admin, AdminRoutesEnum.organizationalUnit];
-  }
+  @OverrideProperty()
+  @ViewChild("formPresentational")
+  readonly formPresentational: AdminOrganizationalUnitFormPresentational;
 
-  listTabs: Tab[] = [
-    {
-      id: TabEnum.METADATA,
-      suffixUrl: DepositRoutesEnum.metadata,
-      icon: IconNameEnum.metadata,
-      titleToTranslate: MARK_AS_TRANSLATABLE("admin.organizationalUnit.detail"),
-      route: () => [...this.rootUrl, AdminRoutesEnum.organizationalUnitDetail, this._resId],
-    },
-    {
-      id: TabEnum.ADDITIONAL_FIELDS_FORM,
-      suffixUrl: DepositRoutesEnum.metadata,
-      icon: IconNameEnum.files,
-      titleToTranslate: MARK_AS_TRANSLATABLE("admin.organizationalUnit.additionalFieldsForm"),
-      route: () => [...this.rootUrl, AdminRoutesEnum.organizationalUnitAdditionalFieldsForm, this._resId],
-    },
-  ];
+  readonly KEY_PARAM_NAME: keyof OrganizationalUnit & string = "name";
 
-  constructor(protected _store: Store,
-              protected _route: ActivatedRoute,
+  constructor(protected readonly _store: Store,
+              protected readonly _route: ActivatedRoute,
               protected readonly _actions$: Actions,
               protected readonly _changeDetector: ChangeDetectorRef,
-              public _dialog: MatDialog) {
+              public readonly _dialog: MatDialog,
+              private readonly _adminOrganizationalUnitService: AdminOrganizationalUnitService) {
     super(_store, _route, _actions$, _changeDetector, _dialog, LocalStateEnum.admin_organizationalUnit, adminOrganizationalUnitActionNameSpace, LocalStateEnum.admin);
   }
 
   ngOnInit(): void {
     super.ngOnInit();
     this._store.dispatch(new SharedResearchDomainAction.GetSource());
+
+    this.subscribe(this.isReadyToBeDisplayedObs.pipe(
+      filter(ready => ready && isNotNullNorUndefined(this.formPresentational)),
+      take(1),
+      tap(ready => {
+        this._adminOrganizationalUnitService.formPresentational = this.formPresentational;
+      })),
+    );
   }
 
   getSubResourceWithParentId(id: string): void {
@@ -129,9 +133,16 @@ export class AdminOrganizationalUnitDetailEditRoutable extends SharedAbstractDet
     this._store.dispatch(new AdminOrganizationalUnitFundingAgencyAction.GetAll(id));
     this._store.dispatch(new AdminOrganizationalUnitInstitutionAction.GetAll(id));
   }
-}
 
-enum TabEnum {
-  METADATA = "METADATA",
-  ADDITIONAL_FIELDS_FORM = "ADDITIONAL_FIELDS_FORM",
-}
+  @Override()
+  edit(): void {
+    if (this.isEdit) {
+      return;
+    }
+    this._store.dispatch(new Navigate([RoutesEnum.adminOrganizationalUnitDetail, this._resId, AdminRoutesEnum.organizationalUnitData, DepositRoutesEnum.edit]));
+  }
+
+  @Override()
+  protected cleanState(): void {
+  }
+}
\ No newline at end of file
diff --git a/src/app/features/admin/organizational-unit/components/routables/admin-orgunit-detail-edit/admin-organizational-unit-detail-edit.routable.html b/src/app/features/admin/organizational-unit/components/routables/admin-orgunit-detail-edit/admin-organizational-unit-detail-edit.routable.html
deleted file mode 100644
index 0d68ce055329653e32b0d0af1f7333c609f97388..0000000000000000000000000000000000000000
--- a/src/app/features/admin/organizational-unit/components/routables/admin-orgunit-detail-edit/admin-organizational-unit-detail-edit.routable.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<lib-empty-container
-    cdkTrapFocus
-    solidifyShortCuts
-    [solidifyFocusFirstElement]="true"
-    (onEscape)="backToList()"
->
-  <dlcm-shared-banner-edit-mode [isEdit]="isEdit"></dlcm-shared-banner-edit-mode>
-
-
-  <dlcm-shared-button-toolbar-detail [mode]="isEdit ? 'edit' : 'detail'"
-                                     [formPresentational]="formPresentational"
-                                     [currentModel]="currentObs | async"
-                                     (editChange)="edit()"
-                                     (deleteChange)="delete()"
-                                     (backToDetailChange)="backToDetail()"
-                                     (backToListChange)="backToList()"
-  >
-  </dlcm-shared-button-toolbar-detail>
-
-  <div class="wrapper"
-       [dlcmSpinner]="isLoadingWithDependencyObs | async"
-  >
-    <dlcm-admin-organizational-unit-form #formPresentational
-                                         [solidifyFocusFirstElement]="isEdit"
-                                         *ngIf="isReadyToBeDisplayedObs | async"
-                                         [model]="currentObs| async"
-                                         [selectedSubmissionPolicies]="selectedSubmissionPoliciesObs | async"
-                                         [selectedPreservationPolicies]="selectedPreservationPoliciesObs | async"
-                                         [selectedDisseminationPolicies]="selectedDisseminationPoliciesObs | async"
-                                         [selectedPersonRole]="selectedPersonRoleObs | async"
-                                         [selectedFundingAgencies]="selectedFundingAgenciesObs | async"
-                                         [selectedInstitutions]="selectedInstitutionsObs | async"
-                                         [listSubmissionPolicies]="listSubmissionPoliciesObs | async"
-                                         [listPreservationPolicies]="listPreservationPoliciesObs | async"
-                                         [listDisseminationPolicies]="listDisseminationPoliciesObs | async"
-                                         [researchDomainSources]="researchDomainSourcesObs | async"
-                                         [defaultPlatformLicenseId]="(systemPropertyObs | async)?.defaultLicense"
-                                         [listRole]="listRoleObs | async"
-                                         [readonly]="!isEdit"
-                                         [editAvailable]="editAvailable"
-                                         (checkAvailableChange)="checkAvailable($event)"
-                                         (submitChange)="update($event)"
-                                         (dirtyChange)="updateCanDeactivate($event)"
-                                         (navigate)="navigate($event)"
-                                         (editChange)="edit()"
-    ></dlcm-admin-organizational-unit-form>
-  </div>
-</lib-empty-container>
diff --git a/src/app/features/admin/organizational-unit/services/admin-organizational-unit.service.ts b/src/app/features/admin/organizational-unit/services/admin-organizational-unit.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e9d17eaf6fffed9d35c53591407e2f07b8df5bc9
--- /dev/null
+++ b/src/app/features/admin/organizational-unit/services/admin-organizational-unit.service.ts
@@ -0,0 +1,9 @@
+import {AdminOrganizationalUnitFormPresentational} from "@admin/organizational-unit/components/presentationals/admin-organizational-unit-form/admin-organizational-unit-form.presentational";
+import {Injectable} from "@angular/core";
+
+@Injectable({
+  providedIn: "root",
+})
+export class AdminOrganizationalUnitService {
+  public formPresentational: AdminOrganizationalUnitFormPresentational;
+}
diff --git a/src/app/features/admin/orgunit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.action.ts b/src/app/features/admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.action.ts
similarity index 95%
rename from src/app/features/admin/orgunit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.action.ts
rename to src/app/features/admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.action.ts
index 280943f57da625fb16dd77fe3039d1b7e6ae1003..df96ccc64ccf223a8dc7a160e84a3d47c4d11de4 100644
--- a/src/app/features/admin/orgunit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.action.ts
+++ b/src/app/features/admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.action.ts
@@ -1,9 +1,11 @@
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {AdditionalFieldsForm} from "@models";
+import {LocalStateEnum} from "@shared/enums/local-state.enum";
 import {
-  BaseAction, BaseSubAction,
+  BaseAction,
+  BaseSubAction,
   CompositionAction,
-  CompositionNameSpace, QueryParameters,
+  CompositionNameSpace,
+  QueryParameters,
   TypeDefaultAction,
 } from "solidify-frontend";
 
diff --git a/src/app/features/admin/orgunit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.state.ts b/src/app/features/admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.state.ts
similarity index 70%
rename from src/app/features/admin/orgunit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.state.ts
rename to src/app/features/admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.state.ts
index 3481898ac97b8766d7e5bbfb0c7b880911d38a20..8f6d6d472e56de33d5f493a59ee51491db6f3bf2 100644
--- a/src/app/features/admin/orgunit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.state.ts
+++ b/src/app/features/admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.state.ts
@@ -1,35 +1,43 @@
+import {
+  AdminOrganizationalUnitAdditionalFieldsFormAction,
+  adminOrganizationalUnitAdditionalFieldsFormActionNameSpace,
+} from "@admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.action";
 import {Injectable} from "@angular/core";
-import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {AdditionalFieldsForm} from "@models";
 import {
   Action,
   Actions,
-  State, StateContext,
+  State,
+  StateContext,
   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 {Observable} from "rxjs";
+import {
+  catchError,
+  tap,
+} from "rxjs/operators";
 import {
   ApiService,
   CompositionState,
   CompositionStateModel,
   defaultCompositionStateInitValue,
-  NotificationService, QueryParameters, SolidifyStateError,
+  MARK_AS_TRANSLATABLE,
+  NotificationService,
+  OverrideDefaultAction,
+  QueryParameters,
+  SolidifyStateError,
 } from "solidify-frontend";
-import {Observable} from "rxjs";
-import {catchError, tap} from "rxjs/operators";
-import GetCurrentMetadataFormSuccess = AdminOrganizationalUnitAdditionalFieldsFormAction.GetCurrentMetadataFormSuccess;
 import GetCurrentMetadataFormFail = AdminOrganizationalUnitAdditionalFieldsFormAction.GetCurrentMetadataFormFail;
-import {
-  AdminOrganizationalUnitAdditionalFieldsFormAction,
-  adminOrganizationalUnitAdditionalFieldsFormActionNameSpace
-} from "@admin/orgunit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.action";
+import GetCurrentMetadataFormSuccess = AdminOrganizationalUnitAdditionalFieldsFormAction.GetCurrentMetadataFormSuccess;
 
 export const defaultAdminOrganizationalUnitAdditionalFieldsFormStateModel: () => AdminOrganizationalUnitAdditionalFieldsFormStateModel = () =>
   ({
     ...defaultCompositionStateInitValue(),
     queryParameters: new QueryParameters(20),
-    loaded: false
+    loaded: false,
   });
 
 export interface AdminOrganizationalUnitAdditionalFieldsFormStateModel extends CompositionStateModel<AdditionalFieldsForm> {
@@ -61,15 +69,16 @@ export class AdminOrganizationalUnitAdditionalFieldsFormState extends Compositio
   @Action(AdminOrganizationalUnitAdditionalFieldsFormAction.GetCurrentMetadataForm)
   getCurrentMetadataForm(ctx: StateContext<AdminOrganizationalUnitAdditionalFieldsFormStateModel>, action: AdminOrganizationalUnitAdditionalFieldsFormAction.GetCurrentMetadataForm): Observable<AdditionalFieldsForm> {
     ctx.patchState({
-      isLoadingCounter: ctx.getState().isLoadingCounter + 1
+      isLoadingCounter: ctx.getState().isLoadingCounter + 1,
     });
-    return this.apiService.getByIdInPath<AdditionalFieldsForm>(`${this._urlResource}/${action.parentId}/${this._resourceName}/${ApiResourceNameEnum.CURRENT_VERSION}`).pipe(
-      tap(result => ctx.dispatch(new GetCurrentMetadataFormSuccess(action, result))),
-      catchError(error => {
-        ctx.dispatch(new GetCurrentMetadataFormFail(action));
-        throw new SolidifyStateError(this, error);
-      })
-    );
+    return this.apiService.getByIdInPath<AdditionalFieldsForm>(`${this._urlResource}/${action.parentId}/${this._resourceName}/${ApiResourceNameEnum.CURRENT_VERSION}`)
+      .pipe(
+        tap(result => ctx.dispatch(new GetCurrentMetadataFormSuccess(action, result))),
+        catchError(error => {
+          ctx.dispatch(new GetCurrentMetadataFormFail(action));
+          throw new SolidifyStateError(this, error);
+        }),
+      );
   }
 
   @Action(AdminOrganizationalUnitAdditionalFieldsFormAction.GetCurrentMetadataFormSuccess)
@@ -77,14 +86,21 @@ export class AdminOrganizationalUnitAdditionalFieldsFormState extends Compositio
     ctx.patchState({
       isLoadingCounter: ctx.getState().isLoadingCounter - 1,
       current: action.currentForm,
-      loaded: true
+      loaded: true,
     });
   }
 
   @Action(AdminOrganizationalUnitAdditionalFieldsFormAction.GetCurrentMetadataFormFail)
   getCurrentMetadataFormFail(ctx: StateContext<AdminOrganizationalUnitAdditionalFieldsFormStateModel>, action: AdminOrganizationalUnitAdditionalFieldsFormAction.GetCurrentMetadataFormFail): void {
     ctx.patchState({
-      isLoadingCounter: ctx.getState().isLoadingCounter - 1
+      isLoadingCounter: ctx.getState().isLoadingCounter - 1,
     });
   }
+
+  @OverrideDefaultAction()
+  @Action(AdminOrganizationalUnitAdditionalFieldsFormAction.CreateSuccess)
+  createSuccess(ctx: StateContext<AdminOrganizationalUnitAdditionalFieldsFormStateModel>, action: AdminOrganizationalUnitAdditionalFieldsFormAction.CreateSuccess): void {
+    super.createSuccess(ctx, action);
+    this.notificationService.showError(MARK_AS_TRANSLATABLE("admin.organizationalUnit.additionalFieldsForm.notification.unableToCreate"));
+  }
 }
diff --git a/src/app/features/admin/organizational-unit/stores/admin-organizational-unit.state.ts b/src/app/features/admin/organizational-unit/stores/admin-organizational-unit.state.ts
index 6f8c283556e50ea146f0b51822c94feaad56833d..c486659ba71c68bb4f4d79ee08f2d2c5ef298ebe 100644
--- a/src/app/features/admin/organizational-unit/stores/admin-organizational-unit.state.ts
+++ b/src/app/features/admin/organizational-unit/stores/admin-organizational-unit.state.ts
@@ -1,3 +1,8 @@
+import {
+  AdminOrganizationalUnitAdditionalFieldsFormState,
+  AdminOrganizationalUnitAdditionalFieldsFormStateModel,
+  defaultAdminOrganizationalUnitAdditionalFieldsFormStateModel,
+} from "@admin/organizational-unit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.state";
 import {
   AdminOrganizationalUnitAction,
   adminOrganizationalUnitActionNameSpace,
@@ -32,11 +37,6 @@ import {
   AdminOrganizationalUnitSubmissionPolicyState,
   AdminOrganizationalUnitSubmissionPolicyStateModel,
 } from "@admin/organizational-unit/stores/submission-policy/admin-organizational-unit-submission-policy.state";
-import {
-  AdminOrganizationalUnitAdditionalFieldsFormState,
-  AdminOrganizationalUnitAdditionalFieldsFormStateModel,
-  defaultAdminOrganizationalUnitAdditionalFieldsFormStateModel
-} from "@admin/orgunit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.state";
 import {Injectable} from "@angular/core";
 import {DepositStateModel} from "@deposit/stores/deposit.state";
 import {OrganizationalUnit} from "@models";
@@ -51,7 +51,10 @@ import {
 } 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 {
+  AdminRoutesEnum,
+  RoutesEnum,
+} from "@shared/enums/routes.enum";
 import {SharedDisseminationPolicyAction} from "@shared/stores/dissemination-policy/shared-dissemination-policy.action";
 import {SharedPreservationPolicyAction} from "@shared/stores/preservation-policy/shared-preservation-policy.action";
 import {SharedRoleAction} from "@shared/stores/role/shared-role.action";
@@ -61,7 +64,6 @@ import {tap} from "rxjs/internal/operators/tap";
 import {
   ApiService,
   defaultAssociationStateInitValue,
-  defaultCompositionStateInitValue,
   defaultRelation2TiersStateInitValue,
   defaultRelation3TiersStateInitValue,
   defaultResourceStateInitValue,
@@ -100,7 +102,7 @@ export interface AdminOrganizationalUnitStateModel extends ResourceStateModel<Or
     admin_organizationalUnit_personRole: {...defaultRelation3TiersStateInitValue()},
     admin_organizationalUnit_fundingAgency: {...defaultAssociationStateInitValue()},
     admin_organizationalUnit_institution: {...defaultAssociationStateInitValue()},
-    admin_organizationalUnit_additionalFieldsForm: {...defaultAdminOrganizationalUnitAdditionalFieldsFormStateModel()}
+    admin_organizationalUnit_additionalFieldsForm: {...defaultAdminOrganizationalUnitAdditionalFieldsFormStateModel()},
   },
   children: [
     AdminOrganizationalUnitSubmissionPolicyState,
@@ -109,7 +111,7 @@ export interface AdminOrganizationalUnitStateModel extends ResourceStateModel<Or
     AdminOrganizationalUnitPersonRoleState,
     AdminOrganizationalUnitFundingAgencyState,
     AdminOrganizationalUnitInstitutionState,
-    AdminOrganizationalUnitAdditionalFieldsFormState
+    AdminOrganizationalUnitAdditionalFieldsFormState,
   ],
 })
 export class AdminOrganizationalUnitState extends ResourceState<AdminOrganizationalUnitStateModel, OrganizationalUnit> {
@@ -120,8 +122,8 @@ export class AdminOrganizationalUnitState extends ResourceState<AdminOrganizatio
               protected actions$: Actions) {
     super(apiService, store, notificationService, actions$, {
       nameSpace: adminOrganizationalUnitActionNameSpace,
-      routeRedirectUrlAfterSuccessCreateAction: (resId: string) => RoutesEnum.adminOrganizationalUnitDetail + urlSeparator + resId,
-      routeRedirectUrlAfterSuccessUpdateAction: (resId: string) => RoutesEnum.adminOrganizationalUnitDetail + urlSeparator + resId,
+      routeRedirectUrlAfterSuccessCreateAction: (resId: string) => RoutesEnum.adminOrganizationalUnitDetail + urlSeparator + resId + urlSeparator + AdminRoutesEnum.organizationalUnitData,
+      routeRedirectUrlAfterSuccessUpdateAction: (resId: string) => RoutesEnum.adminOrganizationalUnitDetail + urlSeparator + resId + urlSeparator + AdminRoutesEnum.organizationalUnitData,
       routeRedirectUrlAfterSuccessDeleteAction: RoutesEnum.adminOrganizationalUnit,
       notificationResourceCreateSuccessTextToTranslate: MARK_AS_TRANSLATABLE("admin.organizationalUnit.notification.resource.create"),
       notificationResourceDeleteSuccessTextToTranslate: MARK_AS_TRANSLATABLE("admin.organizationalUnit.notification.resource.delete"),
diff --git a/src/app/features/admin/orgunit/admin-orgunit.module.ts b/src/app/features/admin/orgunit/admin-orgunit.module.ts
deleted file mode 100644
index 9d60c0fe5ae8620251cbba7bf28339593e85bcad..0000000000000000000000000000000000000000
--- a/src/app/features/admin/orgunit/admin-orgunit.module.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import {AdminOrgunitRoutingModule} from "@admin/orgunit/admin-orgunit-routing.module";
-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 {AdminOrgunitDetailEditRoutable} from "@admin/orgunit/components/routables/admin-orgunit-detail-edit/admin-orgunit-detail-edit.routable";
-import {AdminOrgunitListRoutable} from "@admin/orgunit/components/routables/admin-orgunit-list/admin-orgunit-list.routable";
-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";
-import {AdminOrgUnitAdditionalFieldsFormListRoutable} from "@admin/orgunit/components/routables/admin-orgunit-additional-fields-form-list/admin-orgunit-additional-fields-form-list.routable";
-import {AdminOrgUnitTabsRoutable} from "@admin/orgunit/components/routables/admin-orgunit-tabs/admin-orgunit-tabs.routable";
-
-const routables = [
-  AdminOrgunitCreateRoutable,
-  AdminOrgunitDetailEditRoutable,
-  AdminOrgunitListRoutable,
-  AdminOrgUnitAdditionalFieldsFormListRoutable,
-  AdminOrgUnitTabsRoutable
-];
-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/orgunit/components/routables/admin-orgunit-additional-fields-form-list/admin-orgunit-additional-fields-form-list.routable.ts b/src/app/features/admin/orgunit/components/routables/admin-orgunit-additional-fields-form-list/admin-orgunit-additional-fields-form-list.routable.ts
deleted file mode 100644
index f73cf460d9d07dd62f0cf470034a8ef186ea9c72..0000000000000000000000000000000000000000
--- a/src/app/features/admin/orgunit/components/routables/admin-orgunit-additional-fields-form-list/admin-orgunit-additional-fields-form-list.routable.ts
+++ /dev/null
@@ -1,71 +0,0 @@
-import {ChangeDetectionStrategy, ChangeDetectorRef, Component} from "@angular/core";
-import {AdditionalFieldsForm} from "@models";
-import {CompositionState, isNullOrUndefined, MARK_AS_TRANSLATABLE, MemoizedUtil, OrderEnum, QueryParameters} from "solidify-frontend";
-import {FieldTypeEnum} from "@shared/enums/field-type.enum";
-import {DataTableColumns} from "@shared/models/data-table-columns.model";
-import {Store} from "@ngxs/store";
-import {Observable} from "rxjs";
-import {
-  AdminOrganizationalUnitAdditionalFieldsFormState,
-} from "@admin/orgunit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.state";
-import {
-  AdminOrganizationalUnitAdditionalFieldsFormAction,
-} from "@admin/orgunit/stores/additional-fields-form/admin-organizational-unit-additional-fields-form.action";
-import {AppRoutesEnum} from "@shared/enums/routes.enum";
-import {ActivatedRoute} from "@angular/router";
-
-@Component({
-  selector: "dlcm-admin-orgunit-additional-fields-form-routable",
-  templateUrl: "./admin-orgunit-additional-fields-form.routable.html",
-  styleUrls: ["./admin-orgunit-additional-fields-form.routable.scss"],
-  changeDetection: ChangeDetectionStrategy.OnPush,
-})
-export class AdminOrgUnitAdditionalFieldsFormListRoutable {
-  isLoadingObs: Observable<boolean> = MemoizedUtil.isLoading(this._store, AdminOrganizationalUnitAdditionalFieldsFormState);
-
-  _orgUnitResId: string;
-  _resId: string;
-
-  additionalFieldsFormObs: Observable<AdditionalFieldsForm[]> = CompositionState.list(this._store, AdminOrganizationalUnitAdditionalFieldsFormState);
-  queryParametersObs: Observable<QueryParameters> = MemoizedUtil.select(this._store, AdminOrganizationalUnitAdditionalFieldsFormState, (state) => state.queryParameters);
-
-  columns: DataTableColumns<AdditionalFieldsForm>[];
-
-  constructor(protected readonly _store: Store, protected readonly _route: ActivatedRoute, private readonly _changeDetector: ChangeDetectorRef) {
-    this.retrieveResIdFromUrl();
-    this.defineColumns();
-  }
-
-  protected retrieveResIdFromUrl(): void {
-    this._orgUnitResId = this._route.snapshot.paramMap.get(AppRoutesEnum.paramIdWithoutPrefixParam);
-    if (isNullOrUndefined(this._orgUnitResId)) {
-      this._orgUnitResId = this._route.parent.snapshot.paramMap.get(AppRoutesEnum.paramIdWithoutPrefixParam);
-    }
-  }
-
-  onQueryParametersEvent(queryParameters: QueryParameters): void {
-    this._store.dispatch(new AdminOrganizationalUnitAdditionalFieldsFormAction.ChangeQueryParameters(this._orgUnitResId, queryParameters));
-    this._changeDetector.detectChanges(); // Allow to display spinner the first time
-  }
-
-  defineColumns(): void {
-    this.columns = [
-      {
-        field: "name",
-        header: MARK_AS_TRANSLATABLE("admin.organizationalUnit.additionalFields.table.header.name"),
-        type: FieldTypeEnum.string,
-        order: OrderEnum.none,
-        isFilterable: true,
-        isSortable: true,
-      },
-      {
-        field: "creation.when" as any,
-        header: MARK_AS_TRANSLATABLE("admin.organizationalUnit.additionalFields.table.header.creation.when"),
-        type: FieldTypeEnum.datetime,
-        order: OrderEnum.ascending,
-        isFilterable: true,
-        isSortable: true,
-      },
-    ];
-  }
-}
diff --git a/src/app/features/admin/orgunit/components/routables/admin-orgunit-additional-fields-form-list/admin-orgunit-additional-fields-form.routable.scss b/src/app/features/admin/orgunit/components/routables/admin-orgunit-additional-fields-form-list/admin-orgunit-additional-fields-form.routable.scss
deleted file mode 100644
index b9bc65ea450fe2c81372502f895811531a324ae8..0000000000000000000000000000000000000000
--- a/src/app/features/admin/orgunit/components/routables/admin-orgunit-additional-fields-form-list/admin-orgunit-additional-fields-form.routable.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-:host {
-  width: 100%;
-}
diff --git a/src/app/features/admin/orgunit/components/routables/admin-orgunit-detail-edit/admin-orgunit-detail-edit.routable.html b/src/app/features/admin/orgunit/components/routables/admin-orgunit-detail-edit/admin-orgunit-detail-edit.routable.html
deleted file mode 100644
index 04c0d0e106af316005f836b9e3adf103da39f07d..0000000000000000000000000000000000000000
--- a/src/app/features/admin/orgunit/components/routables/admin-orgunit-detail-edit/admin-orgunit-detail-edit.routable.html
+++ /dev/null
@@ -1,49 +0,0 @@
-
-<lib-empty-container
-    cdkTrapFocus
-    solidifyShortCuts
-    [solidifyFocusFirstElement]="true"
-    (onEscape)="backToList()"
->
-  <dlcm-shared-banner-edit-mode [isEdit]="isEdit"></dlcm-shared-banner-edit-mode>
-
-
-  <dlcm-button-toolbar-detail [mode]="isEdit ? 'edit' : 'detail'"
-                              [formPresentational]="formPresentational"
-                              [currentModel]="currentObs | async"
-                              (editChange)="edit()"
-                              (deleteChange)="delete()"
-                              (backToDetailChange)="backToDetail()"
-                              (backToListChange)="backToList()"
-  >
-  </dlcm-button-toolbar-detail>
-
-  <div class="wrapper"
-       [dlcmSpinner]="isLoadingWithDependencyObs | async"
-  >
-    <dlcm-admin-orgunit-form #formPresentational
-                             [solidifyFocusFirstElement]="isEdit"
-                             *ngIf="isReadyToBeDisplayedObs | async"
-                             [model]="currentObs| async"
-                             [selectedSubmissionPolicies]="selectedSubmissionPoliciesObs | async"
-                             [selectedPreservationPolicies]="selectedPreservationPoliciesObs | async"
-                             [selectedDisseminationPolicies]="selectedDisseminationPoliciesObs | async"
-                             [selectedPersonRole]="selectedPersonRoleObs | async"
-                             [selectedFundingAgencies]="selectedFundingAgenciesObs | async"
-                             [selectedInstitutions]="selectedInstitutionsObs | async"
-                             [listSubmissionPolicies]="listSubmissionPoliciesObs | async"
-                             [listPreservationPolicies]="listPreservationPoliciesObs | async"
-                             [listDisseminationPolicies]="listDisseminationPoliciesObs | async"
-                             [researchDomainSources]="researchDomainSourcesObs | async"
-                             [defaultPlatformLicenseId]="(systemPropertyObs | async)?.defaultLicense"
-                             [listRole]="listRoleObs | async"
-                             [readonly]="!isEdit"
-                             [editAvailable]="editAvailable"
-                             (checkAvailableChange)="checkAvailable($event)"
-                             (submitChange)="update($event)"
-                             (dirtyChange)="updateCanDeactivate($event)"
-                             (navigate)="navigate($event)"
-                             (editChange)="edit()"
-    ></dlcm-admin-orgunit-form>
-  </div>
-</lib-empty-container>
diff --git a/src/app/features/admin/orgunit/components/routables/admin-orgunit-tabs/admin-org-unit-tabs.routable.html b/src/app/features/admin/orgunit/components/routables/admin-orgunit-tabs/admin-org-unit-tabs.routable.html
deleted file mode 100644
index 5315798bffdb45a6e2214f74ffb807517be4be3c..0000000000000000000000000000000000000000
--- a/src/app/features/admin/orgunit/components/routables/admin-orgunit-tabs/admin-org-unit-tabs.routable.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-<div>
-org unit id: {{  this._resId }}
-</div>
-
-<dlcm-shared-tabs-container [tabs]="listTabs"
-                            [isLoading]="isLoadingObs | async"
-                            (tabChange)="navigateToTab($event)"
-></dlcm-shared-tabs-container>
-
-<div class="tab-content">
-  <router-outlet></router-outlet>
-</div>
diff --git a/src/app/features/admin/orgunit/components/routables/admin-orgunit-tabs/admin-org-unit-tabs.routable.scss b/src/app/features/admin/orgunit/components/routables/admin-orgunit-tabs/admin-org-unit-tabs.routable.scss
deleted file mode 100644
index 5aa6f0b09cc551128023d674b4281549a6335bff..0000000000000000000000000000000000000000
--- a/src/app/features/admin/orgunit/components/routables/admin-orgunit-tabs/admin-org-unit-tabs.routable.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-@import "../sass/abstracts/variables";
-@import "../sass/abstracts/mixins";
-@import "./../../../../../../shared/components/routables/shared-abstract-detail-edit-common/shared-abstract-detail-edit-common.routable";
-
-:host {
-
-}
diff --git a/src/app/features/admin/orgunit/components/routables/admin-orgunit-tabs/admin-orgunit-tabs.routable.ts b/src/app/features/admin/orgunit/components/routables/admin-orgunit-tabs/admin-orgunit-tabs.routable.ts
deleted file mode 100644
index 65caf5ac914d35d4abeae47b1c2e7e54e547c33a..0000000000000000000000000000000000000000
--- a/src/app/features/admin/orgunit/components/routables/admin-orgunit-tabs/admin-orgunit-tabs.routable.ts
+++ /dev/null
@@ -1,80 +0,0 @@
-import {SharedAbstractDetailEditRoutable} from "@shared/components/routables/shared-abstract-detail-edit/shared-abstract-detail-edit.routable";
-import {OrganizationalUnit} from "@models";
-import {ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit} from "@angular/core";
-import {AdminOrganizationalUnitStateModel} from "@admin/orgunit/stores/admin-organizational-unit.state";
-import {Actions, Store} from "@ngxs/store";
-import {ActivatedRoute, Router} from "@angular/router";
-import {MatDialog} from "@angular/material/dialog";
-import {SecurityService} from "@shared/services/security.service";
-import {LocalStateEnum} from "@shared/enums/local-state.enum";
-import {adminOrgUnitActionNameSpace} from "@admin/orgunit/stores/admin-organizational-unit.action";
-import {Tab} from "@shared/components/containers/shared-tabs/shared-tabs.container";
-import {AdminRoutesEnum, AppRoutesEnum, DepositRoutesEnum, RoutesEnum} from "@shared/enums/routes.enum";
-import {IconNameEnum} from "@shared/enums/icon-name.enum";
-import {MARK_AS_TRANSLATABLE} from "solidify-frontend";
-import {DipTabEnum} from "@preservation/dip/enums/dip-tab.enum";
-import {DipHelper} from "@preservation/dip/helpers/dip.helper";
-import {Navigate} from "@ngxs/router-plugin";
-
-@Component({
-  selector: "dlcm-admin-org-unit-tabs-routable",
-  templateUrl: "./admin-org-unit-tabs.routable.html",
-  styleUrls: ["./admin-org-unit-tabs.routable.scss"],
-  changeDetection: ChangeDetectionStrategy.OnPush,
-})
-export class AdminOrgUnitTabsRoutable extends SharedAbstractDetailEditRoutable<OrganizationalUnit, AdminOrganizationalUnitStateModel> implements OnInit {
-  readonly KEY_PARAM_NAME: keyof OrganizationalUnit & string;
-
-  listTabs: Tab[] = [
-    {
-      id: TabEnum.METADATA,
-      suffixUrl: DepositRoutesEnum.metadata,
-      icon: IconNameEnum.metadata,
-      titleToTranslate: MARK_AS_TRANSLATABLE("admin.organizationalUnit.detail"),
-      route: () => [...this.rootUrl, AdminRoutesEnum.organizationalUnitDetail, this._resId, AdminRoutesEnum.organizationalUnitDetail],
-    },
-    {
-      id: TabEnum.ADDITIONAL_FIELDS_FORM,
-      suffixUrl: DepositRoutesEnum.metadata,
-      icon: IconNameEnum.files,
-      titleToTranslate: MARK_AS_TRANSLATABLE("admin.organizationalUnit.additionalFieldsForm"),
-      route: () => [...this.rootUrl, AdminRoutesEnum.organizationalUnitDetail, this._resId, AdminRoutesEnum.organizationalUnitAdditionalFieldsForm],
-    },
-  ];
-
-  private get rootUrl(): string[] {
-    return [AppRoutesEnum.admin, AdminRoutesEnum.organizationalUnit];
-  }
-
-  constructor(protected readonly _store: Store,
-              protected readonly _route: ActivatedRoute,
-              protected readonly _actions$: Actions,
-              protected readonly _changeDetector: ChangeDetectorRef,
-              protected readonly _dialog: MatDialog,
-              protected readonly _router: Router,
-              private readonly _securityService: SecurityService) {
-    super(_store, _route, _actions$, _changeDetector, _dialog, LocalStateEnum.admin_organizationalUnit, adminOrgUnitActionNameSpace, LocalStateEnum.admin);
-    this.retrieveResIdFromUrl();
-  }
-
-  protected getSubResourceWithParentId(id: string): void {
-  }
-
-  navigateToTab(tabSelected: Tab): void {
-    let tabRouteSelected;
-    if (tabSelected.id === TabEnum.METADATA) {
-      tabRouteSelected = AdminRoutesEnum.organizationalUnitDetail;
-    }
-
-    if (tabSelected.id === TabEnum.ADDITIONAL_FIELDS_FORM) {
-      tabRouteSelected = AdminRoutesEnum.organizationalUnitAdditionalFieldsForm;
-    }
-    const path = [RoutesEnum.adminOrganizationalUnit, this._resId, tabRouteSelected];
-    this._store.dispatch(new Navigate(path));
-  }
-}
-
-enum TabEnum {
-  METADATA = "METADATA",
-  ADDITIONAL_FIELDS_FORM = "ADDITIONAL_FIELDS_FORM",
-}
diff --git a/src/app/features/deposit/components/routables/deposit-detail-edit/deposit-detail-edit.routable.ts b/src/app/features/deposit/components/routables/deposit-detail-edit/deposit-detail-edit.routable.ts
index 1ccc6c0d877ba98de8d0b0676e53cb3d437fcc4b..0fe38881ad31038e969cf1951b028a72f8adb43c 100644
--- a/src/app/features/deposit/components/routables/deposit-detail-edit/deposit-detail-edit.routable.ts
+++ b/src/app/features/deposit/components/routables/deposit-detail-edit/deposit-detail-edit.routable.ts
@@ -24,7 +24,6 @@ import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
 import {AppState} from "@app/stores/app.state";
 import {AppOrgUnitPersonRoleAction} from "@app/stores/organizational-unit-person-role/app-organizational-unit-person-role.action";
 import {ModeDepositTabEnum} from "@deposit/enums/mode-deposit-tab.enum";
-import {DepositHelper} from "@deposit/helpers/deposit.helper";
 import {DepositService} from "@deposit/services/deposit.service";
 import {DepositCollectionAction} from "@deposit/stores/collection/deposit-collection.action";
 import {DepositCollectionState} from "@deposit/stores/collection/deposit-collection.state";
@@ -208,10 +207,6 @@ export class DepositDetailEditRoutable extends SharedAbstractDetailEditRoutable<
     },
   ];
 
-  get depositHelper(): typeof DepositHelper {
-    return DepositHelper;
-  }
-
   constructor(protected readonly _store: Store,
               protected readonly _route: ActivatedRoute,
               protected readonly _actions$: Actions,
diff --git a/src/app/features/deposit/components/routables/deposit-metadata/deposit-metadata.routable.ts b/src/app/features/deposit/components/routables/deposit-metadata/deposit-metadata.routable.ts
index cdac4594540e30d06cf64428607977d02f44ef1d..d8a7785d9a93626d9ad5ef6473875db60f23422c 100644
--- a/src/app/features/deposit/components/routables/deposit-metadata/deposit-metadata.routable.ts
+++ b/src/app/features/deposit/components/routables/deposit-metadata/deposit-metadata.routable.ts
@@ -64,6 +64,7 @@ import {
   isNotNullNorUndefined,
   MemoizedUtil,
   Override,
+  OverrideProperty,
 } from "solidify-frontend";
 
 @Component({
@@ -91,6 +92,7 @@ export class DepositMetadataRoutable extends SharedAbstractDetailEditRoutable<De
 
   _orgUnitResId: string;
 
+  @OverrideProperty()
   @ViewChild("formPresentational")
   readonly formPresentational: DepositFormPresentational;
 
diff --git a/src/app/shared/enums/routes.enum.ts b/src/app/shared/enums/routes.enum.ts
index 5f9e05e792b104a1f40ed77d66599f314780d2ba..7593ef9aab494729b1bf9d1c5141f432d61d1902 100644
--- a/src/app/shared/enums/routes.enum.ts
+++ b/src/app/shared/enums/routes.enum.ts
@@ -88,6 +88,7 @@ export enum AdminRoutesEnum {
   organizationalUnit = "organizational-unit",
   organizationalUnitCreate = "create",
   organizationalUnitDetail = "detail",
+  organizationalUnitData = "data",
   organizationalUnitEdit = "edit",
   organizationalUnitAdditionalFieldsForm = "additional-fields-form",
 
@@ -198,7 +199,6 @@ export enum PreservationPlanningRoutesEnum {
   sipCollections = "collections",
 }
 
-
 export class RoutesEnum implements RoutesEnum {
   static index: string = AppRoutesEnum.index;
   static login: string = AppRoutesEnum.login;
diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json
index 0443d6d1813225e1320fe559924de84c1237b106..611257dbb44cf6156d55ed162fb85f8511cac4e5 100644
--- a/src/assets/i18n/de.json
+++ b/src/assets/i18n/de.json
@@ -468,6 +468,52 @@
       }
     },
     "organizationalUnit": {
+      "additionalField": {
+        "form": {
+          "description": "Beschreibung",
+          "name": "Name",
+          "type": "Typ"
+        }
+      },
+      "additionalFields": {
+        "modal": {
+          "detailCreateUpdate": {
+            "button": {
+              "close": "Schließen",
+              "confirm": "Bestätigen Sie"
+            },
+            "title": {
+              "create": "Erstellen einer neuen zusätzlichen Metadaten-Vorlage",
+              "detail": "Detail eines zusätzlichen Metadatenmodells",
+              "update": "Erstellen einer neuen zusätzlichen Metadaten-Vorlage"
+            }
+          },
+          "rename": {
+            "button": {
+              "close": "Schließen",
+              "confirmChange": "Bestätigen Sie"
+            },
+            "name": "Name",
+            "title": "Umbenennen des zusätzlichen Metadatenmodells"
+          }
+        },
+        "table": {
+          "header": {
+            "creation": {
+              "when": "Erstellungsdatum"
+            },
+            "name": "Name"
+          }
+        }
+      },
+      "additionalFieldsForm": {
+        "notification": {
+          "unableToCreate": "Die zusätzliche Metadaten-Vorlage kann nicht erstellt werden"
+        }
+      },
+      "button": {
+        "createAdditionalFieldsForm": "Zusätzliche Metadaten erstellen"
+      },
       "dialog": {
         "delete": {
           "cancel": "Abbrechen",
@@ -540,6 +586,10 @@
         }
       },
       "refresh": "Aktualisieren Sie",
+      "tab": {
+        "additionalFieldsForm": "Zusätzliche Metadaten",
+        "detail": "Einzelheiten"
+      },
       "table": {
         "header": {
           "closingDate": "Einsendeschluss",
@@ -1141,8 +1191,12 @@
         "root": "OAuth2-Kunden"
       },
       "organizationalUnit": {
-        "create": "erstellen",
-        "edit": "bearbeiten",
+        "additionalFieldsForm": {
+          "list": "Liste"
+        },
+        "create": "Crstellen",
+        "detail": "Einzelheiten",
+        "edit": "Bearbeiten",
         "root": "Organisatorische Einheiten"
       },
       "person": {
@@ -1260,6 +1314,7 @@
     "list": {
       "action": {
         "changeDataCategory": "Datenkategorie/-typ ändern",
+        "createNewVersionFromExistingOne": "Erstellen Sie daraus eine neue Version",
         "delete": "löschen",
         "download": "herunterladen",
         "errorMessage": "Fehlermeldung anzeigen",
@@ -1269,6 +1324,7 @@
         "history": "Geschichte",
         "info": "Informationen",
         "move": "verschieben",
+        "rename": "Umbenennen",
         "resume": "Lebenslauf",
         "start": "Führen Sie  aus.",
         "validate": "Ignorieren Sie nicht"
@@ -1786,6 +1842,11 @@
     },
     "inEditMode": "Sie befinden sich im Bearbeitungsmodus"
   },
+  "formDescription": {
+    "typeEnum": {
+      "formly": "Formly"
+    }
+  },
   "home": {
     "archive": {
       "browsing": {
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
index 3249d47403006d0e112d82cb54eab983ceaa62ee..00bd8cd13bd8e2159c2c23205b23c9ae14e90b5d 100644
--- a/src/assets/i18n/en.json
+++ b/src/assets/i18n/en.json
@@ -468,6 +468,52 @@
       }
     },
     "organizationalUnit": {
+      "additionalField": {
+        "form": {
+          "description": "Description",
+          "name": "Name",
+          "type": "Type"
+        }
+      },
+      "additionalFields": {
+        "modal": {
+          "detailCreateUpdate": {
+            "button": {
+              "close": "Close",
+              "confirm": "Confirm"
+            },
+            "title": {
+              "create": "Creating a new additional metadata template",
+              "detail": "Detail of additional metadata model",
+              "update": "Creating a new additional metadata template"
+            }
+          },
+          "rename": {
+            "button": {
+              "close": "Close",
+              "confirmChange": "Confirm"
+            },
+            "name": "Name",
+            "title": "Renaming the additional metadata model"
+          }
+        },
+        "table": {
+          "header": {
+            "creation": {
+              "when": "Creation date"
+            },
+            "name": "Name"
+          }
+        }
+      },
+      "additionalFieldsForm": {
+        "notification": {
+          "unableToCreate": "Unable to create the additional metadata template"
+        }
+      },
+      "button": {
+        "createAdditionalFieldsForm": "Create additional metadata"
+      },
       "dialog": {
         "delete": {
           "cancel": "Cancel",
@@ -540,6 +586,10 @@
         }
       },
       "refresh": "Refresh",
+      "tab": {
+        "additionalFieldsForm": "Additional metadata",
+        "detail": "Detail"
+      },
       "table": {
         "header": {
           "closingDate": "Closing",
@@ -1141,7 +1191,11 @@
         "root": "OAuth2 Clients"
       },
       "organizationalUnit": {
+        "additionalFieldsForm": {
+          "list": "List"
+        },
         "create": "Create",
+        "detail": "Detail",
         "edit": "Edit",
         "root": "Organizational units"
       },
@@ -1260,6 +1314,7 @@
     "list": {
       "action": {
         "changeDataCategory": "Change Data Category/Type",
+        "createNewVersionFromExistingOne": "Create a new version from it",
         "delete": "Delete",
         "download": "Download",
         "errorMessage": "Show error message",
@@ -1269,6 +1324,7 @@
         "history": "History",
         "info": "Informations",
         "move": "Move",
+        "rename": "Rename",
         "resume": "Resume",
         "start": "Run",
         "validate": "Do not ignore"
@@ -1786,6 +1842,11 @@
     },
     "inEditMode": "You are in edit mode"
   },
+  "formDescription": {
+    "typeEnum": {
+      "formly": "Formly"
+    }
+  },
   "home": {
     "archive": {
       "browsing": {
diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json
index 9ff8c15f4b36075719321d5d2f5a359befd736dd..d3f5fee0749dd62940ec6ab4af84b301de65bcbb 100644
--- a/src/assets/i18n/fr.json
+++ b/src/assets/i18n/fr.json
@@ -468,17 +468,52 @@
       }
     },
     "organizationalUnit": {
-      "additionalFieldsForm" : "Métadonnées supplémentaires",
-      "additionalFields" : {
-        "table" : {
-          "header" : {
-            "name" : "Nom",
-            "creation" : {
-              "when" : "Date de création"
+      "additionalField": {
+        "form": {
+          "description": "Description",
+          "name": "Nom",
+          "type": "Type"
+        }
+      },
+      "additionalFields": {
+        "modal": {
+          "detailCreateUpdate": {
+            "button": {
+              "close": "Fermer",
+              "confirm": "Confirmer"
+            },
+            "title": {
+              "create": "Création d'un nouveau modèle de métadonnées supplémentaires",
+              "detail": "Détail modèle de métadonnées supplémentaires",
+              "update": "Création d'un nouveau modèle de métadonnées supplémentaires"
             }
+          },
+          "rename": {
+            "button": {
+              "close": "Fermer",
+              "confirmChange": "Confirmer"
+            },
+            "name": "Nom",
+            "title": "Renommage du modèle de métadonnées supplémentaire"
+          }
+        },
+        "table": {
+          "header": {
+            "creation": {
+              "when": "Date de création"
+            },
+            "name": "Nom"
           }
         }
       },
+      "additionalFieldsForm": {
+        "notification": {
+          "unableToCreate": "Impossible de créer le modèle de métadonnées supplémentaires"
+        }
+      },
+      "button": {
+        "createAdditionalFieldsForm": "Créer métadonnées supplémentaires"
+      },
       "dialog": {
         "delete": {
           "cancel": "Annuler",
@@ -487,7 +522,6 @@
           "title": "Confirmer suppresion"
         }
       },
-      "detail" : "Détail",
       "form": {
         "closingDate": "Fermeture",
         "description": {
@@ -552,6 +586,10 @@
         }
       },
       "refresh": "Rafraichir",
+      "tab": {
+        "additionalFieldsForm": "Métadonnées supplémentaires",
+        "detail": "Détail"
+      },
       "table": {
         "header": {
           "closingDate": "Fermeture",
@@ -1153,7 +1191,11 @@
         "root": "Clients OAuth2"
       },
       "organizationalUnit": {
+        "additionalFieldsForm": {
+          "list": "Liste"
+        },
         "create": "Créer",
+        "detail": "Détail",
         "edit": "Modifier",
         "root": "Unités organisationelles"
       },
@@ -1272,6 +1314,7 @@
     "list": {
       "action": {
         "changeDataCategory": "Changer Catégorie/Type de données",
+        "createNewVersionFromExistingOne": "Créer une nouvelle version à partir de celle-ci",
         "delete": "Supprimer",
         "download": "Télécharger",
         "errorMessage": "Afficher le message d'erreur",
@@ -1281,6 +1324,7 @@
         "history": "Historique",
         "info": "Informations",
         "move": "Déplacer",
+        "rename": "Renommer",
         "resume": "Relancer",
         "start": "Lancer",
         "validate": "Ne pas ignorer"
@@ -1798,6 +1842,11 @@
     },
     "inEditMode": "Vous êtes en mode édition"
   },
+  "formDescription": {
+    "typeEnum": {
+      "formly": "Formly"
+    }
+  },
   "home": {
     "archive": {
       "browsing": {