diff --git a/src/components/Model/Selection.vue b/src/components/Model/Selection.vue
index f51ecd1ad66c8946fd2870bd862ebefd36f98221..b7d76e5e8399bc4783034e6d9f67a2ac283628b9 100644
--- a/src/components/Model/Selection.vue
+++ b/src/components/Model/Selection.vue
@@ -30,7 +30,7 @@
 <script>
 import { mapState, mapActions } from 'vuex'
 import Modal from '@/components/Modal.vue'
-import ModelList from './List'
+import ModelList from '@/views/ModelList'
 
 export default {
   components: {
diff --git a/src/components/Process/TemplateSelection.vue b/src/components/Process/TemplateSelection.vue
index 3711275b3d841e4e06b562f5fb726061dc1d7640..5533a5c8bfe32448d290c9ad074303eba406c7f9 100644
--- a/src/components/Process/TemplateSelection.vue
+++ b/src/components/Process/TemplateSelection.vue
@@ -95,7 +95,7 @@ import { mapState, mapActions, mapMutations } from 'vuex'
 import Paginator from '@/components/Paginator.vue'
 import Modal from '@/components/Modal.vue'
 import { errorParser } from '@/helpers'
-import TemplateDetails from '@/components/Process/TemplateDetails.vue'
+import TemplateDetails from '@/views/Process/TemplateDetails.vue'
 
 export default {
   props: {
diff --git a/src/main.js b/src/main.js
index 7721c50c54490995c7cf8b93f0620c4205ce2a06..dd94655a4bc633b0725ac9a3e52468d3950a63f0 100644
--- a/src/main.js
+++ b/src/main.js
@@ -20,7 +20,7 @@ import { createApp } from 'vue'
 
 import router from './router'
 import store from './store'
-import App from '@/components/App.vue'
+import App from '@/views/App.vue'
 
 import axios from 'axios'
 
diff --git a/src/router/index.js b/src/router/index.js
index b9730c033d653667cda85e76f9851162f2e58c1d..6eeab70d47ccf28023b583b312942d18b45d4aba 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -2,48 +2,48 @@ import { createRouter, createWebHistory, createWebHashHistory } from 'vue-router
 import store from '@/store'
 import { ROUTER_MODE, UUID } from '@/config'
 
-import Navigation from '@/components/Navigation'
-import ElementPage from '@/components/Element/Main.vue'
-import Selection from '@/components/Navigation/Selection.vue'
-import Search from '@/components/Search/Main.vue'
-import EntityDetails from '@/components/Entity/Details.vue'
-import EntityList from '@/components/Entity/List.vue'
-import Register from '@/components/Auth/Register.vue'
-import Login from '@/components/Auth/Login.vue'
-import Logout from '@/components/Auth/Logout.vue'
-import PasswordReset from '@/components/Auth/PasswordReset.vue'
-import PasswordResetConfirm from '@/components/Auth/PasswordResetConfirm.vue'
-import NotFound from '@/components/Errors/NotFound.vue'
-import NoBackend from '@/components/Errors/NoBackend.vue'
-import UnverifiedEmail from '@/components/Errors/UnverifiedEmail.vue'
-import ImageElements from '@/components/Image/Elements.vue'
+import Navigation from '@/views/Navigation'
+import ElementPage from '@/views/Element.vue'
+import Selection from '@/views/Navigation/Selection.vue'
+import Search from '@/views/Search.vue'
+import EntityDetails from '@/views/Entity/Details.vue'
+import EntityList from '@/views/Entity/List.vue'
+import Register from '@/views/Auth/Register.vue'
+import Login from '@/views/Auth/Login.vue'
+import Logout from '@/views/Auth/Logout.vue'
+import PasswordReset from '@/views/Auth/PasswordReset.vue'
+import PasswordResetConfirm from '@/views/Auth/PasswordResetConfirm.vue'
+import NotFound from '@/views/Errors/NotFound.vue'
+import NoBackend from '@/views/Errors/NoBackend.vue'
+import UnverifiedEmail from '@/views/Errors/UnverifiedEmail.vue'
+import ImageElements from '@/views/ImageElements.vue'
 
 // Logged in users-only components are split into another JS chunk to improve performance
 /* eslint-disable no-inline-comments */
-const Welcome = () => import(/* webpackChunkName: "users" */ '@/components/Welcome')
+const Welcome = () => import(/* webpackChunkName: "users" */ '@/views/Welcome')
 const CorpusList = () => import(/* webpackChunkName: "users" */ '@/views/Corpus/List')
-const CorpusDetails = () => import(/* webpackChunkName: "users" */ '@/components/Corpus/Main')
-const ImportFromFiles = () => import(/* webpackChunkName: "users" */ '@/components/Imports/Files/ImportFromFiles')
-const ImportFromBucket = () => import(/* webpackChunkName: "users" */ '@/components/Imports/ImportFromBucket')
-const ImportTranskribus = () => import(/* webpackChunkName: "users" */ '@/components/Imports/Transkribus')
-const ReposList = () => import(/* webpackChunkName: "users" */ '@/components/Repos/List')
-const ReposCreate = () => import(/* webpackChunkName: "users" */ '@/components/Repos/Create')
-const ReposRights = () => import(/* webpackChunkName: "users" */ '@/components/Repos/Rights')
-const ProcessList = () => import(/* webpackChunkName: "users" */ '@/components/Process/List')
-const ModelsList = () => import(/* webpackChunkName: "users" */ '@/components/Model/List')
-const ProcessStatus = () => import(/* webpackChunkName: "users" */ '@/components/Process/Status/Main')
-const ProcessFilter = () => import(/* webpackChunkName: "users" */ '@/components/Process/Filter')
-const ProcessConfigure = () => import(/* webpackChunkName: "users" */ '@/components/Process/Configure')
-const TrainingProcessCreate = () => import(/* webpackChunkName: "users" */ '@/components/Training/Create')
-const Workers = () => import(/* webpackChunkName: "users" */ '@/components/Process/Workers/List')
-const TemplateDetails = () => import(/* webpackChunkName: "users" */ '@/components/Process/TemplateDetails')
-const WorkerManage = () => import(/* webpackChunkName: "users" */ '@/components/Process/Workers/Manage')
-const PonosAgents = () => import(/* webpackChunkName: "users" */ '@/components/Process/Agents/Main')
-const GroupCreate = () => import(/* webpackChunkName: "users" */ '@/components/Group/Create')
-const GroupManage = () => import(/* webpackChunkName: "users" */ '@/components/Group/Manage')
-const UserProfile = () => import(/* webpackChunkName: "users" */ '@/components/Auth/Profile/Main')
-const CorpusWorkersActivity = () => import(/* webpackChunkName: "users" */ '@/components/Corpus/WorkersActivity')
-const ProcessWorkersActivity = () => import(/* webpackChunkName: "users" */ '@/components/Process/WorkersActivity')
+const CorpusDetails = () => import(/* webpackChunkName: "users" */ '@/views/Corpus/Main')
+const ImportFromFiles = () => import(/* webpackChunkName: "users" */ '@/views/Imports/ImportFromFiles')
+const ImportFromBucket = () => import(/* webpackChunkName: "users" */ '@/views/Imports/ImportFromBucket')
+const ImportTranskribus = () => import(/* webpackChunkName: "users" */ '@/views/Imports/Transkribus')
+const ReposList = () => import(/* webpackChunkName: "users" */ '@/views/Repos/List')
+const ReposCreate = () => import(/* webpackChunkName: "users" */ '@/views/Repos/Create')
+const ReposRights = () => import(/* webpackChunkName: "users" */ '@/views/Repos/Rights')
+const ProcessList = () => import(/* webpackChunkName: "users" */ '@/views/Process/List')
+const ModelsList = () => import(/* webpackChunkName: "users" */ '@/views/ModelList')
+const ProcessStatus = () => import(/* webpackChunkName: "users" */ '@/views/Process/Status')
+const ProcessFilter = () => import(/* webpackChunkName: "users" */ '@/views/Process/Filter')
+const ProcessConfigure = () => import(/* webpackChunkName: "users" */ '@/views/Process/Configure')
+const TrainingProcessCreate = () => import(/* webpackChunkName: "users" */ '@/views/TrainingProcessCreate')
+const Workers = () => import(/* webpackChunkName: "users" */ '@/views/Process/Workers/List')
+const TemplateDetails = () => import(/* webpackChunkName: "users" */ '@/views/Process/TemplateDetails')
+const WorkerManage = () => import(/* webpackChunkName: "users" */ '@/views/Process/Workers/Manage')
+const PonosAgents = () => import(/* webpackChunkName: "users" */ '@/views/Process/Agents')
+const GroupCreate = () => import(/* webpackChunkName: "users" */ '@/views/Group/Create')
+const GroupManage = () => import(/* webpackChunkName: "users" */ '@/views/Group/Manage')
+const UserProfile = () => import(/* webpackChunkName: "users" */ '@/views/Auth/Profile')
+const CorpusWorkersActivity = () => import(/* webpackChunkName: "users" */ '@/views/Corpus/WorkersActivity')
+const ProcessWorkersActivity = () => import(/* webpackChunkName: "users" */ '@/views/Process/WorkersActivity')
 
 /* eslint-enable no-inline-comments */
 
diff --git a/src/components/App.vue b/src/views/App.vue
similarity index 97%
rename from src/components/App.vue
rename to src/views/App.vue
index 6eb971dc78a0005d40833c278aadd5f7be1c2fd0..a66e45d0698593f9372c2ecbd639d1aa6c1569b2 100644
--- a/src/components/App.vue
+++ b/src/views/App.vue
@@ -50,8 +50,8 @@
 <script>
 import { mapState, mapGetters, mapMutations } from 'vuex'
 import { VERSION, BANNER_MESSAGE, BANNER_STYLE } from '@/config.js'
-import Navbar from './Navbar'
-import Notification from './Notification'
+import Navbar from '@/components/Navbar'
+import Notification from '@/components/Notification'
 import DoorBell from '@/components/DoorBell.vue'
 export default {
   components: {
diff --git a/src/components/Auth/Login.vue b/src/views/Auth/Login.vue
similarity index 100%
rename from src/components/Auth/Login.vue
rename to src/views/Auth/Login.vue
diff --git a/src/components/Auth/Logout.vue b/src/views/Auth/Logout.vue
similarity index 100%
rename from src/components/Auth/Logout.vue
rename to src/views/Auth/Logout.vue
diff --git a/src/components/Auth/PasswordReset.vue b/src/views/Auth/PasswordReset.vue
similarity index 100%
rename from src/components/Auth/PasswordReset.vue
rename to src/views/Auth/PasswordReset.vue
diff --git a/src/components/Auth/PasswordResetConfirm.vue b/src/views/Auth/PasswordResetConfirm.vue
similarity index 100%
rename from src/components/Auth/PasswordResetConfirm.vue
rename to src/views/Auth/PasswordResetConfirm.vue
diff --git a/src/components/Auth/Profile/Main.vue b/src/views/Auth/Profile.vue
similarity index 89%
rename from src/components/Auth/Profile/Main.vue
rename to src/views/Auth/Profile.vue
index 2b9af36841f6486c6e5f1bc33306a0416b1d9d8d..731fb78554a64606e85be624ac19e52342666b07 100644
--- a/src/components/Auth/Profile/Main.vue
+++ b/src/views/Auth/Profile.vue
@@ -18,8 +18,8 @@
 <script>
 import Tabs from '@/components/Tabs.vue'
 import OAuthList from '@/components/OAuth/List.vue'
-import Groups from './Groups'
-import UserInfo from './Info'
+import Groups from '@/components/Auth/Profile/Groups'
+import UserInfo from '@/components/Auth/Profile/Info'
 
 export default {
   components: {
diff --git a/src/components/Auth/Register.vue b/src/views/Auth/Register.vue
similarity index 100%
rename from src/components/Auth/Register.vue
rename to src/views/Auth/Register.vue
diff --git a/src/components/Corpus/Main.vue b/src/views/Corpus/Main.vue
similarity index 89%
rename from src/components/Corpus/Main.vue
rename to src/views/Corpus/Main.vue
index e90d376d739c1fb5f295a7df9619f1dcfea4718f..555cb2f26176d10eca34ccb10bd1d93fbb3c691d 100644
--- a/src/components/Corpus/Main.vue
+++ b/src/views/Corpus/Main.vue
@@ -45,10 +45,10 @@
 import { corporaMixin } from '@/mixins.js'
 import Tabs from '@/components/Tabs.vue'
 import ListMembers from '@/components/Memberships/ListMembers.vue'
-import EditionForm from './EditionForm'
-import ElementType from './ElementType'
-import AllowedMetaData from './AllowedMetaData'
-import Classes from './Classes'
+import EditionForm from '@/components/Corpus/EditionForm'
+import ElementType from '@/components/Corpus/ElementType'
+import AllowedMetaData from '@/components/Corpus/AllowedMetaData'
+import Classes from '@/components/Corpus/Classes'
 
 export default {
   mixins: [
diff --git a/src/components/Corpus/WorkersActivity.vue b/src/views/Corpus/WorkersActivity.vue
similarity index 100%
rename from src/components/Corpus/WorkersActivity.vue
rename to src/views/Corpus/WorkersActivity.vue
diff --git a/src/components/Element/Main.vue b/src/views/Element.vue
similarity index 98%
rename from src/components/Element/Main.vue
rename to src/views/Element.vue
index 4e286e96f48ad183691afdf0bf3ee5542f06f35e..c80bb73c2f7c18fda98624d83db81383c692c604 100644
--- a/src/components/Element/Main.vue
+++ b/src/views/Element.vue
@@ -77,14 +77,14 @@ import { mapState, mapGetters, mapMutations } from 'vuex'
 import { truncateMixin, corporaMixin } from '@/mixins.js'
 import { iiifUri } from '@/helpers'
 
-import ChildElement from './ChildElement'
+import ChildElement from '@/components/Element/ChildElement'
 import ElementNavigation from '@/components/Navigation/ElementNavigation.vue'
 import ElementHeader from '@/components/Element/ElementHeader.vue'
 import DetailsPanel from '@/components/Element/DetailsPanel.vue'
 import AnnotationPanel from '@/components/Element/AnnotationPanel.vue'
 import ChildrenTree from '@/components/Navigation/ChildrenTree'
 import InteractiveImage from '@/components/Image/InteractiveImage.vue'
-import PanelHeader from './PanelHeader'
+import PanelHeader from '@/components/Element/PanelHeader'
 
 export default {
   mixins: [
diff --git a/src/components/Entity/Details.vue b/src/views/Entity/Details.vue
similarity index 100%
rename from src/components/Entity/Details.vue
rename to src/views/Entity/Details.vue
diff --git a/src/components/Entity/List.vue b/src/views/Entity/List.vue
similarity index 98%
rename from src/components/Entity/List.vue
rename to src/views/Entity/List.vue
index 2bb4c981b861f3c6e679b1700ab3e04ff206ceed..f0bb976f10895df17de96e9771f3b47d8b97dd98 100644
--- a/src/components/Entity/List.vue
+++ b/src/views/Entity/List.vue
@@ -46,7 +46,7 @@ import { mapState, mapActions } from 'vuex'
 import { corporaMixin } from '@/mixins.js'
 import { errorParser } from '@/helpers'
 import Paginator from '@/components/Paginator.vue'
-import Row from './Row'
+import Row from '@/components/Entity/Row'
 
 export default {
   mixins: [
diff --git a/src/components/Errors/NoBackend.vue b/src/views/Errors/NoBackend.vue
similarity index 100%
rename from src/components/Errors/NoBackend.vue
rename to src/views/Errors/NoBackend.vue
diff --git a/src/components/Errors/NotFound.vue b/src/views/Errors/NotFound.vue
similarity index 100%
rename from src/components/Errors/NotFound.vue
rename to src/views/Errors/NotFound.vue
diff --git a/src/components/Errors/UnverifiedEmail.vue b/src/views/Errors/UnverifiedEmail.vue
similarity index 100%
rename from src/components/Errors/UnverifiedEmail.vue
rename to src/views/Errors/UnverifiedEmail.vue
diff --git a/src/components/Group/Create.vue b/src/views/Group/Create.vue
similarity index 100%
rename from src/components/Group/Create.vue
rename to src/views/Group/Create.vue
diff --git a/src/components/Group/Manage.vue b/src/views/Group/Manage.vue
similarity index 99%
rename from src/components/Group/Manage.vue
rename to src/views/Group/Manage.vue
index 50dee2b8dbbc10828bdf4c8555ba485318581b6e..6b575f50f3bfa6a3e4311e7b02091586dcd3a4fb 100644
--- a/src/components/Group/Manage.vue
+++ b/src/views/Group/Manage.vue
@@ -96,7 +96,7 @@ import { getRole, errorParser } from '@/helpers'
 import { mapState, mapActions, mapMutations } from 'vuex'
 import ListMembers from '@/components/Memberships/ListMembers.vue'
 import Modal from '@/components/Modal.vue'
-import Create from './Create'
+import Create from '@/views/Group/Create'
 
 export default {
   components: {
diff --git a/src/components/Image/Elements.vue b/src/views/ImageElements.vue
similarity index 100%
rename from src/components/Image/Elements.vue
rename to src/views/ImageElements.vue
diff --git a/src/components/Imports/ImportFromBucket.vue b/src/views/Imports/ImportFromBucket.vue
similarity index 100%
rename from src/components/Imports/ImportFromBucket.vue
rename to src/views/Imports/ImportFromBucket.vue
diff --git a/src/components/Imports/Files/ImportFromFiles.vue b/src/views/Imports/ImportFromFiles.vue
similarity index 99%
rename from src/components/Imports/Files/ImportFromFiles.vue
rename to src/views/Imports/ImportFromFiles.vue
index 73647f62787bd9ab67894f3ce3c8ef97a54e0467..84562283dd9bf392b3bb17c1f9877c7e44d7ee13 100644
--- a/src/components/Imports/Files/ImportFromFiles.vue
+++ b/src/views/Imports/ImportFromFiles.vue
@@ -91,7 +91,7 @@
 
 <script>
 import { mapMutations, mapGetters } from 'vuex'
-import FileSelector from './Selector'
+import FileSelector from '@/components/Imports/Files/Selector'
 import { truncateMixin, corporaMixin } from '@/mixins.js'
 export default {
   mixins: [
diff --git a/src/components/Imports/Transkribus.vue b/src/views/Imports/Transkribus.vue
similarity index 100%
rename from src/components/Imports/Transkribus.vue
rename to src/views/Imports/Transkribus.vue
diff --git a/src/components/Model/List.vue b/src/views/ModelList.vue
similarity index 98%
rename from src/components/Model/List.vue
rename to src/views/ModelList.vue
index 85bed89893322732182a5c3e174b1fd6cdaea563..fe4181e1b72dee1da46035388f1601a11a2762ec 100644
--- a/src/components/Model/List.vue
+++ b/src/views/ModelList.vue
@@ -78,7 +78,7 @@
 
 <script>
 import { mapActions, mapMutations } from 'vuex'
-import VersionList from './Versions/List'
+import VersionList from '@/components/Model/Versions/List'
 import Paginator from '@/components/Paginator.vue'
 import { errorParser } from '@/helpers'
 import ListMembers from '@/components/Memberships/ListMembers.vue'
diff --git a/src/components/Navigation/Main.vue b/src/views/Navigation/Main.vue
similarity index 87%
rename from src/components/Navigation/Main.vue
rename to src/views/Navigation/Main.vue
index 3207f53ca07a83219f22c372aebb320835f52668..edc8efda637a0cacaf5de9969d48db511a443225 100644
--- a/src/components/Navigation/Main.vue
+++ b/src/views/Navigation/Main.vue
@@ -9,7 +9,7 @@
 
 <script>
 import { corporaMixin } from '@/mixins.js'
-import ElementNavigation from './ElementNavigation'
+import ElementNavigation from '@/components/Navigation/ElementNavigation'
 import CorpusHeader from '@/components/Corpus/Header.vue'
 export default {
   mixins: [
diff --git a/src/components/Navigation/Selection.vue b/src/views/Navigation/Selection.vue
similarity index 94%
rename from src/components/Navigation/Selection.vue
rename to src/views/Navigation/Selection.vue
index 97ed2275ef59d6c5896b6826d96bb21b65ffbee8..f750ccb9940bc99ad5074b97c7ef6a6e3eb31bfd 100644
--- a/src/components/Navigation/Selection.vue
+++ b/src/views/Navigation/Selection.vue
@@ -19,7 +19,7 @@
 
 <script>
 import { mapState } from 'vuex'
-import CorpusSelection from './CorpusSelection'
+import CorpusSelection from '@/components/Navigation/CorpusSelection'
 export default {
   components: {
     CorpusSelection
diff --git a/src/components/Navigation/index.js b/src/views/Navigation/index.js
similarity index 100%
rename from src/components/Navigation/index.js
rename to src/views/Navigation/index.js
diff --git a/src/components/Process/Agents/Main.vue b/src/views/Process/Agents.vue
similarity index 100%
rename from src/components/Process/Agents/Main.vue
rename to src/views/Process/Agents.vue
diff --git a/src/components/Process/Configure.vue b/src/views/Process/Configure.vue
similarity index 97%
rename from src/components/Process/Configure.vue
rename to src/views/Process/Configure.vue
index 3351df0419c6f1b251cad04d69d78396a3833974..4cac12ab45ce2ea05e05d7ed7c37cc75174b83d8 100644
--- a/src/components/Process/Configure.vue
+++ b/src/views/Process/Configure.vue
@@ -184,12 +184,12 @@
 <script>
 import { mapState, mapActions, mapMutations } from 'vuex'
 import Modal from '@/components/Modal.vue'
-import WorkerRunsGraph from './Graph/WorkerRuns'
-import Workers from './Workers/List'
-import WorkerRunWithParents from './Workers/WorkerRunWithParents'
+import WorkerRunsGraph from '@/components/Process/Graph/WorkerRuns'
+import Workers from '@/views/Process/Workers/List'
+import WorkerRunWithParents from '@/components/Process/Workers/WorkerRunWithParents'
 import { ensureArray, errorParser } from '@/helpers'
-import TemplateCreation from './TemplateCreation'
-import TemplateSelection from './TemplateSelection'
+import TemplateCreation from '@/components/Process/TemplateCreation'
+import TemplateSelection from '@/components/Process/TemplateSelection'
 
 export default {
   props: {
diff --git a/src/components/Process/Filter.vue b/src/views/Process/Filter.vue
similarity index 100%
rename from src/components/Process/Filter.vue
rename to src/views/Process/Filter.vue
diff --git a/src/components/Process/List.vue b/src/views/Process/List.vue
similarity index 99%
rename from src/components/Process/List.vue
rename to src/views/Process/List.vue
index e6d0683ee524fc46b45ed9ecc73259cda67a979f..d66fd4f248eee4218062d39129d059cc43149868 100644
--- a/src/components/Process/List.vue
+++ b/src/views/Process/List.vue
@@ -119,7 +119,7 @@ import { PROCESS_MODES, PROCESS_STATES } from '@/config.js'
 import { corporaMixin } from '@/mixins.js'
 import { errorParser, removeEmptyStrings } from '@/helpers'
 import Paginator from '@/components/Paginator.vue'
-import Row from './Row'
+import Row from '@/components/Process/Row'
 export default {
   mixins: [
     corporaMixin
diff --git a/src/components/Process/Status/Main.vue b/src/views/Process/Status.vue
similarity index 97%
rename from src/components/Process/Status/Main.vue
rename to src/views/Process/Status.vue
index 2b6355a8ac94e994c3c4c05c6cb96154cdc16779..cec2db85231ea9b1366896a402ca1fe524fa86d0 100644
--- a/src/components/Process/Status/Main.vue
+++ b/src/views/Process/Status.vue
@@ -103,9 +103,9 @@ import {
 } from '@/config.js'
 import { corporaMixin } from '@/mixins.js'
 import { errorParser } from '@/helpers'
-import NameField from './NameField'
-import Workflow from './Workflow'
-import TemplateCreation from '../TemplateCreation'
+import NameField from '@/components/Process/Status/NameField'
+import Workflow from '@/components/Process/Status/Workflow'
+import TemplateCreation from '@/components/Process/TemplateCreation'
 
 export default {
   mixins: [
diff --git a/src/components/Process/TemplateDetails.vue b/src/views/Process/TemplateDetails.vue
similarity index 96%
rename from src/components/Process/TemplateDetails.vue
rename to src/views/Process/TemplateDetails.vue
index 18a263a9844ac52cdb99594470e6af3a08ff82d2..c1ed9cba732d6bd3733de3f9dd2619daf42fcd99 100644
--- a/src/components/Process/TemplateDetails.vue
+++ b/src/views/Process/TemplateDetails.vue
@@ -25,8 +25,8 @@
 <script>
 import { mapState, mapActions, mapMutations } from 'vuex'
 import { ensureArray, errorParser } from '@/helpers'
-import WorkerRunsGraph from './Graph/WorkerRuns'
-import WorkerRunWithParents from './Workers/WorkerRunWithParents'
+import WorkerRunsGraph from '@/components/Process/Graph/WorkerRuns'
+import WorkerRunWithParents from '@/components/Process/Workers/WorkerRunWithParents'
 
 export default {
   components: {
diff --git a/src/components/Process/Workers/List.vue b/src/views/Process/Workers/List.vue
similarity index 97%
rename from src/components/Process/Workers/List.vue
rename to src/views/Process/Workers/List.vue
index 8cf836e6b48d3d166fc34efaf042fb229df6100b..b076a1fbcabf699c85b12392aa687d435969d2c1 100644
--- a/src/components/Process/Workers/List.vue
+++ b/src/views/Process/Workers/List.vue
@@ -103,11 +103,11 @@
 
 <script>
 import { mapState, mapActions, mapMutations } from 'vuex'
-import VersionList from './Versions/List'
+import VersionList from '@/components/Process/Workers/Versions/List'
 import Paginator from '@/components/Paginator.vue'
 import { errorParser } from '@/helpers'
 import ListMembers from '@/components/Memberships/ListMembers.vue'
-import WorkerTag from './WorkerTag'
+import WorkerTag from '@/components/Process/Workers/WorkerTag'
 import { truncateMixin } from '@/mixins.js'
 import { isEmpty } from 'lodash'
 
diff --git a/src/components/Process/Workers/Manage.vue b/src/views/Process/Workers/Manage.vue
similarity index 95%
rename from src/components/Process/Workers/Manage.vue
rename to src/views/Process/Workers/Manage.vue
index 3a6586edf5c55c44708f60e7bb83bf099ef47b59..31f7a71a8025a23644667048733dff35a361f578 100644
--- a/src/components/Process/Workers/Manage.vue
+++ b/src/views/Process/Workers/Manage.vue
@@ -25,7 +25,7 @@
 <script>
 import { mapState, mapMutations } from 'vuex'
 import { errorParser } from '@/helpers'
-import VersionList from './Versions/List'
+import VersionList from '@/components/Process/Workers/Versions/List'
 import ListMembers from '@/components/Memberships/ListMembers.vue'
 export default {
   props: {
diff --git a/src/components/Process/WorkersActivity.vue b/src/views/Process/WorkersActivity.vue
similarity index 100%
rename from src/components/Process/WorkersActivity.vue
rename to src/views/Process/WorkersActivity.vue
diff --git a/src/components/Repos/Create.vue b/src/views/Repos/Create.vue
similarity index 100%
rename from src/components/Repos/Create.vue
rename to src/views/Repos/Create.vue
diff --git a/src/components/Repos/List.vue b/src/views/Repos/List.vue
similarity index 96%
rename from src/components/Repos/List.vue
rename to src/views/Repos/List.vue
index 3587863b1cabca7ac6f64b898ad5b22d5d019eae..28b2c96b8a19b5dfbf67474bfa499caafe551561 100644
--- a/src/components/Repos/List.vue
+++ b/src/views/Repos/List.vue
@@ -46,8 +46,8 @@
 <script>
 import { mapActions, mapState, mapGetters, mapMutations } from 'vuex'
 import Paginator from '@/components/Paginator.vue'
-import Row from './Row'
-import DeleteModal from './DeleteModal'
+import Row from '@/components/Repos/Row'
+import DeleteModal from '@/components/Repos/DeleteModal'
 import { errorParser } from '@/helpers'
 export default {
   components: {
diff --git a/src/components/Repos/Rights.vue b/src/views/Repos/Rights.vue
similarity index 97%
rename from src/components/Repos/Rights.vue
rename to src/views/Repos/Rights.vue
index e44b07fced6a68ed291a1254431ae525d0988b34..5ada8aa5a65437ac63158cca1092c95cfc57fa87 100644
--- a/src/components/Repos/Rights.vue
+++ b/src/views/Repos/Rights.vue
@@ -33,7 +33,7 @@
 import { errorParser } from '@/helpers'
 import { mapState, mapActions, mapMutations } from 'vuex'
 import ListMembers from '@/components/Memberships/ListMembers.vue'
-import DeleteModal from './DeleteModal'
+import DeleteModal from '@/components/Repos/DeleteModal'
 export default {
   components: {
     ListMembers,
diff --git a/src/components/Search/Main.vue b/src/views/Search.vue
similarity index 92%
rename from src/components/Search/Main.vue
rename to src/views/Search.vue
index 574ceb749ae2e9aa6146b44e43cf47e57a09a8cb..26e100e8c61b60bec678b3e4e14969e4f69ef328 100644
--- a/src/components/Search/Main.vue
+++ b/src/views/Search.vue
@@ -36,8 +36,8 @@
 <script>
 import { mapState, mapMutations } from 'vuex'
 import Paginator from '@/components/Paginator.vue'
-import SearchForm from './Form'
-import SearchResult from './Result'
+import SearchForm from '@/components/Search/Form'
+import SearchResult from '@/components/Search/Result'
 export default {
   components: {
     Paginator,
diff --git a/src/components/Training/Create.vue b/src/views/TrainingProcessCreate.vue
similarity index 99%
rename from src/components/Training/Create.vue
rename to src/views/TrainingProcessCreate.vue
index cc6fcc26169b381d9bdfe5daa6c5e5696758c9b3..79d6ecd455fcfd9fe768504f117622fee064934a 100644
--- a/src/components/Training/Create.vue
+++ b/src/views/TrainingProcessCreate.vue
@@ -299,7 +299,7 @@
 <script>
 import { mapMutations } from 'vuex'
 import FolderPicker from '@/components/Navigation/FolderPicker/FolderPicker'
-import WorkerList from '@/components/Process/Workers/List'
+import WorkerList from '@/views/Process/Workers/List'
 import ConfigurationList from '@/components/Process/Workers/Configurations/List'
 import ModelPicker from '@/components/Model/ModelPicker'
 import ModelVersionPicker from '@/components/Model/Versions/ModelVersionPicker'
diff --git a/src/components/Welcome.vue b/src/views/Welcome.vue
similarity index 100%
rename from src/components/Welcome.vue
rename to src/views/Welcome.vue