diff --git a/cypress/e2e/register.cy.ts b/cypress/e2e/register.cy.ts
index 508e05569bccb1553a227967aad3bf9e55ee3625..44724e1d00affa893cc9760dcf64019c82f7bf77 100644
--- a/cypress/e2e/register.cy.ts
+++ b/cypress/e2e/register.cy.ts
@@ -5,8 +5,8 @@ describe('Register', () => {
     })
 
     function fullInput() {
-        cy.get('input[name="firstname"]').type('firstname')
-        cy.get('input[name="lastname"]').type('lastname')
+        cy.get('input[name="firstName"]').type('firstName')
+        cy.get('input[name="lastName"]').type('lastName')
         cy.get('input[name="email"]').type('email@test.work')
         cy.get('input[name="username"]').type('username')
         cy.get('input[name="password"]').type('Password123!')
diff --git a/src/components/FormLogin.vue b/src/components/FormLogin.vue
index e676c6c6fec21252758cd1fe527d2c2985ecc01a..3295165e4da1d9b64376d364d468055a35d81452 100644
--- a/src/components/FormLogin.vue
+++ b/src/components/FormLogin.vue
@@ -16,8 +16,8 @@ const userStore = useUserStore()
 
 const isEmailValid = computed(() => emailRegex.test(resetEmail.value))
 const isSendingEmail = ref(false)
-const successMessage = ref<string>('')
-const modalErrorMessage = ref<string>('')
+const successMessage = ref<string | null>(null)
+const modalErrorMessage = ref<string | null>(null)
 
 const submitForm = () => {
     userStore.login(username.value, password.value)
@@ -27,42 +27,31 @@ const toggleShowPassword = () => {
     showPassword.value = !showPassword.value
 }
 
-const openForgotPasswordModal = (event: MouseEvent) => {
-    event.preventDefault()
-    isModalOpen.value = true
-}
-
 const submitReset = async () => {
     isSendingEmail.value = true
-    modalErrorMessage.value = ''
-    successMessage.value = ''
-    try {
-        const response = await axios.post(
-            'http://localhost:8080/forgotPassword/changePasswordRequest',
-            {
-                email: resetEmail.value
-            }
-        )
-        successMessage.value =
-            'E-posten er sendt. Vennligst sjekk innboksen din for instrukser. OBS: E-posten kan havne i spam-mappen'
-        isSendingEmail.value = false
-        setTimeout(() => {
-            isModalOpen.value = false
-            successMessage.value = ''
-        }, 5000)
-    } catch (error) {
-        console.error(error)
-        modalErrorMessage.value = 'Noe gikk galt. Vennligst prøv igjen.'
-        isSendingEmail.value = false
-    }
+
+    await axios
+        .post('http://localhost:8080/forgotPassword/changePasswordRequest', {
+            email: resetEmail.value
+        })
+        .then(() => {
+            successMessage.value =
+                'E-posten er sendt. Vennligst sjekk innboksen din for instrukser. OBS: E-posten kan havne i spam-mappen'
+        })
+        .catch((error) => {
+            console.error(error)
+            modalErrorMessage.value = 'Noe gikk galt. Vennligst prøv igjen.'
+        })
+
+    isSendingEmail.value = false
 }
 
 const closeModal = () => {
     isModalOpen.value = false
     isSendingEmail.value = false
-    modalErrorMessage.value = ''
+    modalErrorMessage.value = null
     resetEmail.value = ''
-    successMessage.value = ''
+    successMessage.value = null
 }
 
 watch(
@@ -101,7 +90,7 @@ watch(
                     {{ showPassword ? '🔓' : '🔒' }}
                 </button>
                 <a
-                    @click="openForgotPasswordModal"
+                    @click="isModalOpen = true"
                     class="transition-none absolute right-3 top-10 hover:underline hover:bg-transparent text-[#ef9691] hover:transition-none hover:p-0 cursor-pointer"
                     >Glemt passord?</a
                 >
@@ -120,54 +109,57 @@ watch(
         </div>
     </div>
     <modal-component
+        v-if="isModalOpen"
         :title="'Glemt passord'"
         :message="'Vennligst skriv inn e-posten din for å endre passordet.'"
-        :is-modal-open="isModalOpen"
-        @close="closeModal"
     >
-        <template v-slot:input>
-            <div v-if="isSendingEmail" class="flex justify-center items-center">
-                <div
-                    class="p-3 animate-spin drop-shadow-2xl bg-gradient-to-r from-lime-500 from-30% to-green-600 to-90% md:w-18 md:h-20 h-20 w-20 aspect-square rounded-full"
-                >
-                    <div class="rounded-full h-full w-full bg-slate-100 background-blur-md"></div>
-                </div>
-            </div>
-            <div v-else-if="successMessage">
-                <p class="text-green-500 text-center">{{ successMessage }}</p>
+        <div v-if="isSendingEmail" class="flex justify-center items-center">
+            <div
+                class="p-3 animate-spin bg-gradient-to-r from-lime-500 from-30% to-green-600 to-90% md:w-18 md:h-20 h-20 w-20 aspect-square rounded-full"
+            >
+                <div class="rounded-full h-full w-full bg-slate-100"></div>
             </div>
-            <div v-else-if="modalErrorMessage">
-                <p class="text-red-500 text-center">{{ modalErrorMessage }}</p>
+        </div>
+        <div v-else-if="successMessage">
+            <p class="text-green-500 text-center">{{ successMessage }}</p>
+            <button
+                class="active-button font-bold py-2 px-4 w-1/2 mt-4 border-2 disabled:border-transparent"
+                @click="closeModal"
+            >
+                Lukk
+            </button>
+        </div>
+        <div v-else-if="modalErrorMessage">
+            <p class="text-red-500 text-center">{{ modalErrorMessage }}</p>
+            <button
+                class="active-button font-bold py-2 px-4 w-1/2 mt-4 border-2 disabled:border-transparent"
+                @click="closeModal"
+            >
+                Lukk
+            </button>
+        </div>
+        <div v-else>
+            <input
+                v-model="resetEmail"
+                class="border border-gray-300 p-2 w-full mb-7"
+                placeholder="Skriv e-postadressen din her"
+                type="email"
+            />
+            <div class="flex gap-5 mt-4">
                 <button
+                    :disabled="!isEmailValid"
+                    class="active-button font-bold py-2 px-4 w-1/2 border-2 disabled:border-transparent"
+                    @click="submitReset"
+                >
+                    Send mail
+                </button>
+                <button
+                    class="active-button font-bold py-2 px-4 w-1/2 border-2 disabled:border-transparent"
                     @click="closeModal"
-                    class="active-button font-bold py-2 px-4 w-1/2 mt-4 border-2 disabled:border-transparent"
                 >
                     Lukk
                 </button>
             </div>
-            <div v-else>
-                <input
-                    type="email"
-                    v-model="resetEmail"
-                    class="border border-gray-300 p-2 w-full mb-7"
-                    placeholder="Skriv e-postadressen din her"
-                />
-                <div class="flex gap-5 mt-4">
-                    <button
-                        :disabled="!isEmailValid"
-                        @click="submitReset"
-                        class="active-button font-bold py-2 px-4 w-1/2 border-2 disabled:border-transparent"
-                    >
-                        Send mail
-                    </button>
-                    <button
-                        @click="closeModal"
-                        class="active-button font-bold py-2 px-4 w-1/2 border-2 disabled:border-transparent"
-                    >
-                        Lukk
-                    </button>
-                </div>
-            </div>
-        </template>
+        </div>
     </modal-component>
 </template>
diff --git a/src/components/FormRegister.vue b/src/components/FormRegister.vue
index 2863b6aa8d4f9fd47594ca36b2c5ba33d72bd2cc..f28be87ece27d5a2f706b421a457b01787c855b0 100644
--- a/src/components/FormRegister.vue
+++ b/src/components/FormRegister.vue
@@ -3,8 +3,8 @@ import { computed, ref, watch } from 'vue'
 import { useUserStore } from '@/stores/userStore'
 import ToolTip from '@/components/ToolTip.vue'
 
-const firstname = ref<string>('')
-const lastname = ref<string>('')
+const firstName = ref<string>('')
+const lastName = ref<string>('')
 const email = ref<string>('')
 const username = ref<string>('')
 const password = ref<string>('')
@@ -21,8 +21,8 @@ const emailRegex =
 const usernameRegex = /^[ÆØÅæøåA-Za-z][æÆøØåÅA-Za-z0-9_]{2,29}$/
 const passwordRegex = /^(?=.*[0-9])(?=.*[a-zæøå])(?=.*[ÆØÅA-Z])(?=.*[@#$%^&+=!])(?=\S+$).{8,30}$/
 
-const isFirstNameValid = computed(() => nameRegex.test(firstname.value) && firstname.value)
-const isLastNameValid = computed(() => nameRegex.test(lastname.value) && lastname.value)
+const isFirstNameValid = computed(() => nameRegex.test(firstName.value) && firstName.value)
+const isLastNameValid = computed(() => nameRegex.test(lastName.value) && lastName.value)
 const isEmailValid = computed(() => emailRegex.test(email.value))
 const isUsernameValid = computed(() => usernameRegex.test(username.value))
 const isPasswordValid = computed(() => passwordRegex.test(password.value))
@@ -35,7 +35,7 @@ const isFormInvalid = computed(
 )
 
 const submitForm = () => {
-    userStore.register(firstname.value, lastname.value, email.value, username.value, password.value)
+    userStore.register(firstName.value, lastName.value, email.value, username.value, password.value)
 }
 
 const toggleShowPassword = () => {
@@ -60,8 +60,8 @@ watch(
                 />
             </div>
             <input
-                v-model="firstname"
-                name="firstname"
+                v-model="firstName"
+                name="firstName"
                 :class="{ 'border-2 border-lime-400': isFirstNameValid }"
                 placeholder="Skriv inn fornavn"
                 type="text"
@@ -75,8 +75,8 @@ watch(
                 />
             </div>
             <input
-                v-model="lastname"
-                name="lastname"
+                v-model="lastName"
+                name="lastName"
                 :class="{ 'border-2 border-lime-400': isLastNameValid }"
                 placeholder="Skriv inn etternavn"
                 type="text"
diff --git a/src/components/ModalComponent.vue b/src/components/ModalComponent.vue
index af2c54296db630cc3e6b305707d9debaee16aaf3..c8d84c67286bbafb9cbeb39832c0e087d516c323 100644
--- a/src/components/ModalComponent.vue
+++ b/src/components/ModalComponent.vue
@@ -9,8 +9,11 @@
 
             <slot />
 
-            <div class="buttons flex flex-col justify-center items-center gap-3 mt-3 w-full">
+            <div class="buttons flex flex-row justify-center items-center gap-3 mt-3 w-full">
                 <slot name="buttons"></slot>
+                <button v-if="closeButton" class="button primary" @click="$emit('close')">
+                    Lukk
+                </button>
             </div>
         </div>
     </div>
@@ -26,6 +29,11 @@ defineProps({
         type: Boolean,
         default: true,
         required: false
+    },
+    closeButton: {
+        type: Boolean,
+        default: false,
+        required: false
     }
 })
 
diff --git a/src/components/__tests__/FormRegisterTest.spec.ts b/src/components/__tests__/FormRegisterTest.spec.ts
index 935801335b6ca43cd26082a3ea8a25d07a33a833..f3604b5c4a4351e9cc2f8cf781285983b102a679 100644
--- a/src/components/__tests__/FormRegisterTest.spec.ts
+++ b/src/components/__tests__/FormRegisterTest.spec.ts
@@ -24,8 +24,8 @@ describe('FormRegister', () => {
     })
 
     function successfulFormFill() {
-        wrapper.find('input[name="firstname"]').setValue('firstname')
-        wrapper.find('input[name="lastname"]').setValue('lastname')
+        wrapper.find('input[name="firstName"]').setValue('firstName')
+        wrapper.find('input[name="lastName"]').setValue('lastName')
         wrapper.find('input[name="email"]').setValue('email@test.work')
         wrapper.find('input[name="username"]').setValue('username')
         wrapper.find('input[name="password"]').setValue('Password123!')
@@ -37,15 +37,15 @@ describe('FormRegister', () => {
         expect(wrapper.text()).toContain('Passord')
         expect(wrapper.text()).toContain('Registrer deg')
 
-        expect(wrapper.find('input[name="firstname"]').exists()).toBe(true)
-        expect(wrapper.find('input[name="lastname"]').exists()).toBe(true)
+        expect(wrapper.find('input[name="firstName"]').exists()).toBe(true)
+        expect(wrapper.find('input[name="lastName"]').exists()).toBe(true)
         expect(wrapper.find('input[name="email"]').exists()).toBe(true)
         expect(wrapper.find('input[name="username"]').exists()).toBe(true)
         expect(wrapper.find('input[name="password"]').exists()).toBe(true)
         expect(wrapper.find('input[name="confirm"]').exists()).toBe(true)
 
-        expect((wrapper.find('input[name="firstname"]').element as HTMLInputElement).value).toBe('')
-        expect((wrapper.find('input[name="lastname"]').element as HTMLInputElement).value).toBe('')
+        expect((wrapper.find('input[name="firstName"]').element as HTMLInputElement).value).toBe('')
+        expect((wrapper.find('input[name="lastName"]').element as HTMLInputElement).value).toBe('')
         expect((wrapper.find('input[name="email"]').element as HTMLInputElement).value).toBe('')
         expect((wrapper.find('input[name="username"]').element as HTMLInputElement).value).toBe('')
         expect((wrapper.find('input[name="password"]').element as HTMLInputElement).value).toBe('')
diff --git a/src/router/index.ts b/src/router/index.ts
index 9bec3631e31d96d8c09d0ea0e33806acacd68f67..b50a37b654c4d822fb8226a29a1da8e0f4eef800 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -163,24 +163,20 @@ router.beforeEach(async (to, from, next) => {
 
     if (!loginCredentials) {
         if (bioCredentials && to.name !== 'login-bio') {
-            console.log('Bio login')
             await router.replace({ name: 'login-bio', params: { username: bioCredentials } })
             return next({ name: 'login-bio', params: { username: bioCredentials } })
         } else if (authRequired && !bioCredentials && to.name !== 'login') {
-            console.log('Normal login')
             await router.replace({ name: 'login' })
             return next({ name: 'login' })
         } else if (!authRequired) {
-            console.log('Public page')
             next()
         }
     } else {
-        if (userStore.user.isConfigured == false) {
+        if (!userStore.user.isConfigured) {
             await userStore.checkIfUserConfigured()
         }
 
         const isConfigured = userStore.user.isConfigured
-
         if (configRequired && !isConfigured) {
             await router.replace({ name: 'configure-biometric' })
             return next({ name: 'configure-biometric' })
diff --git a/src/services/authInterceptor.ts b/src/services/authInterceptor.ts
index 315aba21cbd30a1d992f735a58bcaf2e86aa1fe5..e9c604619f788cec3a46cf142af7a1a983cf9693 100644
--- a/src/services/authInterceptor.ts
+++ b/src/services/authInterceptor.ts
@@ -1,6 +1,7 @@
 import type { AxiosResponse } from 'axios'
 import axios, { AxiosError } from 'axios'
 import router from '@/router'
+import { useUserStore } from '@/stores/userStore'
 
 const authInterceptor = axios.create({
     baseURL: 'http://localhost:8080',
@@ -38,7 +39,7 @@ authInterceptor.interceptors.response.use(
             const username = localStorage.getItem('spareStiUsername')
 
             if (!username) {
-                await router.push({ name: 'login' })
+                useUserStore().logout()
             } else {
                 await router.push({ name: 'login-bio', params: { username: username } })
             }
diff --git a/src/stores/userConfigStore.ts b/src/stores/userConfigStore.ts
index 9059f871fa3dde9522788c98f09673d4ac6300d5..2b5edbf17c9edc47d1e74e2d16d64a9bc3801305 100644
--- a/src/stores/userConfigStore.ts
+++ b/src/stores/userConfigStore.ts
@@ -2,30 +2,36 @@ import { ref } from 'vue'
 import { defineStore } from 'pinia'
 import authInterceptor from '@/services/authInterceptor'
 import { AxiosError } from 'axios'
+import type { ChallengeConfig } from '@/types/challengeConfig'
+import router from '@/router'
 
 export const useUserConfigStore = defineStore('userConfig', () => {
-    const role = ref('USER')
-    const experience = ref('')
-    const motivation = ref('')
-    const challengeTypeConfigs = ref(
-        [] as {
-            type: string
-            specificAmount: number
-            generalAmount: number
-        }[]
-    )
-    const accounts = ref({
-        savings: '',
-        spending: ''
+    const challengeConfig = ref<ChallengeConfig>({
+        experience: '',
+        motivation: '',
+        challengeTypeConfigs: []
     })
+
+    const savingAccount = ref({
+        accountType: 'SAVING',
+        accNumber: 0,
+        balance: 0
+    })
+
+    const spendingAccount = ref({
+        accountType: 'SPENDING',
+        accNumber: 0,
+        balance: 0
+    })
+
     const errorMessage = ref<string>('')
 
     const setExperience = (value: string) => {
-        experience.value = value
+        challengeConfig.value.experience = value
     }
 
     const setMotivation = (value: string) => {
-        motivation.value = value
+        challengeConfig.value.motivation = value
     }
 
     const addChallengeTypeConfig = (
@@ -33,64 +39,62 @@ export const useUserConfigStore = defineStore('userConfig', () => {
         specificAmount: number,
         generalAmount: number
     ) => {
-        challengeTypeConfigs.value.push({ type, specificAmount, generalAmount })
+        challengeConfig.value.challengeTypeConfigs.push({
+            type: type,
+            specificAmount: specificAmount,
+            generalAmount: generalAmount
+        })
     }
 
-    const postAccount = async (
-        accountType: 'SAVING' | 'SPENDING',
-        accNumber: string,
-        balance: number
-    ) => {
-        const payload = {
-            accountType,
-            accNumber,
-            balance
+    const setAccount = (type: 'SAVING' | 'SPENDING', accNumber: number) => {
+        if (type === 'SAVING') {
+            savingAccount.value.accNumber = accNumber
+        } else {
+            spendingAccount.value.accNumber = accNumber
         }
-        await authInterceptor
-            .post('/accounts', payload)
-            .then((response) => {
-                console.log('Success:', response.data)
+    }
+
+    const createConfig = () => {
+        authInterceptor
+            .post('/accounts', savingAccount.value)
+            .then(() => authInterceptor.post('/accounts', spendingAccount.value))
+            .then(() => authInterceptor.post('/config/challenge', challengeConfig.value))
+            .then(() => {
+                resetConfig()
+                return router.push({ name: 'home', query: { firstLogin: 'true' } })
             })
-            .catch((error) => {
-                const axiosError = error as AxiosError
-                errorMessage.value =
-                    (axiosError.response?.data as string) ||
-                    'An error occurred while posting account'
-                console.error('Error posting account:', errorMessage.value)
+            .catch((error: AxiosError) => {
+                console.error(error)
+                resetConfig()
+                return router.push({ name: 'configurations1' })
             })
     }
 
-    const postUserConfig = async () => {
-        const payload = {
-            experience: experience.value,
-            motivation: motivation.value,
-            challengeTypeConfigs: Array.from(challengeTypeConfigs.value)
+    const resetConfig = () => {
+        challengeConfig.value = {
+            experience: '',
+            motivation: '',
+            challengeTypeConfigs: []
+        }
+        savingAccount.value = {
+            accountType: 'SAVING',
+            accNumber: 0,
+            balance: 0
+        }
+        spendingAccount.value = {
+            accountType: 'SPENDING',
+            accNumber: 0,
+            balance: 0
         }
-        await authInterceptor
-            .post('/config/challenge', payload)
-            .then((response) => {
-                console.log('Success:', response.data)
-            })
-            .catch((error) => {
-                const axiosError = error as AxiosError
-                errorMessage.value =
-                    (axiosError.response?.data as string) ||
-                    'An error occurred while updating configuration'
-                console.error('Error updating configuration:', errorMessage.value)
-            })
     }
 
     return {
-        role,
-        experience,
-        motivation,
-        challengeTypeConfigs,
-        accounts,
+        challengeConfig,
         errorMessage,
         setExperience,
         setMotivation,
+        setAccount,
         addChallengeTypeConfig,
-        postAccount,
-        postUserConfig
+        createConfig
     }
 })
diff --git a/src/stores/userStore.ts b/src/stores/userStore.ts
index 35d6374e397c0c66a70dbe5abe36c30c5803fa9c..3bdb2eb0cf9532f9e598879ee43ac1df7b0580c4 100644
--- a/src/stores/userStore.ts
+++ b/src/stores/userStore.ts
@@ -11,28 +11,26 @@ import { base64urlToUint8array, initialCheckStatus, uint8arrayToBase64url } from
 import type { CredentialCreationOptions } from '@/types/CredentialCreationOptions'
 
 export const useUserStore = defineStore('user', () => {
-    const defaultUser: User = {
-        firstname: 'Firstname',
-        lastname: 'Lastname',
-        username: 'Username',
+    const user = ref<User>({
+        firstName: '',
+        lastName: '',
+        username: '',
         isConfigured: false
-    }
-
-    const user = ref<User>(defaultUser)
+    })
     const errorMessage = ref<string>('')
     const streak = ref<Streak>()
 
     const register = async (
-        firstname: string,
-        lastname: string,
+        firstName: string,
+        lastName: string,
         email: string,
         username: string,
         password: string
     ) => {
         await axios
             .post(`http://localhost:8080/auth/register`, {
-                firstName: firstname,
-                lastName: lastname,
+                firstName: firstName,
+                lastName: lastName,
                 email: email,
                 username: username,
                 password: password
@@ -40,8 +38,8 @@ export const useUserStore = defineStore('user', () => {
             .then((response) => {
                 sessionStorage.setItem('accessToken', response.data.accessToken)
 
-                user.value.firstname = firstname
-                user.value.lastname = lastname
+                user.value.firstName = firstName
+                user.value.lastName = lastName
                 user.value.username = username
 
                 router.push({ name: 'configure-biometric' })
@@ -61,8 +59,8 @@ export const useUserStore = defineStore('user', () => {
             .then((response) => {
                 sessionStorage.setItem('accessToken', response.data.accessToken)
 
-                user.value.firstname = response.data.firstName
-                user.value.lastname = response.data.lastName
+                user.value.firstName = response.data.firstName
+                user.value.lastName = response.data.lastName
                 user.value.username = response.data.username
 
                 return authInterceptor('/profile')
@@ -87,10 +85,14 @@ export const useUserStore = defineStore('user', () => {
     }
 
     const logout = () => {
-        console.log('Logging out')
         sessionStorage.removeItem('accessToken')
         localStorage.removeItem('spareStiUsername')
-        user.value = defaultUser
+
+        user.value.firstName = ''
+        user.value.lastName = ''
+        user.value.username = ''
+        user.value.isConfigured = false
+
         router.push({ name: 'login' })
     }
 
@@ -172,10 +174,8 @@ export const useUserStore = defineStore('user', () => {
             .post(`http://localhost:8080/auth/bioLogin/${username}`)
             .then((request) => {
                 initialCheckStatus(request)
-                console.log(request)
 
                 const credentialGetJson: CredentialRequestOptions = request.data
-                console.log(credentialGetJson)
 
                 const credentialGetOptions: CredentialRequestOptions = {
                     publicKey: {
@@ -216,7 +216,6 @@ export const useUserStore = defineStore('user', () => {
                     },
                     clientExtensionResults: publicKeyCredential.getClientExtensionResults()
                 }
-                console.log(encodedResult)
 
                 return axios.post(`http://localhost:8080/auth/finishBioLogin/${username}`, {
                     credential: JSON.stringify(encodedResult)
@@ -225,8 +224,8 @@ export const useUserStore = defineStore('user', () => {
             .then((response) => {
                 sessionStorage.setItem('accessToken', response.data.accessToken)
 
-                user.value.firstname = response.data.firstName
-                user.value.lastname = response.data.lastName
+                user.value.firstName = response.data.firstName
+                user.value.lastName = response.data.lastName
                 user.value.username = response.data.username
 
                 router.push({ name: 'home' })
@@ -239,7 +238,6 @@ export const useUserStore = defineStore('user', () => {
     const checkIfUserConfigured = async () => {
         await authInterceptor('/config')
             .then((response) => {
-                console.log('User configured: ' + user.value.isConfigured)
                 user.value.isConfigured = response.data.challengeConfig != null
             })
             .catch(() => {
diff --git a/src/types/profile.ts b/src/types/profile.ts
index db81234695be6575d7d4c528515e9f1facbc5883..7d0ee92ff43589dc64d6d19507a92428d349307d 100644
--- a/src/types/profile.ts
+++ b/src/types/profile.ts
@@ -5,6 +5,7 @@ export interface Profile {
     email: string
     username: string
     password?: string
+    savedAmount?: number
     spendingAccount: {
         accNumber?: number
         accountType?: string
diff --git a/src/types/user.ts b/src/types/user.ts
index 624188688f1bec4c544ebf3b4d21d50f4a2d9be9..9fb1fe33d0d2e97d742cd7be056c18869668c44d 100644
--- a/src/types/user.ts
+++ b/src/types/user.ts
@@ -1,6 +1,6 @@
 export interface User {
-    firstname: string
-    lastname: string
+    firstName: string
+    lastName: string
     username: string
     isConfigured: boolean
     isBiometric?: boolean
diff --git a/src/views/ConfigAccountNumberView.vue b/src/views/ConfigAccountNumberView.vue
index 6b827b1fafaa4713011fe7b11fd696caa8695260..f49e366564cb43461ce767971d4522dffce55939 100644
--- a/src/views/ConfigAccountNumberView.vue
+++ b/src/views/ConfigAccountNumberView.vue
@@ -63,7 +63,6 @@
 import { computed, ref } from 'vue'
 import { useUserConfigStore } from '@/stores/userConfigStore'
 import ContinueButtonComponent from '@/components/ContinueButtonComponent.vue'
-import router from '@/router'
 import SpareComponent from '@/components/SpareComponent.vue'
 
 const MAX_DIGITS = 11
@@ -80,14 +79,13 @@ const isFormValid = computed(() => {
 })
 
 async function onButtonClick() {
-    const savingAccountNumber = savingsAccount.value.replace(/\./g, '')
-    const spendingAccountNumber = spendingAccount.value.replace(/\./g, '')
+    const savingAccountNumber = parseInt(savingsAccount.value.replace(/\./g, ''))
+    const spendingAccountNumber = parseInt(spendingAccount.value.replace(/\./g, ''))
 
-    await userConfigStore.postAccount('SAVING', savingAccountNumber, 0)
-    await userConfigStore.postAccount('SPENDING', spendingAccountNumber, 0)
-    await userConfigStore.postUserConfig()
+    userConfigStore.setAccount('SAVING', savingAccountNumber)
+    userConfigStore.setAccount('SPENDING', spendingAccountNumber)
 
-    await router.push({ name: 'home', query: { firstLogin: 'true' } })
+    await userConfigStore.createConfig()
 }
 
 function restrictToNumbers(event: InputEvent, type: string) {
diff --git a/src/views/ConfigBiometricView.vue b/src/views/ConfigBiometricView.vue
index a1421d8720873bb902cc9fd212953661deeab80f..0a6647a0a8117882470a08a5725d7d49b0151f6b 100644
--- a/src/views/ConfigBiometricView.vue
+++ b/src/views/ConfigBiometricView.vue
@@ -7,7 +7,7 @@
             <img alt="bioAuthFace" class="w-40 h-40" src="@/assets/bioAuthFace.png" />
         </div>
         <div class="flex flex-col gap-5">
-            <button @click="userStore.bioRegister()">Legg til nå!</button>
+            <button @click="bioRegister">Legg til nå!</button>
             <button @click="router.push({ name: 'configurations1' })">Jeg gjør det senere</button>
         </div>
     </div>
@@ -17,6 +17,11 @@ import { useUserStore } from '@/stores/userStore'
 import router from '@/router'
 
 const userStore = useUserStore()
+
+const bioRegister = async () => {
+    await userStore.bioRegister()
+    await router.push({ name: 'configurations1' })
+}
 </script>
 
 <style scoped></style>
diff --git a/src/views/ConfigSpendingItemsAmountView.vue b/src/views/ConfigSpendingItemsAmountView.vue
index b1f28b295aca4e3dec917faece5d9d333f2fa4d0..ef2ac42c27859374f0ab7f4e07115e07093e950d 100644
--- a/src/views/ConfigSpendingItemsAmountView.vue
+++ b/src/views/ConfigSpendingItemsAmountView.vue
@@ -95,14 +95,14 @@ import SpareComponent from '@/components/SpareComponent.vue'
 
 const userConfigStore = useUserConfigStore()
 
-const options = ref(userConfigStore.challengeTypeConfigs)
+const options = ref(userConfigStore.challengeConfig.challengeTypeConfigs)
 const amounts = ref(options.value.map(() => ''))
 
 const isAllAmountsFilled = computed(() => amounts.value.every((amount) => amount.trim() !== ''))
 
 const onButtonClick = () => {
     options.value.forEach((option, index) => {
-        userConfigStore.challengeTypeConfigs[index].specificAmount =
+        userConfigStore.challengeConfig.challengeTypeConfigs[index].specificAmount =
             parseFloat(amounts.value[index]) || 0
     })
     router.push({ name: 'configurations5' })
diff --git a/src/views/ConfigSpendingItemsTotalAmountView.vue b/src/views/ConfigSpendingItemsTotalAmountView.vue
index e416dc51dd2791923831261a953569890c1ebc6f..0291e9e917bf503a4ff77a066b0062b43c23172f 100644
--- a/src/views/ConfigSpendingItemsTotalAmountView.vue
+++ b/src/views/ConfigSpendingItemsTotalAmountView.vue
@@ -95,14 +95,14 @@ import SpareComponent from '@/components/SpareComponent.vue'
 
 const userConfigStore = useUserConfigStore()
 
-const options = ref(userConfigStore.challengeTypeConfigs)
+const options = ref(userConfigStore.challengeConfig.challengeTypeConfigs)
 const amounts = ref(options.value.map(() => ''))
 
 const isAllAmountsFilled = computed(() => amounts.value.every((amount) => amount.trim() !== ''))
 
 const onButtonClick = async () => {
     options.value.forEach((option, index) => {
-        userConfigStore.challengeTypeConfigs[index].generalAmount =
+        userConfigStore.challengeConfig.challengeTypeConfigs[index].generalAmount =
             parseFloat(amounts.value[index]) || 0
     })
 
diff --git a/src/views/ConfigSpendingItemsView.vue b/src/views/ConfigSpendingItemsView.vue
index 7313cc1719c4f6d6f1700ecca5ab5ace4988e821..d3e032d9b5bf5d74bd9b3b46cc88ed83f57544e7 100644
--- a/src/views/ConfigSpendingItemsView.vue
+++ b/src/views/ConfigSpendingItemsView.vue
@@ -122,7 +122,14 @@ const onButtonClick = () => {
             generalAmount: 0
         }))
 
-    userConfigStore.challengeTypeConfigs = [...predefinedChallengeTypes, ...customChallengeTypes]
+    for (const challengeType of predefinedChallengeTypes.concat(customChallengeTypes)) {
+        userConfigStore.addChallengeTypeConfig(
+            challengeType.type,
+            challengeType.specificAmount,
+            challengeType.generalAmount
+        )
+    }
+
     router.push({ name: 'configurations4' })
 }
 </script>
diff --git a/src/views/ManageChallengeView.vue b/src/views/ManageChallengeView.vue
index e6ac0028d2afb80588be2c5cde3ac5029102c767..063e269da023844231f9255dad53fa65abea74c5 100644
--- a/src/views/ManageChallengeView.vue
+++ b/src/views/ManageChallengeView.vue
@@ -279,12 +279,8 @@ const removeUploadedFile = () => {
                 :isModalOpen="errorModalOpen"
                 @close="errorModalOpen = false"
             >
-                <template v-slot:input>
-                    <div class="flex justify-center items-center">
-                        <div class="flex flex-col gap-5">
-                            <button class="primary" @click="errorModalOpen = false">Lukk</button>
-                        </div>
-                    </div>
+                <template v-slot:buttons>
+                    <button class="primary" @click="errorModalOpen = false">Lukk</button>
                 </template>
             </ModalComponent>
 
@@ -294,15 +290,9 @@ const removeUploadedFile = () => {
                 :isModalOpen="confirmModalOpen"
                 @close="confirmModalOpen = false"
             >
-                <template v-slot:input>
-                    <div class="flex justify-center items-center">
-                        <div class="flex flex-col gap-5">
-                            <button class="primary" @click="confirmCancel">Bekreft</button>
-                            <button class="primary danger" @click="confirmModalOpen = false">
-                                Avbryt
-                            </button>
-                        </div>
-                    </div>
+                <template v-slot:buttons>
+                    <button class="primary" @click="confirmCancel">Bekreft</button>
+                    <button class="primary danger" @click="confirmModalOpen = false">Avbryt</button>
                 </template>
             </ModalComponent>
         </div>
diff --git a/src/views/ManageConfigView.vue b/src/views/ManageConfigView.vue
index fac9e2fbdb3640b82088a70ac812ad5ad56a0b46..5e5f634de622323ebaae2fc6f5e0783b12b9d3c1 100644
--- a/src/views/ManageConfigView.vue
+++ b/src/views/ManageConfigView.vue
@@ -85,10 +85,9 @@ onMounted(() => {
     authInterceptor('/config/challenge')
         .then((response) => {
             configuration.value = response.data
-            console.log(configuration.value)
         })
         .catch((error) => {
-            return console.log(error)
+            console.error(error)
         })
 })
 </script>
diff --git a/src/views/ManageGoalView.vue b/src/views/ManageGoalView.vue
index f36a5747203c17625caf078fc2cac61f323d8570..3014d64b82176850de7eb982ffda89e0a8cbd8df 100644
--- a/src/views/ManageGoalView.vue
+++ b/src/views/ManageGoalView.vue
@@ -311,12 +311,8 @@ onMounted(async () => {
                 :isModalOpen="errorModalOpen"
                 @close="errorModalOpen = false"
             >
-                <template v-slot:input>
-                    <div class="flex justify-center items-center">
-                        <div class="flex flex-col gap-5">
-                            <button class="primary" @click="errorModalOpen = false">Lukk</button>
-                        </div>
-                    </div>
+                <template v-slot:buttons>
+                    <button class="primary" @click="errorModalOpen = false">Lukk</button>
                 </template>
             </ModalComponent>
 
@@ -326,15 +322,9 @@ onMounted(async () => {
                 :isModalOpen="confirmModalOpen"
                 @close="confirmModalOpen = false"
             >
-                <template v-slot:input>
-                    <div class="flex justify-center items-center">
-                        <div class="flex flex-col gap-5">
-                            <button class="primary" @click="confirmCancel">Bekreft</button>
-                            <button class="primary danger" @click="confirmModalOpen = false">
-                                Avbryt
-                            </button>
-                        </div>
-                    </div>
+                <template v-slot:buttons>
+                    <button class="primary" @click="confirmCancel">Bekreft</button>
+                    <button class="primary danger" @click="confirmModalOpen = false">Avbryt</button>
                 </template>
             </ModalComponent>
         </div>
diff --git a/src/views/ManageProfileView.vue b/src/views/ManageProfileView.vue
index 867724633a526dde00d4a392db4c67bdfbbaa590..adc8b26a59ce9dabf1a9d7743bc760151bebf558 100644
--- a/src/views/ManageProfileView.vue
+++ b/src/views/ManageProfileView.vue
@@ -83,10 +83,9 @@ onMounted(async () => {
     await authInterceptor('/profile')
         .then((response) => {
             profile.value = response.data
-            console.log(profile.value)
         })
         .catch((error) => {
-            return console.log(error)
+            console.error(error)
         })
 })
 
@@ -135,7 +134,7 @@ const saveChanges = async () => {
                     </div>
                     <input
                         v-model="profile.firstName"
-                        name="firstname"
+                        name="firstName"
                         placeholder="Skriv inn fornavn"
                         type="text"
                     />
@@ -149,7 +148,7 @@ const saveChanges = async () => {
                     </div>
                     <input
                         v-model="profile.lastName"
-                        name="lastname"
+                        name="lastName"
                         placeholder="Skriv inn etternavn"
                         type="text"
                     />
diff --git a/src/views/ViewProfileView.vue b/src/views/ViewProfileView.vue
index 47e1ac6a7dcc2cbf9bad622c4db113c08010d2ae..9ae8777185cd4da038654c7db8056a85ca2d90ba 100644
--- a/src/views/ViewProfileView.vue
+++ b/src/views/ViewProfileView.vue
@@ -77,7 +77,10 @@ const openSpare = () => {
                     </div>
                 </div>
 
-                <h3 class="font-bold" v-text="'Du har spart ' + '< totalSaved >' + 'kr'" />
+                <h3
+                    class="font-bold"
+                    v-text="'Du har totalt spart ' + profile?.savedAmount + 'kr'"
+                />
 
                 <CardTemplate>
                     <div class="bg-red-100">