diff --git a/src/components/pages/Conference/CscConferenceJoin.vue b/src/components/pages/Conference/CscConferenceJoin.vue
index d124f131..acb0b9e9 100644
--- a/src/components/pages/Conference/CscConferenceJoin.vue
+++ b/src/components/pages/Conference/CscConferenceJoin.vue
@@ -50,6 +50,7 @@
 				:color="joinButtonColor"
 				:disable="!hasConferenceId || isJoining || !hasRtcEngineCapabilityEnabled"
 				icon="login"
+				text-color="dark"
 				unelevated
 				round
 				size="large"
diff --git a/src/layouts/CscConferenceLayout.vue b/src/layouts/CscLayoutConference.vue
similarity index 100%
rename from src/layouts/CscConferenceLayout.vue
rename to src/layouts/CscLayoutConference.vue
diff --git a/src/layouts/CscMainLayout.vue b/src/layouts/CscLayoutMain.vue
similarity index 100%
rename from src/layouts/CscMainLayout.vue
rename to src/layouts/CscLayoutMain.vue
diff --git a/src/components/pages/CallBlocking/Incoming.vue b/src/pages/CscPageCallBlockingIncoming.vue
similarity index 52%
rename from src/components/pages/CallBlocking/Incoming.vue
rename to src/pages/CscPageCallBlockingIncoming.vue
index 674fe110..570b48c6 100644
--- a/src/components/pages/CallBlocking/Incoming.vue
+++ b/src/pages/CscPageCallBlockingIncoming.vue
@@ -5,16 +5,11 @@
 </template>
 
 <script>
-import CscCallBlocking from './CscCallBlocking'
+import CscCallBlocking from 'components/pages/CallBlocking/CscCallBlocking'
 export default {
+	name: 'CscPageCallBlockingIncoming',
 	components: {
 		CscCallBlocking
-	},
-	data () {
-		return {}
 	}
 }
 </script>
-
-<style lang="stylus" rel="stylesheet/stylus">
-</style>
diff --git a/src/components/pages/CallBlocking/Outgoing.vue b/src/pages/CscPageCallBlockingOutgoing.vue
similarity index 52%
rename from src/components/pages/CallBlocking/Outgoing.vue
rename to src/pages/CscPageCallBlockingOutgoing.vue
index fd14b44d..d35a08b2 100644
--- a/src/components/pages/CallBlocking/Outgoing.vue
+++ b/src/pages/CscPageCallBlockingOutgoing.vue
@@ -5,16 +5,11 @@
 </template>
 
 <script>
-import CscCallBlocking from './CscCallBlocking'
+import CscCallBlocking from 'components/pages/CallBlocking/CscCallBlocking'
 export default {
+	name: 'CscPageCallBlockingOutgoing',
 	components: {
 		CscCallBlocking
-	},
-	data () {
-		return {}
 	}
 }
 </script>
