diff --git a/frontend/src/lib/components/user/UserGroupsSection.svelte b/frontend/src/lib/components/user/UserGroupsSection.svelte
new file mode 100644
index 00000000..911cde23
--- /dev/null
+++ b/frontend/src/lib/components/user/UserGroupsSection.svelte
@@ -0,0 +1,24 @@
+
+
+
+ {#each groups as group (group.id)}
+
+ {/each}
+
diff --git a/frontend/src/lib/components/user/UserPasswordSection.svelte b/frontend/src/lib/components/user/UserPasswordSection.svelte
new file mode 100644
index 00000000..cf25b239
--- /dev/null
+++ b/frontend/src/lib/components/user/UserPasswordSection.svelte
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
diff --git a/frontend/src/lib/components/user/UserProfileSection.svelte b/frontend/src/lib/components/user/UserProfileSection.svelte
new file mode 100644
index 00000000..b3b8d214
--- /dev/null
+++ b/frontend/src/lib/components/user/UserProfileSection.svelte
@@ -0,0 +1,95 @@
+
+
+
diff --git a/frontend/src/routes/admin/users/[id]/+page.svelte b/frontend/src/routes/admin/users/[id]/+page.svelte
index 85369c6d..2159d6ed 100644
--- a/frontend/src/routes/admin/users/[id]/+page.svelte
+++ b/frontend/src/routes/admin/users/[id]/+page.svelte
@@ -1,41 +1,13 @@
@@ -76,77 +48,13 @@ function handleBirthDateInput(e: Event) {
{m.profile_section_personal()}
-
-
+
@@ -154,21 +62,7 @@ function handleBirthDateInput(e: Event) {
{m.admin_col_groups()}
-
-
- {#each data.groups as group (group.id)}
-
- {/each}
-
+
@@ -176,30 +70,7 @@ function handleBirthDateInput(e: Event) {
{m.admin_label_new_password_optional()}
-
-
-
-
-
-
+
diff --git a/frontend/src/routes/admin/users/new/+page.svelte b/frontend/src/routes/admin/users/new/+page.svelte
index 01fe3e7f..ae79f96b 100644
--- a/frontend/src/routes/admin/users/new/+page.svelte
+++ b/frontend/src/routes/admin/users/new/+page.svelte
@@ -1,31 +1,11 @@
@@ -55,118 +35,19 @@ function handleBirthDateInput(e: Event) {