-
-<style lang="stylus" rel="stylesheet/stylus">
-</style>
diff --git a/src/components/pages/CallBlocking/Privacy.vue b/src/pages/CscPageCallBlockingPrivacy.vue
similarity index 92%
rename from src/components/pages/CallBlocking/Privacy.vue
rename to src/pages/CscPageCallBlockingPrivacy.vue
index 0188940f..a7ddb34d 100644
--- a/src/components/pages/CallBlocking/Privacy.vue
+++ b/src/pages/CscPageCallBlockingPrivacy.vue
@@ -38,9 +38,10 @@ import {
 import {
 	showToast
 } from 'src/helpers/ui'
-import CscPage from '../../CscPage'
+import CscPage from 'components/CscPage'
 import CscSpinner from 'components/CscSpinner'
 export default {
+	name: 'CscPageCallBlockingPrivacy',
 	components: {
 		CscSpinner,
 		CscPage
@@ -93,8 +94,3 @@ export default {
 	}
 }
 </script>
-
-<style lang="stylus" rel="stylesheet/stylus">
-    .csc-privacy
-        position relative
-</style>
diff --git a/src/components/pages/CallForward/AfterHours.vue b/src/pages/CscPageCallForwardAfterHours.vue
similarity index 58%
rename from src/components/pages/CallForward/AfterHours.vue
rename to src/pages/CscPageCallForwardAfterHours.vue
index c3b3651d..f8b16807 100644
--- a/src/components/pages/CallForward/AfterHours.vue
+++ b/src/pages/CscPageCallForwardAfterHours.vue
@@ -5,13 +5,10 @@
 </template>
 
 <script>
-import CscCallForwardTimeset from './CscCallForwardTimeset'
+import CscCallForwardTimeset from 'components/pages/CallForward/CscCallForwardTimeset'
 export default {
 	components: {
 		CscCallForwardTimeset
 	}
 }
 </script>
-
-<style lang="stylus" rel="stylesheet/stylus">
-</style>
diff --git a/src/components/pages/CallForward/Always.vue b/src/pages/CscPageCallForwardAlways.vue
similarity index 96%
rename from src/components/pages/CallForward/Always.vue
rename to src/pages/CscPageCallForwardAlways.vue
index 0073bf25..e678332c 100644
--- a/src/components/pages/CallForward/Always.vue
+++ b/src/pages/CscPageCallForwardAlways.vue
@@ -24,7 +24,7 @@ import {
 	showToast,
 	showGlobalError
 } from 'src/helpers/ui'
-import CscSourcesets from './CscSourcesets'
+import CscSourcesets from 'components/pages/CallForward/CscSourcesets'
 export default {
 	components: {
 		CscSourcesets
diff --git a/src/components/pages/CallForward/CompanyHours.vue b/src/pages/CscPageCallForwardCompanyHours.vue
similarity index 58%
rename from src/components/pages/CallForward/CompanyHours.vue
rename to src/pages/CscPageCallForwardCompanyHours.vue
index eea4f95c..ef64da03 100644
--- a/src/components/pages/CallForward/CompanyHours.vue
+++ b/src/pages/CscPageCallForwardCompanyHours.vue
@@ -5,13 +5,10 @@
 </template>
 
 <script>
-import CscCallForwardTimeset from './CscCallForwardTimeset'
+import CscCallForwardTimeset from 'components/pages/CallForward/CscCallForwardTimeset'
 export default {
 	components: {
 		CscCallForwardTimeset
 	}
 }
 </script>
-
-<style lang="stylus" rel="stylesheet/stylus">
-</style>
diff --git a/src/components/pages/Conversations/CscConversations.vue b/src/pages/CscPageConversations.vue
similarity index 57%
rename from src/components/pages/Conversations/CscConversations.vue
rename to src/pages/CscPageConversations.vue
index 24632714..debf11ef 100644
--- a/src/components/pages/Conversations/CscConversations.vue
+++ b/src/pages/CscPageConversations.vue
@@ -78,104 +78,6 @@
 				/>
 			</div>
 		</q-infinite-scroll>
-		<!--		<q-tabs-->
-		<!--			id="csc-conversations-tabs"-->
-		<!--			v-model="selectedTab"-->
-		<!--			inverted-->
-		<!--			color="primary"-->
-		<!--			align="justify"-->
-		<!--		>-->
-		<!--			<q-tab-->
-		<!--				slot="title"-->
-		<!--				default-->
-		<!--				name="call-fax-voicemail"-->
-		<!--				icon="inbox"-->
-		<!--				:label="labelAll"-->
-		<!--				@click="filterByType('call-fax-voicemail')"-->
-		<!--			/>-->
-		<!--			<q-tab-->
-		<!--				slot="title"-->
-		<!--				name="call"-->
-		<!--				icon="call"-->
-		<!--				:label="labelCalls"-->
-		<!--				@click="filterByType('call')"-->
-		<!--			/>-->
-		<!--			<q-tab-->
-		<!--				slot="title"-->
-		<!--				name="fax"-->
-		<!--				icon="description"-->
-		<!--				:label="labelFaxes"-->
-		<!--				@click="filterByType('fax')"-->
-		<!--			/>-->
-		<!--			<q-tab-->
-		<!--				slot="title"-->
-		<!--				name="voicemail"-->
-		<!--				icon="voicemail"-->
-		<!--				:label="labelVoicemails"-->
-		<!--				@click="filterByType('voicemail')"-->
-		<!--			/>-->
-		<!--		</q-tabs>-->
-		<!--		<div-->
-		<!--			id="csc-conversation-content"-->
-		<!--		>-->
-		<!--			<q-list-->
-		<!--				v-if="items.length > 0"-->
-		<!--				id="csc-conversation-list"-->
-		<!--				no-border-->
-		<!--				striped-odd-->
-		<!--				multiline-->
-		<!--			>-->
-		<!--				<csc-conversation-item-->
-		<!--					v-for="item in items"-->
-		<!--					:key="item._id"-->
-		<!--					class="csc-list-item csc-conversation-list-item"-->
-		<!--					:item="item"-->
-		<!--					:call-available="isCallEnabled"-->
-		<!--					:blocked-incoming="blockedIncoming(item)"-->
-		<!--					:blocked-outgoing="blockedOutgoing(item)"-->
-		<!--					@start-call="startCall"-->
-		<!--					@download-fax="downloadFax"-->
-		<!--					@download-voice-mail="downloadVoiceMail"-->
-		<!--					@play-voice-mail="playVoiceMail"-->
-		<!--					@toggle-block-incoming="toggleBlockIncoming"-->
-		<!--					@toggle-block-outgoing="toggleBlockOutgoing"-->
-		<!--					@toggle-block-both="toggleBlockBoth"-->
-		<!--					@delete-voicemail="$refs.confirmDeletionDialog.open();deletionId=$event.id"-->
-		<!--				/>-->
-		<!--			</q-list>-->
-		<!--			<div-->
-		<!--				v-else-if="!isNextPageRequesting && items.length === 0"-->
-		<!--				class="row justify-center csc-conversation-list-message"-->
-		<!--			>-->
-		<!--				{{ noResultsMessage }}-->
-		<!--			</div>-->
-		<!--			<div-->
-		<!--				v-if="isNextPageRequesting"-->
-		<!--				class="row justify-center"-->
-		<!--			>-->
-		<!--				<q-spinner-dots-->
-		<!--					color="primary"-->
-		<!--					:size="40"-->
-		<!--				/>-->
-		<!--			</div>-->
-		<!--		</div>-->
-		<!--		&lt;!&ndash;		<q-scroll-observable&ndash;&gt;-->
-		<!--		&lt;!&ndash;			@scroll="scroll"&ndash;&gt;-->
-		<!--		&lt;!&ndash;		/>&ndash;&gt;-->
-		<!--		<q-page-scroller-->
-		<!--			position="bottom-right"-->
-		<!--			:scroll-offset="100"-->
-		<!--		>-->
-		<!--			<q-btn-->
-		<!--				round-->
-		<!--				color="primary"-->
-		<!--				:class="backToTopClasses"-->
-		<!--			>-->
-		<!--				<q-icon-->
-		<!--					name="keyboard_arrow_up"-->
-		<!--				/>-->
-		<!--			</q-btn>-->
-		<!--		</q-page-scroller>-->
 		<csc-remove-dialog
 			ref="confirmDeletionDialog"
 			title-icon="delete"
@@ -188,15 +90,15 @@
 </template>
 
 <script>
-import platformMixin from '../../../mixins/platform'
+import platformMixin from 'src/mixins/platform'
 import {
 	mapGetters,
 	mapActions,
 	mapState
 } from 'vuex'
-import CscPage from '../../CscPage'
-import CscConversationItem from './CscConversationItem'
-import CscRemoveDialog from '../../CscRemoveDialog'
+import CscPage from 'components/CscPage'
+import CscConversationItem from 'components/pages/Conversations/CscConversationItem'
+import CscRemoveDialog from 'components/CscRemoveDialog'
 import CscListSpinner from 'components/CscListSpinner'
 export default {
 	name: 'CscConversations',
@@ -308,81 +210,6 @@ export default {
 				return this.$t('pages.conversations.tabLabelVoicemails')
 			}
 		}
-		// isCalling () {
-		// 	return this.callState === 'initiating' ||
-		// 		this.callState === 'ringing' ||
-		// 		this.callState === 'established' ||
-		// 		this.callState === 'incoming'
-		// },
-		// backToTopClasses () {
-		// 	const classes = [
-		// 		'fixed-bottom-right',
-		// 		'animate-pop',
-		// 		'csc-back-to-top',
-		// 		'transition-generic'
-		// 	]
-		// 	if (this.isCalling) {
-		// 		classes.push('csc-back-to-top-calling')
-		// 	}
-		// 	return classes
-		// }
-	},
-	watch: {
-		// downloadVoiceMailState (state) {
-		// 	if (state === 'requesting') {
-		// 		startLoading()
-		// 	} else if (state === 'failed') {
-		// 		stopLoading()
-		// 		showGlobalError(this.downloadVoiceMailError || this.$t('pages.conversations.downloadVoiceMailErrorMessage'))
-		// 	} else if (state === 'succeeded') {
-		// 		stopLoading()
-		// 		showToast(this.$t('pages.conversations.downloadVoiceMailSuccessMessage'))
-		// 	}
-		// },
-		// downloadFaxState (state) {
-		// 	if (state === 'requesting') {
-		// 		startLoading()
-		// 	} else if (state === 'failed') {
-		// 		stopLoading()
-		// 		showGlobalError(this.downloadFaxError || this.$t('pages.conversations.downloadFaxErrorMessage'))
-		// 	} else if (state === 'succeeded') {
-		// 		stopLoading()
-		// 		showToast(this.$t('pages.conversations.downloadFaxSuccessMessage'))
-		// 	}
-		// },
-		// reloadItemsState (state) {
-		// 	if (state === 'failed') {
-		// 		showGlobalError(this.reloadItemsError)
-		// 	}
-		// },
-		// callState (newState, oldState) {
-		// 	const endedA = newState === 'ended'
-		// 	const endedB = oldState === 'established' && newState === 'input'
-		// 	const endedC = oldState === 'ringing' && newState === 'input'
-		// 	const endedD = oldState === 'incoming' && newState === 'input'
-		// 	const isCallTab = this.selectedTab === 'call' || this.selectedTab === 'call-fax-voicemail'
-		// 	if (isCallTab && (endedA || endedB || endedC || endedD)) {
-		// 		this.reloadItems()
-		// 	}
-		// },
-		// itemsReloaded (state) {
-		// 	const offsetTop = offset(this.$el).top
-		// 	if (state && offsetTop < -15) {
-		// 		window.scrollTo(0, 0)
-		// 	}
-		// },
-		// toggleBlockedState (state) {
-		// 	if (state === 'requesting') {
-		// 		startLoading()
-		// 	} else if (state === 'failed') {
-		// 		stopLoading()
-		// 	} else if (state === 'succeeded') {
-		// 		stopLoading()
-		// 		showToast(this.$t('pages.conversations.toggledSuccessMessage', {
-		// 			type: this.lastToggledType
-		// 		}))
-		// 	}
-		// }
 	},
 	async mounted () {
 		this.topMargin = this.$refs.pageSticky.$el.offsetHeight
diff --git a/src/pages/CscPageError404.vue b/src/pages/CscPageError404.vue
new file mode 100644
index 00000000..a56168d9
--- /dev/null
+++ b/src/pages/CscPageError404.vue
@@ -0,0 +1,46 @@
+<template>
+	<csc-page
+		class="flex flex-center"
+	>
+		<q-card
+			flat
+			class="bg-transparent"
+		>
+			<q-card-section
+				class="text-center"
+			>
+				<q-icon
+					class="q-mb-md"
+					size="48px"
+					name="sentiment_dissatisfied"
+				/>
+				<div
+					class="text-h4"
+				>
+					{{ $t('notFound') }}
+				</div>
+			</q-card-section>
+			<q-card-actions
+				align="center"
+			>
+				<q-btn
+					color="primary"
+					icon="home"
+					text-color="dark"
+					unelevated
+					to="/user/home"
+				/>
+			</q-card-actions>
+		</q-card>
+	</csc-page>
+</template>
+
+<script>
+import CscPage from 'components/CscPage'
+export default {
+	name: 'CscPageError404',
+	components: {
+		CscPage
+	}
+}
+</script>
diff --git a/src/components/pages/CscPageHome.vue b/src/pages/CscPageHome.vue
similarity index 93%
rename from src/components/pages/CscPageHome.vue
rename to src/pages/CscPageHome.vue
index b7d54ccb..1f5e7b97 100644
--- a/src/components/pages/CscPageHome.vue
+++ b/src/pages/CscPageHome.vue
@@ -11,7 +11,7 @@
 			>
 				{{ $t('call.rtcEngineNotEnabled') }}
 			</csc-inline-alert-info>
-			<q-input
+			<csc-input
 				:label="$t('call.number')"
 				:value="callNumberInput"
 				:readonly="dialpadOpened"
@@ -31,7 +31,7 @@
 						size="24px"
 					/>
 				</template>
-			</q-input>
+			</csc-input>
 			<csc-call-dialpad
 				v-if="dialpadOpened && isCallEnabled"
 				:show-backspace-button="true"
@@ -45,16 +45,18 @@
 </template>
 
 <script>
-import platformMixin from '../../mixins/platform'
+import platformMixin from 'src/mixins/platform'
 import {
 	mapGetters
 } from 'vuex'
-import CscCallDialpad from '../CscCallDialpad'
+import CscCallDialpad from 'components/CscCallDialpad'
 import CscPage from 'components/CscPage'
 import CscInlineAlertInfo from 'components/CscInlineAlertInfo'
+import CscInput from 'components/form/CscInput'
 
 export default {
 	components: {
+		CscInput,
 		CscInlineAlertInfo,
 		CscPage,
 		CscCallDialpad
diff --git a/src/components/CscPageLogin.vue b/src/pages/CscPageLogin.vue
similarity index 82%
rename from src/components/CscPageLogin.vue
rename to src/pages/CscPageLogin.vue
index 4fc41031..f36db7cf 100644
--- a/src/components/CscPageLogin.vue
+++ b/src/pages/CscPageLogin.vue
@@ -66,25 +66,6 @@
 								clearable
 								@keypress.enter="login()"
 							/>
-							<!--							<q-input-->
-							<!--								v-model="password"-->
-							<!--								class="q-mb-sm"-->
-							<!--								type="password"-->
-							<!--								max-length="32"-->
-							<!--								flat-->
-							<!--								:label="$t('pages.login.password')"-->
-							<!--								:disable="loginRequesting"-->
-							<!--								clearable-->
-							<!--								@keyup.enter="login()"-->
-							<!--							>-->
-							<!--								<template-->
-							<!--									slot="prepend"-->
-							<!--								>-->
-							<!--									<q-icon-->
-							<!--										name="lock"-->
-							<!--									/>-->
-							<!--								</template>-->
-							<!--							</q-input>-->
 						</form>
 					</q-card-section>
 					<q-card-actions
@@ -125,7 +106,7 @@ import {
 import {
 	getLanguageLabel
 } from '../i18n'
-import CscLanguageMenu from './CscLanguageMenu'
+import CscLanguageMenu from 'components/CscLanguageMenu'
 import CscSpinner from 'components/CscSpinner'
 import CscInputPassword from 'components/form/CscInputPassword'
 import CscInput from 'components/form/CscInput'
diff --git a/src/components/pages/NewCallForward/CscNewCallForward.vue b/src/pages/CscPageNewCallForward.vue
similarity index 95%
rename from src/components/pages/NewCallForward/CscNewCallForward.vue
rename to src/pages/CscPageNewCallForward.vue
index efeda645..5d829e35 100644
--- a/src/components/pages/NewCallForward/CscNewCallForward.vue
+++ b/src/pages/CscPageNewCallForward.vue
@@ -96,9 +96,9 @@ import {
 import {
 	showGlobalWarning
 } from 'src/helpers/ui'
-import CscPage from '../../CscPage'
-import CscNewCallForwardDestinationsetTypeSelect from './CscNewCallForwardDestinationsetTypeSelect'
-import CscCfGroup from './CscCallForwardGroup'
+import CscPage from 'components/CscPage'
+import CscNewCallForwardDestinationsetTypeSelect from 'components/pages/NewCallForward/CscNewCallForwardDestinationsetTypeSelect'
+import CscCfGroup from 'components/pages/NewCallForward/CscCallForwardGroup'
 export default {
 	components: {
 		CscCfGroup,
diff --git a/src/components/pages/PbxConfiguration/CscPbxCallQueues.vue b/src/pages/CscPagePbxCallQueues.vue
similarity index 90%
rename from src/components/pages/PbxConfiguration/CscPbxCallQueues.vue
rename to src/pages/CscPagePbxCallQueues.vue
index 86ba4c65..0634c6a2 100644
--- a/src/components/pages/PbxConfiguration/CscPbxCallQueues.vue
+++ b/src/pages/CscPagePbxCallQueues.vue
@@ -76,12 +76,12 @@
 </template>
 
 <script>
-import CscPage from '../../CscPage'
-import CscPbxCallQueue from './CscPbxCallQueue'
-import CscPbxCallQueueAddForm from './CscPbxCallQueueAddForm'
-import CscRemoveDialog from '../../CscRemoveDialog'
-import CscListSpinner from '../../CscListSpinner'
-import CscListActions from '../../CscListActions'
+import CscPage from 'components/CscPage'
+import CscPbxCallQueue from 'components/pages/PbxConfiguration/CscPbxCallQueue'
+import CscPbxCallQueueAddForm from 'components/pages/PbxConfiguration/CscPbxCallQueueAddForm'
+import CscRemoveDialog from 'components/CscRemoveDialog'
+import CscListSpinner from 'components/CscListSpinner'
+import CscListActions from 'components/CscListActions'
 import {
 	mapState,
 	mapActions,
@@ -96,9 +96,9 @@ import {
 	showGlobalError,
 	showToast
 } from 'src/helpers/ui'
-import CscList from '../../CscList'
-import CscFade from '../../transitions/CscFade'
-import CscListActionButton from '../../CscListActionButton'
+import CscList from 'components/CscList'
+import CscFade from 'components/transitions/CscFade'
+import CscListActionButton from 'components/CscListActionButton'
 
 export default {
 	components: {
diff --git a/src/components/pages/PbxConfiguration/CscPbxDevices.vue b/src/pages/CscPagePbxDevices.vue
similarity index 93%
rename from src/components/pages/PbxConfiguration/CscPbxDevices.vue
rename to src/pages/CscPagePbxDevices.vue
index c9111b5c..0101910c 100644
--- a/src/components/pages/PbxConfiguration/CscPbxDevices.vue
+++ b/src/pages/CscPagePbxDevices.vue
@@ -143,16 +143,16 @@ import {
 	mapGetters,
 	mapMutations
 } from 'vuex'
-import CscPage from '../../CscPage'
-import CscList from '../../CscList'
-import CscPbxDevice from './CscPbxDevice'
-import CscFade from '../../transitions/CscFade'
-import CscListSpinner from '../../CscListSpinner'
-import CscListActions from '../../CscListActions'
-import CscListActionButton from '../../CscListActionButton'
-import CscPbxDeviceFilters from './CscPbxDeviceFilters'
-import CscPbxDeviceAddForm from './CscPbxDeviceAddForm'
-import CscRemoveDialog from '../../CscRemoveDialog'
+import CscPage from 'components/CscPage'
+import CscList from 'components/CscList'
+import CscPbxDevice from 'components/pages/PbxConfiguration/CscPbxDevice'
+import CscFade from 'components/transitions/CscFade'
+import CscListSpinner from 'components/CscListSpinner'
+import CscListActions from 'components/CscListActions'
+import CscListActionButton from 'components/CscListActionButton'
+import CscPbxDeviceFilters from 'components/pages/PbxConfiguration/CscPbxDeviceFilters'
+import CscPbxDeviceAddForm from 'components/pages/PbxConfiguration/CscPbxDeviceAddForm'
+import CscRemoveDialog from 'components/CscRemoveDialog'
 import {
 	showGlobalError,
 	showToast
diff --git a/src/components/pages/PbxConfiguration/CscPbxGroups.vue b/src/pages/CscPagePbxGroups.vue
similarity index 91%
rename from src/components/pages/PbxConfiguration/CscPbxGroups.vue
rename to src/pages/CscPagePbxGroups.vue
index 294bf870..5540fb10 100644
--- a/src/components/pages/PbxConfiguration/CscPbxGroups.vue
+++ b/src/pages/CscPagePbxGroups.vue
@@ -98,12 +98,12 @@
 </template>
 
 <script>
-import CscPage from '../../CscPage'
-import CscPbxGroupAddForm from './CscPbxGroupAddForm'
-import CscPbxGroup from './CscPbxGroup'
-import CscRemoveDialog from '../../CscRemoveDialog'
-import CscListActions from '../../CscListActions'
-import CscListActionButton from '../../CscListActionButton'
+import CscPage from 'components/CscPage'
+import CscPbxGroupAddForm from 'components/pages/PbxConfiguration/CscPbxGroupAddForm'
+import CscPbxGroup from 'components/pages/PbxConfiguration/CscPbxGroup'
+import CscRemoveDialog from 'components/CscRemoveDialog'
+import CscListActions from 'components/CscListActions'
+import CscListActionButton from 'components/CscListActionButton'
 import {
 	mapState,
 	mapGetters,
@@ -118,10 +118,10 @@ import {
 	CreationState,
 	RequestState
 } from 'src/store/common'
-import platform from '../../../mixins/platform'
-import CscFade from '../../transitions/CscFade'
-import CscList from '../../CscList'
-import CscListSpinner from '../../CscListSpinner'
+import platform from 'src/mixins/platform'
+import CscFade from 'components/transitions/CscFade'
+import CscList from 'components/CscList'
+import CscListSpinner from 'components/CscListSpinner'
 
 export default {
 	components: {
diff --git a/src/components/pages/PbxConfiguration/CscPbxMsConfigs.vue b/src/pages/CscPagePbxMsConfigs.vue
similarity index 90%
rename from src/components/pages/PbxConfiguration/CscPbxMsConfigs.vue
rename to src/pages/CscPagePbxMsConfigs.vue
index 21471759..9f29ceed 100644
--- a/src/components/pages/PbxConfiguration/CscPbxMsConfigs.vue
+++ b/src/pages/CscPagePbxMsConfigs.vue
@@ -88,15 +88,15 @@ import {
 	showGlobalError,
 	showToast
 } from 'src/helpers/ui'
-import CscPage from '../../CscPage'
-import CscPbxMsConfig from './CscPbxMsConfig'
-import CscPbxMsConfigAddForm from './CscPbxMsConfigAddForm'
-import CscRemoveDialog from '../../CscRemoveDialog'
-import CscListSpinner from '../../CscListSpinner'
-import CscListActions from '../../CscListActions'
-import CscList from '../../CscList'
-import CscFade from '../../transitions/CscFade'
-import CscListActionButton from '../../CscListActionButton'
+import CscPage from 'components/CscPage'
+import CscPbxMsConfig from 'components/pages/PbxConfiguration/CscPbxMsConfig'
+import CscPbxMsConfigAddForm from 'components/pages/PbxConfiguration/CscPbxMsConfigAddForm'
+import CscRemoveDialog from 'components/CscRemoveDialog'
+import CscListSpinner from 'components/CscListSpinner'
+import CscListActions from 'components/CscListActions'
+import CscList from 'components/CscList'
+import CscFade from 'components/transitions/CscFade'
+import CscListActionButton from 'components/CscListActionButton'
 
 export default {
 	components: {
diff --git a/src/components/pages/PbxConfiguration/CscPbxSeats.vue b/src/pages/CscPagePbxSeats.vue
similarity index 95%
rename from src/components/pages/PbxConfiguration/CscPbxSeats.vue
rename to src/pages/CscPagePbxSeats.vue
index 8f1b074b..f68fe64c 100644
--- a/src/components/pages/PbxConfiguration/CscPbxSeats.vue
+++ b/src/pages/CscPagePbxSeats.vue
@@ -114,9 +114,9 @@
 
 <script>
 import _ from 'lodash'
-import CscPbxSeatAddForm from './CscPbxSeatAddForm'
-import CscPbxSeat from './CscPbxSeat'
-import CscRemoveDialog from '../../CscRemoveDialog'
+import CscPbxSeatAddForm from 'components/pages/PbxConfiguration/CscPbxSeatAddForm'
+import CscPbxSeat from 'components/pages/PbxConfiguration/CscPbxSeat'
+import CscRemoveDialog from 'components/CscRemoveDialog'
 import {
 	mapState,
 	mapGetters,
@@ -127,13 +127,12 @@ import {
 	showGlobalError,
 	showToast
 } from 'src/helpers/ui'
-import CscSpinner from '../../CscSpinner'
+import CscSpinner from 'components/CscSpinner'
 import {
 	CreationState,
 	RequestState
 } from 'src/store/common'
-import platform from '../../../mixins/platform'
-// import CscList from '../../CscList'
+import platform from 'src/mixins/platform'
 import CscPageSticky from 'components/CscPageSticky'
 import CscPbxSeatFilters from 'components/pages/PbxConfiguration/CscPbxSeatFilters'
 
@@ -145,9 +144,6 @@ export default {
 		CscPbxSeat,
 		CscPbxSeatAddForm,
 		CscRemoveDialog
-		// CscList
-		// CscListActions,
-		// CscListActionButton
 	},
 	mixins: [
 		platform
diff --git a/src/components/pages/PbxSettings/CscPbxSettings.vue b/src/pages/CscPagePbxSettings.vue
similarity index 98%
rename from src/components/pages/PbxSettings/CscPbxSettings.vue
rename to src/pages/CscPagePbxSettings.vue
index 939d8c30..565e27c9 100644
--- a/src/components/pages/PbxSettings/CscPbxSettings.vue
+++ b/src/pages/CscPagePbxSettings.vue
@@ -32,7 +32,7 @@
 
 <script>
 import { mapState, mapActions, mapGetters } from 'vuex'
-import CscPage from '../../CscPage'
+import CscPage from 'components/CscPage'
 import {
 	showGlobalError,
 	showToast
diff --git a/src/components/pages/PbxConfiguration/CscPbxSoundSets.vue b/src/pages/CscPagePbxSoundSets.vue
similarity index 91%
rename from src/components/pages/PbxConfiguration/CscPbxSoundSets.vue
rename to src/pages/CscPagePbxSoundSets.vue
index b8c751d3..e6bd6f66 100644
--- a/src/components/pages/PbxConfiguration/CscPbxSoundSets.vue
+++ b/src/pages/CscPagePbxSoundSets.vue
@@ -105,15 +105,15 @@ import {
 	mapState,
 	mapGetters
 } from 'vuex'
-import CscPage from '../../CscPage'
-import CscList from '../../CscList'
-import CscFade from '../../transitions/CscFade'
-import CscListActions from '../../CscListActions'
-import CscListActionButton from '../../CscListActionButton'
-import CscPbxSoundSet from './CscPbxSoundSet'
-import CscListSpinner from '../../CscListSpinner'
-import CscPbxSoundSetAddForm from './CscPbxSoundSetAddForm'
-import CscRemoveDialog from '../../CscRemoveDialog'
+import CscPage from 'components/CscPage'
+import CscList from 'components/CscList'
+import CscFade from 'components/transitions/CscFade'
+import CscListActions from 'components/CscListActions'
+import CscListActionButton from 'components/CscListActionButton'
+import CscPbxSoundSet from 'components/pages/PbxConfiguration/CscPbxSoundSet'
+import CscListSpinner from 'components/CscListSpinner'
+import CscPbxSoundSetAddForm from 'components/pages/PbxConfiguration/CscPbxSoundSetAddForm'
+import CscRemoveDialog from 'components/CscRemoveDialog'
 
 export default {
 	components: {
diff --git a/src/components/pages/CscPageReminder.vue b/src/pages/CscPageReminder.vue
similarity index 99%
rename from src/components/pages/CscPageReminder.vue
rename to src/pages/CscPageReminder.vue
index 409fdab5..7e231299 100644
--- a/src/components/pages/CscPageReminder.vue
+++ b/src/pages/CscPageReminder.vue
@@ -94,7 +94,7 @@ import {
 	mapGetters,
 	mapActions
 } from 'vuex'
-import CscPage from '../CscPage'
+import CscPage from 'components/CscPage'
 import {
 	showToast
 } from 'src/helpers/ui'
diff --git a/src/components/pages/SpeedDial/CscPageSpeedDial.vue b/src/pages/CscPageSpeedDial.vue
similarity index 97%
rename from src/components/pages/SpeedDial/CscPageSpeedDial.vue
rename to src/pages/CscPageSpeedDial.vue
index 3636bc27..b5f103f5 100644
--- a/src/components/pages/SpeedDial/CscPageSpeedDial.vue
+++ b/src/pages/CscPageSpeedDial.vue
@@ -91,8 +91,8 @@
 import {
 	mapGetters
 } from 'vuex'
-import CscPage from '../../CscPage'
-import CscSpeedDialAddForm from './CscSpeedDialAddForm'
+import CscPage from 'components/CscPage'
+import CscSpeedDialAddForm from 'components/pages/SpeedDial/CscSpeedDialAddForm'
 import {
 	showToast,
 	showGlobalError
diff --git a/src/components/pages/CscUserSettings.vue b/src/pages/CscPageUserSettings.vue
similarity index 89%
rename from src/components/pages/CscUserSettings.vue
rename to src/pages/CscPageUserSettings.vue
index 252c2025..7e2d75d6 100644
--- a/src/components/pages/CscUserSettings.vue
+++ b/src/pages/CscPageUserSettings.vue
@@ -28,8 +28,8 @@ import {
 	mapGetters,
 	mapActions
 } from 'vuex'
-import CscPage from '../CscPage'
-import CscChangePassword from './UserSettings/CscChangePassword'
+import CscPage from 'components/CscPage'
+import CscChangePassword from 'components/pages/UserSettings/CscChangePassword'
 
 export default {
 	name: 'CscPageUserSettings',
diff --git a/src/components/pages/Voicebox/CscPageVoicebox.vue b/src/pages/CscPageVoicebox.vue
similarity index 100%
rename from src/components/pages/Voicebox/CscPageVoicebox.vue
rename to src/pages/CscPageVoicebox.vue
diff --git a/src/pages/Error404.vue b/src/pages/Error404.vue
deleted file mode 100644
index 55d4554f..00000000
--- a/src/pages/Error404.vue
+++ /dev/null
@@ -1,32 +0,0 @@
-<template>
-	<div class="fullscreen bg-blue text-white text-center q-pa-md flex flex-center">
-		<div>
-			<div style="font-size: 30vh">
-				404
-			</div>
-
-			<div
-				class="text-h2"
-				style="opacity:.4"
-			>
-				Oops. Nothing here...
-			</div>
-
-			<q-btn
-				class="q-mt-xl"
-				color="white"
-				text-color="blue"
-				unelevated
-				to="/"
-				label="Go Home"
-				no-caps
-			/>
-		</div>
-	</div>
-</template>
-
-<script>
-export default {
-	name: 'Error404'
-}
-</script>
diff --git a/src/pages/Index.vue b/src/pages/Index.vue
deleted file mode 100644
index 5eb8f12e..00000000
--- a/src/pages/Index.vue
+++ /dev/null
@@ -1,14 +0,0 @@
-<template>
-	<q-page class="flex flex-center">
-		<img
-			alt="Quasar logo"
-			src="~assets/quasar-logo-full.svg"
-		>
-	</q-page>
-</template>
-
-<script>
-export default {
-	name: 'PageIndex'
-}
-</script>
diff --git a/src/router/routes.js b/src/router/routes.js
index 8e83c3c8..83329014 100644
--- a/src/router/routes.js
+++ b/src/router/routes.js
@@ -1,46 +1,47 @@
 
-import ConferenceLayout from 'src/layouts/CscConferenceLayout'
-import DefaultLayout from 'src/layouts/CscMainLayout'
-import Home from 'src/components/pages/CscPageHome'
-import Conversations from 'src/components/pages/Conversations/CscConversations'
-import CscNewCallForward from 'src/components/pages/NewCallForward/CscNewCallForward'
-import CallForwardAlways from 'src/components/pages/CallForward/Always'
-import CallForwardCompanyHours from 'src/components/pages/CallForward/CompanyHours'
-import CallForwardAfterHours from 'src/components/pages/CallForward/AfterHours'
-import CallBlockingIncoming from 'src/components/pages/CallBlocking/Incoming'
-import CallBlockingOutgoing from 'src/components/pages/CallBlocking/Outgoing'
-import CallBlockingPrivacy from 'src/components/pages/CallBlocking/Privacy'
-import Reminder from 'src/components/pages/CscPageReminder'
-import SpeedDial from 'src/components/pages/SpeedDial/CscPageSpeedDial'
-import PbxConfigurationGroups from 'src/components/pages/PbxConfiguration/CscPbxGroups'
-import PbxConfigurationSeats from 'src/components/pages/PbxConfiguration/CscPbxSeats'
-import PbxConfigurationDevices from 'src/components/pages/PbxConfiguration/CscPbxDevices'
-import PbxConfigurationCallQueues from 'src/components/pages/PbxConfiguration/CscPbxCallQueues'
-import PbxConfigurationSoundSets from 'src/components/pages/PbxConfiguration/CscPbxSoundSets'
-import PbxConfigurationMsConfigs from 'src/components/pages/PbxConfiguration/CscPbxMsConfigs'
-import CscPbxSettings from 'src/components/pages/PbxSettings/CscPbxSettings'
-import Voicebox from 'src/components/pages/Voicebox/CscPageVoicebox'
-import Login from 'src/components/CscPageLogin'
-import CscUserSettings from 'src/components/pages/CscUserSettings'
-import Error404 from 'src/components/Error404'
+import CscLayoutConference from 'src/layouts/CscLayoutConference'
+import CscLayoutMain from 'src/layouts/CscLayoutMain'
+
+import CscPageLogin from 'src/pages/CscPageLogin'
+import CscPageHome from 'src/pages/CscPageHome'
+import CscPageConversations from 'src/pages/CscPageConversations'
+import CscPageNewCallForward from 'src/pages/CscPageNewCallForward'
+import CscPageCallForwardAlways from 'src/pages/CscPageCallForwardAlways'
+import CscPageCallForwardCompanyHours from 'src/pages/CscPageCallForwardCompanyHours'
+import CscPageCallForwardAfterHours from 'src/pages/CscPageCallForwardAfterHours'
+import CscPageCallBlockingIncoming from 'src/pages/CscPageCallBlockingIncoming'
+import CscPageCallBlockingOutgoing from 'src/pages/CscPageCallBlockingOutgoing'
+import CscPageCallBlockingPrivacy from 'src/pages/CscPageCallBlockingPrivacy'
+import CscPageReminder from 'src/pages/CscPageReminder'
+import CscPageSpeedDial from 'src/pages/CscPageSpeedDial'
+import CscPagePbxGroups from 'src/pages/CscPagePbxGroups'
+import CscPagePbxSeats from 'src/pages/CscPagePbxSeats'
+import CscPagePbxDevices from 'src/pages/CscPagePbxDevices'
+import CscPagePbxCallQueues from 'src/pages/CscPagePbxCallQueues'
+import CscPagePbxSoundSets from 'src/pages/CscPagePbxSoundSets'
+import CscPagePbxMsConfigs from 'src/pages/CscPagePbxMsConfigs'
+import CscPagePbxSettings from 'src/pages/CscPagePbxSettings'
+import CscPageVoicebox from 'src/pages/CscPageVoicebox'
+import CscPageUserSettings from 'src/pages/CscPageUserSettings'
+import CscPageError404 from 'src/pages/CscPageError404'
 
 export default function routes (app) {
 	const i18n = app.i18n
 	return [
 		{
 			path: '/user',
-			component: DefaultLayout,
+			component: CscLayoutMain,
 			children: [
 				{
 					path: 'home',
-					component: Home,
+					component: CscPageHome,
 					meta: {
 						title: i18n.t('call.inputShort')
 					}
 				},
 				{
 					path: 'conversations',
-					component: Conversations,
+					component: CscPageConversations,
 					meta: {
 						title: i18n.t('navigation.conversations.title'),
 						subtitle: i18n.t('navigation.conversations.subTitle')
@@ -48,11 +49,11 @@ export default function routes (app) {
 				},
 				{
 					path: 'new-call-forward',
-					component: CscNewCallForward
+					component: CscPageNewCallForward
 				},
 				{
 					path: 'call-forward/always',
-					component: CallForwardAlways,
+					component: CscPageCallForwardAlways,
 					meta: {
 						title: i18n.t('navigation.callForward.title'),
 						subtitle: i18n.t('navigation.callForward.always')
@@ -60,7 +61,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'call-forward/company-hours',
-					component: CallForwardCompanyHours,
+					component: CscPageCallForwardCompanyHours,
 					meta: {
 						title: i18n.t('navigation.callForward.title'),
 						subtitle: i18n.t('navigation.callForward.companyHours')
@@ -68,7 +69,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'call-forward/after-hours',
-					component: CallForwardAfterHours,
+					component: CscPageCallForwardAfterHours,
 					meta: {
 						title: i18n.t('navigation.callForward.title'),
 						subtitle: i18n.t('navigation.callForward.afterHours')
@@ -76,7 +77,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'call-blocking/incoming',
-					component: CallBlockingIncoming,
+					component: CscPageCallBlockingIncoming,
 					meta: {
 						title: i18n.t('navigation.callBlocking.title'),
 						subtitle: i18n.t('navigation.callBlocking.incoming')
@@ -84,7 +85,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'call-blocking/outgoing',
-					component: CallBlockingOutgoing,
+					component: CscPageCallBlockingOutgoing,
 					meta: {
 						title: i18n.t('navigation.callBlocking.title'),
 						subtitle: i18n.t('navigation.callBlocking.outgoing')
@@ -92,7 +93,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'call-blocking/privacy',
-					component: CallBlockingPrivacy,
+					component: CscPageCallBlockingPrivacy,
 					meta: {
 						title: i18n.t('navigation.callBlocking.title'),
 						subtitle: i18n.t('navigation.callBlocking.privacy')
@@ -100,7 +101,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'reminder',
-					component: Reminder,
+					component: CscPageReminder,
 					meta: {
 						title: i18n.t('navigation.reminder.title'),
 						subtitle: i18n.t('navigation.reminder.subTitle')
@@ -108,7 +109,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'speeddial',
-					component: SpeedDial,
+					component: CscPageSpeedDial,
 					meta: {
 						title: i18n.t('navigation.speeddial.title'),
 						subtitle: i18n.t('navigation.speeddial.subTitle')
@@ -116,7 +117,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'pbx-configuration/groups',
-					component: PbxConfigurationGroups,
+					component: CscPagePbxGroups,
 					meta: {
 						title: i18n.t('navigation.pbxConfiguration.title'),
 						subtitle: i18n.t('navigation.pbxConfiguration.groups')
@@ -124,7 +125,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'pbx-configuration/seats',
-					component: PbxConfigurationSeats,
+					component: CscPagePbxSeats,
 					meta: {
 						title: i18n.t('navigation.pbxConfiguration.title'),
 						subtitle: i18n.t('navigation.pbxConfiguration.seats')
@@ -132,7 +133,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'pbx-configuration/devices',
-					component: PbxConfigurationDevices,
+					component: CscPagePbxDevices,
 					meta: {
 						title: i18n.t('navigation.pbxConfiguration.title'),
 						subtitle: i18n.t('navigation.pbxConfiguration.devices')
@@ -140,7 +141,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'pbx-configuration/call-queues',
-					component: PbxConfigurationCallQueues,
+					component: CscPagePbxCallQueues,
 					meta: {
 						title: i18n.t('navigation.pbxConfiguration.title'),
 						subtitle: i18n.t('navigation.pbxConfiguration.callQueues')
@@ -148,7 +149,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'pbx-configuration/sound-sets',
-					component: PbxConfigurationSoundSets,
+					component: CscPagePbxSoundSets,
 					meta: {
 						title: i18n.t('navigation.pbxConfiguration.title'),
 						subtitle: i18n.t('navigation.pbxConfiguration.soundSets')
@@ -156,7 +157,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'pbx-configuration/ms-configs',
-					component: PbxConfigurationMsConfigs,
+					component: CscPagePbxMsConfigs,
 					meta: {
 						title: i18n.t('navigation.pbxConfiguration.title'),
 						subtitle: i18n.t('navigation.pbxConfiguration.msConfigs')
@@ -164,7 +165,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'voicebox',
-					component: Voicebox,
+					component: CscPageVoicebox,
 					meta: {
 						title: i18n.t('navigation.voicebox.title'),
 						subtitle: i18n.t('navigation.voicebox.subTitle')
@@ -172,7 +173,7 @@ export default function routes (app) {
 				},
 				{
 					path: 'settings',
-					component: CscUserSettings,
+					component: CscPageUserSettings,
 					meta: {
 						title: i18n.t('navigation.userSettings.title'),
 						subtitle: i18n.t('navigation.userSettings.subTitle')
@@ -180,31 +181,35 @@ export default function routes (app) {
 				},
 				{
 					path: 'pbx-settings',
-					component: CscPbxSettings,
+					component: CscPagePbxSettings,
 					meta: {
 						title: i18n.t('navigation.pbxSettings.title'),
 						subtitle: i18n.t('navigation.pbxSettings.subTitle')
 					}
+				},
+				{
+					path: '*',
+					component: CscPageError404
 				}
 			]
 		},
 		{
 			path: '/login',
-			component: Login,
+			component: CscPageLogin,
 			meta: {
 				title: i18n.t('pages.login.title')
 			}
 		},
 		{
 			path: '/conference',
-			component: ConferenceLayout,
+			component: CscLayoutConference,
 			meta: {
 				title: 'Conference'
 			}
 		},
 		{
 			path: '/conference/:id',
-			component: ConferenceLayout,
+			component: CscLayoutConference,
 			meta: {
 				title: 'Conference'
 			}
@@ -217,7 +222,7 @@ export default function routes (app) {
 		},
 		{
 			path: '*',
-			component: Error404
+			component: CscPageError404
 		}
 	]
 }