diff --git a/src/client/app/ch/tags/channel.tag b/src/client/app/ch/tags/channel.tag
index 2abfb106a..70e494aed 100644
--- a/src/client/app/ch/tags/channel.tag
+++ b/src/client/app/ch/tags/channel.tag
@@ -229,7 +229,7 @@
 
 	</style>
 	<script lang="typescript">
-		import getAcct from '../../../../common/user/get-acct';
+		import getAcct from '../../../../misc/user/get-acct';
 
 		this.post = this.opts.post;
 		this.form = this.opts.form;
diff --git a/src/client/app/common/scripts/compose-notification.ts b/src/client/app/common/scripts/compose-notification.ts
index 273579cbc..56fbcb94f 100644
--- a/src/client/app/common/scripts/compose-notification.ts
+++ b/src/client/app/common/scripts/compose-notification.ts
@@ -1,5 +1,5 @@
-import getPostSummary from '../../../../common/get-post-summary';
-import getReactionEmoji from '../../../../common/get-reaction-emoji';
+import getPostSummary from '../../../../misc/get-post-summary';
+import getReactionEmoji from '../../../../misc/get-reaction-emoji';
 
 type Notification = {
 	title: string;
diff --git a/src/client/app/common/views/components/autocomplete.vue b/src/client/app/common/views/components/autocomplete.vue
index 79bd2ba02..edba47058 100644
--- a/src/client/app/common/views/components/autocomplete.vue
+++ b/src/client/app/common/views/components/autocomplete.vue
@@ -21,7 +21,7 @@
 import Vue from 'vue';
 import * as emojilib from 'emojilib';
 import contains from '../../../common/scripts/contains';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 const lib = Object.entries(emojilib.lib).filter((x: any) => {
 	return x[1].category != 'flags';
diff --git a/src/client/app/common/views/components/messaging-room.message.vue b/src/client/app/common/views/components/messaging-room.message.vue
index 91af26bff..cad6825f3 100644
--- a/src/client/app/common/views/components/messaging-room.message.vue
+++ b/src/client/app/common/views/components/messaging-room.message.vue
@@ -34,7 +34,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 import parse from '../../../../../common/text/parse';
 
 export default Vue.extend({
diff --git a/src/client/app/common/views/components/messaging.vue b/src/client/app/common/views/components/messaging.vue
index 8317c3738..f6709d02b 100644
--- a/src/client/app/common/views/components/messaging.vue
+++ b/src/client/app/common/views/components/messaging.vue
@@ -51,7 +51,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: {
diff --git a/src/client/app/common/views/components/othello.game.vue b/src/client/app/common/views/components/othello.game.vue
index f08742ad1..aa5798d71 100644
--- a/src/client/app/common/views/components/othello.game.vue
+++ b/src/client/app/common/views/components/othello.game.vue
@@ -43,7 +43,7 @@
 <script lang="ts">
 import Vue from 'vue';
 import * as CRC32 from 'crc-32';
-import Othello, { Color } from '../../../../../common/othello/core';
+import Othello, { Color } from '../../../../../misc/othello/core';
 import { url } from '../../../config';
 
 export default Vue.extend({
diff --git a/src/client/app/common/views/components/othello.room.vue b/src/client/app/common/views/components/othello.room.vue
index a32be6b74..eb1d3a0c6 100644
--- a/src/client/app/common/views/components/othello.room.vue
+++ b/src/client/app/common/views/components/othello.room.vue
@@ -94,7 +94,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import * as maps from '../../../../../common/othello/maps';
+import * as maps from '../../../../../misc/othello/maps';
 
 export default Vue.extend({
 	props: ['game', 'connection'],
diff --git a/src/client/app/common/views/components/post-html.ts b/src/client/app/common/views/components/post-html.ts
index c5c3b7275..5670ce036 100644
--- a/src/client/app/common/views/components/post-html.ts
+++ b/src/client/app/common/views/components/post-html.ts
@@ -1,7 +1,7 @@
 import Vue from 'vue';
 import * as emojilib from 'emojilib';
 import parse from '../../../../../common/text/parse';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 import { url } from '../../../config';
 import MkUrl from './url.vue';
 
diff --git a/src/client/app/common/views/components/welcome-timeline.vue b/src/client/app/common/views/components/welcome-timeline.vue
index 09b090bdc..036a77b1c 100644
--- a/src/client/app/common/views/components/welcome-timeline.vue
+++ b/src/client/app/common/views/components/welcome-timeline.vue
@@ -24,7 +24,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	data() {
diff --git a/src/client/app/desktop/views/components/friends-maker.vue b/src/client/app/desktop/views/components/friends-maker.vue
index fd9914b15..68ecc6ad4 100644
--- a/src/client/app/desktop/views/components/friends-maker.vue
+++ b/src/client/app/desktop/views/components/friends-maker.vue
@@ -22,7 +22,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	data() {
diff --git a/src/client/app/desktop/views/components/messaging-room-window.vue b/src/client/app/desktop/views/components/messaging-room-window.vue
index 373526781..610642204 100644
--- a/src/client/app/desktop/views/components/messaging-room-window.vue
+++ b/src/client/app/desktop/views/components/messaging-room-window.vue
@@ -8,7 +8,7 @@
 <script lang="ts">
 import Vue from 'vue';
 import { url } from '../../../config';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['user'],
diff --git a/src/client/app/desktop/views/components/notifications.vue b/src/client/app/desktop/views/components/notifications.vue
index 5e6db08c1..79b16d048 100644
--- a/src/client/app/desktop/views/components/notifications.vue
+++ b/src/client/app/desktop/views/components/notifications.vue
@@ -102,8 +102,8 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
-import getPostSummary from '../../../../../common/get-post-summary';
+import getAcct from '../../../../../misc/user/get-acct';
+import getPostSummary from '../../../../../misc/get-post-summary';
 
 export default Vue.extend({
 	data() {
diff --git a/src/client/app/desktop/views/components/post-detail.sub.vue b/src/client/app/desktop/views/components/post-detail.sub.vue
index 1d5649cf9..6fc569ada 100644
--- a/src/client/app/desktop/views/components/post-detail.sub.vue
+++ b/src/client/app/desktop/views/components/post-detail.sub.vue
@@ -28,7 +28,7 @@
 <script lang="ts">
 import Vue from 'vue';
 import dateStringify from '../../../common/scripts/date-stringify';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['post'],
diff --git a/src/client/app/desktop/views/components/post-detail.vue b/src/client/app/desktop/views/components/post-detail.vue
index d6481e13d..309c88e70 100644
--- a/src/client/app/desktop/views/components/post-detail.vue
+++ b/src/client/app/desktop/views/components/post-detail.vue
@@ -78,7 +78,7 @@
 <script lang="ts">
 import Vue from 'vue';
 import dateStringify from '../../../common/scripts/date-stringify';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 import parse from '../../../../../common/text/parse';
 
 import MkPostFormWindow from './post-form-window.vue';
diff --git a/src/client/app/desktop/views/components/post-preview.vue b/src/client/app/desktop/views/components/post-preview.vue
index 0ac3223be..eb62e4a63 100644
--- a/src/client/app/desktop/views/components/post-preview.vue
+++ b/src/client/app/desktop/views/components/post-preview.vue
@@ -21,7 +21,7 @@
 <script lang="ts">
 import Vue from 'vue';
 import dateStringify from '../../../common/scripts/date-stringify';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['post'],
diff --git a/src/client/app/desktop/views/components/posts.post.sub.vue b/src/client/app/desktop/views/components/posts.post.sub.vue
index 65d3017d3..d3af0fef6 100644
--- a/src/client/app/desktop/views/components/posts.post.sub.vue
+++ b/src/client/app/desktop/views/components/posts.post.sub.vue
@@ -21,7 +21,7 @@
 <script lang="ts">
 import Vue from 'vue';
 import dateStringify from '../../../common/scripts/date-stringify';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['post'],
diff --git a/src/client/app/desktop/views/components/posts.post.vue b/src/client/app/desktop/views/components/posts.post.vue
index c31e28d67..1325e3e4f 100644
--- a/src/client/app/desktop/views/components/posts.post.vue
+++ b/src/client/app/desktop/views/components/posts.post.vue
@@ -85,7 +85,7 @@
 <script lang="ts">
 import Vue from 'vue';
 import dateStringify from '../../../common/scripts/date-stringify';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 import parse from '../../../../../common/text/parse';
 
 import MkPostFormWindow from './post-form-window.vue';
diff --git a/src/client/app/desktop/views/components/settings.mute.vue b/src/client/app/desktop/views/components/settings.mute.vue
index a8dfe1060..ce8f4b273 100644
--- a/src/client/app/desktop/views/components/settings.mute.vue
+++ b/src/client/app/desktop/views/components/settings.mute.vue
@@ -13,7 +13,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	data() {
diff --git a/src/client/app/desktop/views/components/user-preview.vue b/src/client/app/desktop/views/components/user-preview.vue
index 8c86b2efe..595926a81 100644
--- a/src/client/app/desktop/views/components/user-preview.vue
+++ b/src/client/app/desktop/views/components/user-preview.vue
@@ -29,8 +29,8 @@
 <script lang="ts">
 import Vue from 'vue';
 import * as anime from 'animejs';
-import getAcct from '../../../../../common/user/get-acct';
-import parseAcct from '../../../../../common/user/parse-acct';
+import getAcct from '../../../../../misc/user/get-acct';
+import parseAcct from '../../../../../misc/user/parse-acct';
 
 export default Vue.extend({
 	props: {
diff --git a/src/client/app/desktop/views/components/users-list.item.vue b/src/client/app/desktop/views/components/users-list.item.vue
index d2bfc117d..1c40c247b 100644
--- a/src/client/app/desktop/views/components/users-list.item.vue
+++ b/src/client/app/desktop/views/components/users-list.item.vue
@@ -19,7 +19,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['user'],
diff --git a/src/client/app/desktop/views/pages/home.vue b/src/client/app/desktop/views/pages/home.vue
index 69e134f79..fa7c19510 100644
--- a/src/client/app/desktop/views/pages/home.vue
+++ b/src/client/app/desktop/views/pages/home.vue
@@ -7,7 +7,7 @@
 <script lang="ts">
 import Vue from 'vue';
 import Progress from '../../../common/scripts/loading';
-import getPostSummary from '../../../../../common/get-post-summary';
+import getPostSummary from '../../../../../misc/get-post-summary';
 
 export default Vue.extend({
 	props: {
diff --git a/src/client/app/desktop/views/pages/messaging-room.vue b/src/client/app/desktop/views/pages/messaging-room.vue
index 0cab1e0d1..244b0c904 100644
--- a/src/client/app/desktop/views/pages/messaging-room.vue
+++ b/src/client/app/desktop/views/pages/messaging-room.vue
@@ -7,7 +7,7 @@
 <script lang="ts">
 import Vue from 'vue';
 import Progress from '../../../common/scripts/loading';
-import parseAcct from '../../../../../common/user/parse-acct';
+import parseAcct from '../../../../../misc/user/parse-acct';
 
 export default Vue.extend({
 	data() {
diff --git a/src/client/app/desktop/views/pages/user/user.followers-you-know.vue b/src/client/app/desktop/views/pages/user/user.followers-you-know.vue
index d0dab6c3d..e898b62a0 100644
--- a/src/client/app/desktop/views/pages/user/user.followers-you-know.vue
+++ b/src/client/app/desktop/views/pages/user/user.followers-you-know.vue
@@ -13,7 +13,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../../common/user/get-acct';
+import getAcct from '../../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['user'],
diff --git a/src/client/app/desktop/views/pages/user/user.friends.vue b/src/client/app/desktop/views/pages/user/user.friends.vue
index 3ec30fb43..b13eb528a 100644
--- a/src/client/app/desktop/views/pages/user/user.friends.vue
+++ b/src/client/app/desktop/views/pages/user/user.friends.vue
@@ -20,7 +20,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../../common/user/get-acct';
+import getAcct from '../../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['user'],
diff --git a/src/client/app/desktop/views/pages/user/user.header.vue b/src/client/app/desktop/views/pages/user/user.header.vue
index 54f431fd2..32e425f86 100644
--- a/src/client/app/desktop/views/pages/user/user.header.vue
+++ b/src/client/app/desktop/views/pages/user/user.header.vue
@@ -22,7 +22,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../../common/user/get-acct';
+import getAcct from '../../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['user'],
diff --git a/src/client/app/desktop/views/pages/user/user.vue b/src/client/app/desktop/views/pages/user/user.vue
index 67cef9326..6e68171a6 100644
--- a/src/client/app/desktop/views/pages/user/user.vue
+++ b/src/client/app/desktop/views/pages/user/user.vue
@@ -9,7 +9,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import parseAcct from '../../../../../../common/user/parse-acct';
+import parseAcct from '../../../../../../misc/user/parse-acct';
 import Progress from '../../../../common/scripts/loading';
 import XHeader from './user.header.vue';
 import XHome from './user.home.vue';
diff --git a/src/client/app/desktop/views/pages/welcome.vue b/src/client/app/desktop/views/pages/welcome.vue
index 34c28854b..93bb59765 100644
--- a/src/client/app/desktop/views/pages/welcome.vue
+++ b/src/client/app/desktop/views/pages/welcome.vue
@@ -43,7 +43,7 @@
 <script lang="ts">
 import Vue from 'vue';
 import { docsUrl, copyright, lang } from '../../../config';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 const shares = [
 	'Everything!',
diff --git a/src/client/app/desktop/views/widgets/channel.channel.post.vue b/src/client/app/desktop/views/widgets/channel.channel.post.vue
index 433f9a00a..255d9a5e6 100644
--- a/src/client/app/desktop/views/widgets/channel.channel.post.vue
+++ b/src/client/app/desktop/views/widgets/channel.channel.post.vue
@@ -19,7 +19,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['post'],
diff --git a/src/client/app/desktop/views/widgets/polls.vue b/src/client/app/desktop/views/widgets/polls.vue
index e5db34fc7..fd242a04b 100644
--- a/src/client/app/desktop/views/widgets/polls.vue
+++ b/src/client/app/desktop/views/widgets/polls.vue
@@ -16,7 +16,7 @@
 
 <script lang="ts">
 import define from '../../../common/define-widget';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default define({
 	name: 'polls',
diff --git a/src/client/app/desktop/views/widgets/trends.vue b/src/client/app/desktop/views/widgets/trends.vue
index 77779787e..6b22c123b 100644
--- a/src/client/app/desktop/views/widgets/trends.vue
+++ b/src/client/app/desktop/views/widgets/trends.vue
@@ -15,7 +15,7 @@
 
 <script lang="ts">
 import define from '../../../common/define-widget';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default define({
 	name: 'trends',
diff --git a/src/client/app/desktop/views/widgets/users.vue b/src/client/app/desktop/views/widgets/users.vue
index 7b8944112..102739bd0 100644
--- a/src/client/app/desktop/views/widgets/users.vue
+++ b/src/client/app/desktop/views/widgets/users.vue
@@ -23,7 +23,7 @@
 
 <script lang="ts">
 import define from '../../../common/define-widget';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 const limit = 3;
 
diff --git a/src/client/app/mobile/api/post.ts b/src/client/app/mobile/api/post.ts
index 841103fee..8090bbef2 100644
--- a/src/client/app/mobile/api/post.ts
+++ b/src/client/app/mobile/api/post.ts
@@ -1,6 +1,6 @@
 import PostForm from '../views/components/post-form.vue';
 //import RepostForm from '../views/components/repost-form.vue';
-import getPostSummary from '../../../../common/get-post-summary';
+import getPostSummary from '../../../../misc/get-post-summary';
 
 export default (os) => (opts) => {
 	const o = opts || {};
diff --git a/src/client/app/mobile/views/components/notification-preview.vue b/src/client/app/mobile/views/components/notification-preview.vue
index fce9ed82f..2a06d399c 100644
--- a/src/client/app/mobile/views/components/notification-preview.vue
+++ b/src/client/app/mobile/views/components/notification-preview.vue
@@ -59,7 +59,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getPostSummary from '../../../../../common/get-post-summary';
+import getPostSummary from '../../../../../misc/get-post-summary';
 
 export default Vue.extend({
 	props: ['notification'],
diff --git a/src/client/app/mobile/views/components/notification.vue b/src/client/app/mobile/views/components/notification.vue
index e221fb3ac..93b1e8416 100644
--- a/src/client/app/mobile/views/components/notification.vue
+++ b/src/client/app/mobile/views/components/notification.vue
@@ -78,8 +78,8 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getPostSummary from '../../../../../common/get-post-summary';
-import getAcct from '../../../../../common/user/get-acct';
+import getPostSummary from '../../../../../misc/get-post-summary';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['notification'],
diff --git a/src/client/app/mobile/views/components/post-card.vue b/src/client/app/mobile/views/components/post-card.vue
index 10dfd9241..3f5beb9e0 100644
--- a/src/client/app/mobile/views/components/post-card.vue
+++ b/src/client/app/mobile/views/components/post-card.vue
@@ -14,8 +14,8 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import summary from '../../../../../common/get-post-summary';
-import getAcct from '../../../../../common/user/get-acct';
+import summary from '../../../../../misc/get-post-summary';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['post'],
diff --git a/src/client/app/mobile/views/components/post-detail.sub.vue b/src/client/app/mobile/views/components/post-detail.sub.vue
index db7567834..1fca0881d 100644
--- a/src/client/app/mobile/views/components/post-detail.sub.vue
+++ b/src/client/app/mobile/views/components/post-detail.sub.vue
@@ -20,7 +20,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['post'],
diff --git a/src/client/app/mobile/views/components/post-detail.vue b/src/client/app/mobile/views/components/post-detail.vue
index 0a4e36fc6..a8ebb3b01 100644
--- a/src/client/app/mobile/views/components/post-detail.vue
+++ b/src/client/app/mobile/views/components/post-detail.vue
@@ -80,7 +80,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 import parse from '../../../../../common/text/parse';
 
 import MkPostMenu from '../../../common/views/components/post-menu.vue';
diff --git a/src/client/app/mobile/views/components/post-preview.vue b/src/client/app/mobile/views/components/post-preview.vue
index a6141dc8e..05dd4a004 100644
--- a/src/client/app/mobile/views/components/post-preview.vue
+++ b/src/client/app/mobile/views/components/post-preview.vue
@@ -20,7 +20,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['post'],
diff --git a/src/client/app/mobile/views/components/post.sub.vue b/src/client/app/mobile/views/components/post.sub.vue
index adf444a2d..cbd2fad88 100644
--- a/src/client/app/mobile/views/components/post.sub.vue
+++ b/src/client/app/mobile/views/components/post.sub.vue
@@ -20,7 +20,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['post'],
diff --git a/src/client/app/mobile/views/components/post.vue b/src/client/app/mobile/views/components/post.vue
index f4f845b49..6cf24ed6a 100644
--- a/src/client/app/mobile/views/components/post.vue
+++ b/src/client/app/mobile/views/components/post.vue
@@ -77,7 +77,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 import parse from '../../../../../common/text/parse';
 
 import MkPostMenu from '../../../common/views/components/post-menu.vue';
diff --git a/src/client/app/mobile/views/components/user-card.vue b/src/client/app/mobile/views/components/user-card.vue
index ffa110051..fb1b12ce5 100644
--- a/src/client/app/mobile/views/components/user-card.vue
+++ b/src/client/app/mobile/views/components/user-card.vue
@@ -13,7 +13,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['user'],
diff --git a/src/client/app/mobile/views/components/user-preview.vue b/src/client/app/mobile/views/components/user-preview.vue
index e51e4353d..4bb830381 100644
--- a/src/client/app/mobile/views/components/user-preview.vue
+++ b/src/client/app/mobile/views/components/user-preview.vue
@@ -17,7 +17,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['user'],
diff --git a/src/client/app/mobile/views/pages/followers.vue b/src/client/app/mobile/views/pages/followers.vue
index 8c058eb4e..28e866efb 100644
--- a/src/client/app/mobile/views/pages/followers.vue
+++ b/src/client/app/mobile/views/pages/followers.vue
@@ -19,7 +19,7 @@
 <script lang="ts">
 import Vue from 'vue';
 import Progress from '../../../common/scripts/loading';
-import parseAcct from '../../../../../common/user/parse-acct';
+import parseAcct from '../../../../../misc/user/parse-acct';
 
 export default Vue.extend({
 	data() {
diff --git a/src/client/app/mobile/views/pages/following.vue b/src/client/app/mobile/views/pages/following.vue
index a73c9d171..7ee3b8628 100644
--- a/src/client/app/mobile/views/pages/following.vue
+++ b/src/client/app/mobile/views/pages/following.vue
@@ -19,7 +19,7 @@
 <script lang="ts">
 import Vue from 'vue';
 import Progress from '../../../common/scripts/loading';
-import parseAcct from '../../../../../common/user/parse-acct';
+import parseAcct from '../../../../../misc/user/parse-acct';
 
 export default Vue.extend({
 	data() {
diff --git a/src/client/app/mobile/views/pages/home.vue b/src/client/app/mobile/views/pages/home.vue
index f1f65f90c..f76fdbe19 100644
--- a/src/client/app/mobile/views/pages/home.vue
+++ b/src/client/app/mobile/views/pages/home.vue
@@ -64,7 +64,7 @@ import Vue from 'vue';
 import * as XDraggable from 'vuedraggable';
 import * as uuid from 'uuid';
 import Progress from '../../../common/scripts/loading';
-import getPostSummary from '../../../../../common/get-post-summary';
+import getPostSummary from '../../../../../misc/get-post-summary';
 
 export default Vue.extend({
 	components: {
diff --git a/src/client/app/mobile/views/pages/messaging-room.vue b/src/client/app/mobile/views/pages/messaging-room.vue
index 193c41179..400f5016e 100644
--- a/src/client/app/mobile/views/pages/messaging-room.vue
+++ b/src/client/app/mobile/views/pages/messaging-room.vue
@@ -10,7 +10,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import parseAcct from '../../../../../common/user/parse-acct';
+import parseAcct from '../../../../../misc/user/parse-acct';
 
 export default Vue.extend({
 	data() {
diff --git a/src/client/app/mobile/views/pages/messaging.vue b/src/client/app/mobile/views/pages/messaging.vue
index e92068eda..7ded67cdf 100644
--- a/src/client/app/mobile/views/pages/messaging.vue
+++ b/src/client/app/mobile/views/pages/messaging.vue
@@ -7,7 +7,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../common/user/get-acct';
+import getAcct from '../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	mounted() {
diff --git a/src/client/app/mobile/views/pages/user.vue b/src/client/app/mobile/views/pages/user.vue
index 114decb8e..01eb408e6 100644
--- a/src/client/app/mobile/views/pages/user.vue
+++ b/src/client/app/mobile/views/pages/user.vue
@@ -60,8 +60,8 @@
 <script lang="ts">
 import Vue from 'vue';
 import * as age from 's-age';
-import getAcct from '../../../../../common/user/get-acct';
-import getAcct from '../../../../../common/user/parse-acct';
+import getAcct from '../../../../../misc/user/get-acct';
+import getAcct from '../../../../../misc/user/parse-acct';
 import Progress from '../../../common/scripts/loading';
 import XHome from './user/home.vue';
 
diff --git a/src/client/app/mobile/views/pages/user/home.followers-you-know.vue b/src/client/app/mobile/views/pages/user/home.followers-you-know.vue
index 8c84d2dbb..8dc4fbb85 100644
--- a/src/client/app/mobile/views/pages/user/home.followers-you-know.vue
+++ b/src/client/app/mobile/views/pages/user/home.followers-you-know.vue
@@ -12,7 +12,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../../common/user/get-acct';
+import getAcct from '../../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['user'],
diff --git a/src/client/app/mobile/views/pages/user/home.photos.vue b/src/client/app/mobile/views/pages/user/home.photos.vue
index f703f8a74..cc3527037 100644
--- a/src/client/app/mobile/views/pages/user/home.photos.vue
+++ b/src/client/app/mobile/views/pages/user/home.photos.vue
@@ -14,7 +14,7 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import getAcct from '../../../../../../common/user/get-acct';
+import getAcct from '../../../../../../misc/user/get-acct';
 
 export default Vue.extend({
 	props: ['user'],
diff --git a/src/common/drive/add-file.ts b/src/common/drive/add-file.ts
index 52a7713dd..af85a23d2 100644
--- a/src/common/drive/add-file.ts
+++ b/src/common/drive/add-file.ts
@@ -14,7 +14,7 @@ import DriveFile, { getGridFSBucket } from '../../models/drive-file';
 import DriveFolder from '../../models/drive-folder';
 import { pack } from '../../models/drive-file';
 import event, { publishDriveStream } from '../event';
-import getAcct from '../user/get-acct';
+import getAcct from '../../misc/user/get-acct';
 import config from '../../conf';
 
 const gm = _gm.subClass({
diff --git a/src/common/drive/upload_from_url.ts b/src/common/drive/upload-from-url.ts
similarity index 100%
rename from src/common/drive/upload_from_url.ts
rename to src/common/drive/upload-from-url.ts
diff --git a/src/common/text/parse/elements/mention.ts b/src/common/text/parse/elements/mention.ts
index 2025dfdaa..3c81979d0 100644
--- a/src/common/text/parse/elements/mention.ts
+++ b/src/common/text/parse/elements/mention.ts
@@ -1,7 +1,7 @@
 /**
  * Mention
  */
-import parseAcct from '../../../../common/user/parse-acct';
+import parseAcct from '../../../../misc/user/parse-acct';
 
 module.exports = text => {
 	const match = text.match(/^(?:@[a-zA-Z0-9\-]+){1,2}/);
diff --git a/src/common/get-notification-summary.ts b/src/misc/get-notification-summary.ts
similarity index 100%
rename from src/common/get-notification-summary.ts
rename to src/misc/get-notification-summary.ts
diff --git a/src/common/get-post-summary.ts b/src/misc/get-post-summary.ts
similarity index 100%
rename from src/common/get-post-summary.ts
rename to src/misc/get-post-summary.ts
diff --git a/src/common/get-reaction-emoji.ts b/src/misc/get-reaction-emoji.ts
similarity index 100%
rename from src/common/get-reaction-emoji.ts
rename to src/misc/get-reaction-emoji.ts
diff --git a/src/common/othello/ai/back.ts b/src/misc/othello/ai/back.ts
similarity index 100%
rename from src/common/othello/ai/back.ts
rename to src/misc/othello/ai/back.ts
diff --git a/src/common/othello/ai/front.ts b/src/misc/othello/ai/front.ts
similarity index 100%
rename from src/common/othello/ai/front.ts
rename to src/misc/othello/ai/front.ts
diff --git a/src/common/othello/ai/index.ts b/src/misc/othello/ai/index.ts
similarity index 100%
rename from src/common/othello/ai/index.ts
rename to src/misc/othello/ai/index.ts
diff --git a/src/common/othello/core.ts b/src/misc/othello/core.ts
similarity index 100%
rename from src/common/othello/core.ts
rename to src/misc/othello/core.ts
diff --git a/src/common/othello/maps.ts b/src/misc/othello/maps.ts
similarity index 100%
rename from src/common/othello/maps.ts
rename to src/misc/othello/maps.ts
diff --git a/src/common/user/get-acct.ts b/src/misc/user/get-acct.ts
similarity index 100%
rename from src/common/user/get-acct.ts
rename to src/misc/user/get-acct.ts
diff --git a/src/common/user/get-summary.ts b/src/misc/user/get-summary.ts
similarity index 100%
rename from src/common/user/get-summary.ts
rename to src/misc/user/get-summary.ts
diff --git a/src/common/user/parse-acct.ts b/src/misc/user/parse-acct.ts
similarity index 100%
rename from src/common/user/parse-acct.ts
rename to src/misc/user/parse-acct.ts
diff --git a/src/processor/http/follow.ts b/src/processor/http/follow.ts
index 9b8337f2e..4804657fd 100644
--- a/src/processor/http/follow.ts
+++ b/src/processor/http/follow.ts
@@ -5,8 +5,8 @@ import User, { isLocalUser, pack as packUser, ILocalUser } from '../../models/us
 import Following from '../../models/following';
 import event from '../../common/event';
 import notify from '../../common/notify';
-import context from '../../common/remote/activitypub/renderer/context';
-import render from '../../common/remote/activitypub/renderer/follow';
+import context from '../../remote/activitypub/renderer/context';
+import render from '../../remote/activitypub/renderer/follow';
 import config from '../../conf';
 
 export default ({ data }, done) => Following.findOne({ _id: data.following }).then(({ followerId, followeeId }) => {
diff --git a/src/processor/http/perform-activitypub.ts b/src/processor/http/perform-activitypub.ts
index 5b1a02173..51e1ede14 100644
--- a/src/processor/http/perform-activitypub.ts
+++ b/src/processor/http/perform-activitypub.ts
@@ -1,5 +1,5 @@
 import User from '../../models/user';
-import act from '../../common/remote/activitypub/act';
+import act from '../../remote/activitypub/act';
 
 export default ({ data }, done) => User.findOne({ _id: data.actor })
 	.then(actor => act(actor, data.outbox))
diff --git a/src/common/remote/activitypub/act/create.ts b/src/remote/activitypub/act/create.ts
similarity index 100%
rename from src/common/remote/activitypub/act/create.ts
rename to src/remote/activitypub/act/create.ts
diff --git a/src/common/remote/activitypub/act/index.ts b/src/remote/activitypub/act/index.ts
similarity index 100%
rename from src/common/remote/activitypub/act/index.ts
rename to src/remote/activitypub/act/index.ts
diff --git a/src/common/remote/activitypub/create.ts b/src/remote/activitypub/create.ts
similarity index 90%
rename from src/common/remote/activitypub/create.ts
rename to src/remote/activitypub/create.ts
index ea780f01e..e610232f5 100644
--- a/src/common/remote/activitypub/create.ts
+++ b/src/remote/activitypub/create.ts
@@ -1,8 +1,8 @@
 import { JSDOM } from 'jsdom';
-import config from '../../../conf';
-import Post from '../../../models/post';
-import RemoteUserObject, { IRemoteUserObject } from '../../../models/remote-user-object';
-import uploadFromUrl from '../../drive/upload_from_url';
+import config from '../../conf';
+import Post from '../../models/post';
+import RemoteUserObject, { IRemoteUserObject } from '../../models/remote-user-object';
+import uploadFromUrl from '../../common/drive/upload-from-url';
 import Resolver from './resolver';
 const createDOMPurify = require('dompurify');
 
diff --git a/src/common/remote/activitypub/renderer/context.ts b/src/remote/activitypub/renderer/context.ts
similarity index 100%
rename from src/common/remote/activitypub/renderer/context.ts
rename to src/remote/activitypub/renderer/context.ts
diff --git a/src/common/remote/activitypub/renderer/document.ts b/src/remote/activitypub/renderer/document.ts
similarity index 76%
rename from src/common/remote/activitypub/renderer/document.ts
rename to src/remote/activitypub/renderer/document.ts
index 4a456416a..fdd52c1b6 100644
--- a/src/common/remote/activitypub/renderer/document.ts
+++ b/src/remote/activitypub/renderer/document.ts
@@ -1,4 +1,4 @@
-import config from '../../../../conf';
+import config from '../../../conf';
 
 export default ({ _id, contentType }) => ({
 	type: 'Document',
diff --git a/src/common/remote/activitypub/renderer/follow.ts b/src/remote/activitypub/renderer/follow.ts
similarity index 61%
rename from src/common/remote/activitypub/renderer/follow.ts
rename to src/remote/activitypub/renderer/follow.ts
index 86a3f8ced..c99bc375a 100644
--- a/src/common/remote/activitypub/renderer/follow.ts
+++ b/src/remote/activitypub/renderer/follow.ts
@@ -1,5 +1,5 @@
-import config from '../../../../conf';
-import { IRemoteUser } from '../../../../models/user';
+import config from '../../../conf';
+import { IRemoteUser } from '../../../models/user';
 
 export default ({ username }, followee: IRemoteUser) => ({
 	type: 'Follow',
diff --git a/src/common/remote/activitypub/renderer/hashtag.ts b/src/remote/activitypub/renderer/hashtag.ts
similarity index 76%
rename from src/common/remote/activitypub/renderer/hashtag.ts
rename to src/remote/activitypub/renderer/hashtag.ts
index ad4270020..c2d261ed2 100644
--- a/src/common/remote/activitypub/renderer/hashtag.ts
+++ b/src/remote/activitypub/renderer/hashtag.ts
@@ -1,4 +1,4 @@
-import config from '../../../../conf';
+import config from '../../../conf';
 
 export default tag => ({
 	type: 'Hashtag',
diff --git a/src/common/remote/activitypub/renderer/image.ts b/src/remote/activitypub/renderer/image.ts
similarity index 69%
rename from src/common/remote/activitypub/renderer/image.ts
rename to src/remote/activitypub/renderer/image.ts
index 345fbbec5..3d1c71cb9 100644
--- a/src/common/remote/activitypub/renderer/image.ts
+++ b/src/remote/activitypub/renderer/image.ts
@@ -1,4 +1,4 @@
-import config from '../../../../conf';
+import config from '../../../conf';
 
 export default ({ _id }) => ({
 	type: 'Image',
diff --git a/src/common/remote/activitypub/renderer/key.ts b/src/remote/activitypub/renderer/key.ts
similarity index 57%
rename from src/common/remote/activitypub/renderer/key.ts
rename to src/remote/activitypub/renderer/key.ts
index 3cac86b76..904a69e08 100644
--- a/src/common/remote/activitypub/renderer/key.ts
+++ b/src/remote/activitypub/renderer/key.ts
@@ -1,6 +1,6 @@
-import config from '../../../../conf';
-import { extractPublic } from '../../../../crypto_key';
-import { ILocalUser } from '../../../../models/user';
+import config from '../../../conf';
+import { extractPublic } from '../../../crypto_key';
+import { ILocalUser } from '../../../models/user';
 
 export default (user: ILocalUser) => ({
 	id: `${config.url}/@${user.username}/publickey`,
diff --git a/src/common/remote/activitypub/renderer/note.ts b/src/remote/activitypub/renderer/note.ts
similarity index 84%
rename from src/common/remote/activitypub/renderer/note.ts
rename to src/remote/activitypub/renderer/note.ts
index 2fe20b213..74806f14b 100644
--- a/src/common/remote/activitypub/renderer/note.ts
+++ b/src/remote/activitypub/renderer/note.ts
@@ -1,9 +1,9 @@
 import renderDocument from './document';
 import renderHashtag from './hashtag';
-import config from '../../../../conf';
-import DriveFile from '../../../../models/drive-file';
-import Post from '../../../../models/post';
-import User from '../../../../models/user';
+import config from '../../../conf';
+import DriveFile from '../../../models/drive-file';
+import Post from '../../../models/post';
+import User from '../../../models/user';
 
 export default async (user, post) => {
 	const promisedFiles = DriveFile.find({ _id: { $in: post.mediaIds } });
diff --git a/src/common/remote/activitypub/renderer/ordered-collection.ts b/src/remote/activitypub/renderer/ordered-collection.ts
similarity index 100%
rename from src/common/remote/activitypub/renderer/ordered-collection.ts
rename to src/remote/activitypub/renderer/ordered-collection.ts
diff --git a/src/common/remote/activitypub/renderer/person.ts b/src/remote/activitypub/renderer/person.ts
similarity index 92%
rename from src/common/remote/activitypub/renderer/person.ts
rename to src/remote/activitypub/renderer/person.ts
index 7303b3038..c6c789316 100644
--- a/src/common/remote/activitypub/renderer/person.ts
+++ b/src/remote/activitypub/renderer/person.ts
@@ -1,6 +1,6 @@
 import renderImage from './image';
 import renderKey from './key';
-import config from '../../../../conf';
+import config from '../../../conf';
 
 export default user => {
 	const id = `${config.url}/@${user.username}`;
diff --git a/src/common/remote/activitypub/resolve-person.ts b/src/remote/activitypub/resolve-person.ts
similarity index 97%
rename from src/common/remote/activitypub/resolve-person.ts
rename to src/remote/activitypub/resolve-person.ts
index 73584946e..d928e7ce1 100644
--- a/src/common/remote/activitypub/resolve-person.ts
+++ b/src/remote/activitypub/resolve-person.ts
@@ -1,7 +1,7 @@
 import { JSDOM } from 'jsdom';
 import { toUnicode } from 'punycode';
-import User, { validateUsername, isValidName, isValidDescription } from '../../../models/user';
-import queue from '../../../queue';
+import User, { validateUsername, isValidName, isValidDescription } from '../../models/user';
+import queue from '../../queue';
 import webFinger from '../webfinger';
 import create from './create';
 import Resolver from './resolver';
diff --git a/src/common/remote/activitypub/resolver.ts b/src/remote/activitypub/resolver.ts
similarity index 96%
rename from src/common/remote/activitypub/resolver.ts
rename to src/remote/activitypub/resolver.ts
index a167fa133..ebfe25fe7 100644
--- a/src/common/remote/activitypub/resolver.ts
+++ b/src/remote/activitypub/resolver.ts
@@ -1,4 +1,4 @@
-import RemoteUserObject from '../../../models/remote-user-object';
+import RemoteUserObject from '../../models/remote-user-object';
 import { IObject } from './type';
 const request = require('request-promise-native');
 
diff --git a/src/common/remote/activitypub/type.ts b/src/remote/activitypub/type.ts
similarity index 100%
rename from src/common/remote/activitypub/type.ts
rename to src/remote/activitypub/type.ts
diff --git a/src/common/remote/resolve-user.ts b/src/remote/resolve-user.ts
similarity index 95%
rename from src/common/remote/resolve-user.ts
rename to src/remote/resolve-user.ts
index 4959539da..a39309283 100644
--- a/src/common/remote/resolve-user.ts
+++ b/src/remote/resolve-user.ts
@@ -1,5 +1,5 @@
 import { toUnicode, toASCII } from 'punycode';
-import User from '../../models/user';
+import User from '../models/user';
 import resolvePerson from './activitypub/resolve-person';
 import webFinger from './webfinger';
 
diff --git a/src/common/remote/webfinger.ts b/src/remote/webfinger.ts
similarity index 100%
rename from src/common/remote/webfinger.ts
rename to src/remote/webfinger.ts
diff --git a/src/server/activitypub/inbox.ts b/src/server/activitypub/inbox.ts
index cb679dbf0..31a47e276 100644
--- a/src/server/activitypub/inbox.ts
+++ b/src/server/activitypub/inbox.ts
@@ -3,7 +3,7 @@ import * as express from 'express';
 import { parseRequest, verifySignature } from 'http-signature';
 import User, { IRemoteUser } from '../../models/user';
 import queue from '../../queue';
-import parseAcct from '../../common/user/parse-acct';
+import parseAcct from '../../misc/user/parse-acct';
 
 const app = express();
 app.disable('x-powered-by');
diff --git a/src/server/activitypub/outbox.ts b/src/server/activitypub/outbox.ts
index c26c4df75..2018d8797 100644
--- a/src/server/activitypub/outbox.ts
+++ b/src/server/activitypub/outbox.ts
@@ -1,7 +1,7 @@
 import * as express from 'express';
-import context from '../../common/remote/activitypub/renderer/context';
-import renderNote from '../../common/remote/activitypub/renderer/note';
-import renderOrderedCollection from '../../common/remote/activitypub/renderer/ordered-collection';
+import context from '../../remote/activitypub/renderer/context';
+import renderNote from '../../remote/activitypub/renderer/note';
+import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection';
 import config from '../../conf';
 import Post from '../../models/post';
 import withUser from './with-user';
diff --git a/src/server/activitypub/post.ts b/src/server/activitypub/post.ts
index 6644563d8..ecbf9671f 100644
--- a/src/server/activitypub/post.ts
+++ b/src/server/activitypub/post.ts
@@ -1,7 +1,7 @@
 import * as express from 'express';
-import context from '../../common/remote/activitypub/renderer/context';
-import render from '../../common/remote/activitypub/renderer/note';
-import parseAcct from '../../common/user/parse-acct';
+import context from '../../remote/activitypub/renderer/context';
+import render from '../../remote/activitypub/renderer/note';
+import parseAcct from '../../misc/user/parse-acct';
 import Post from '../../models/post';
 import User from '../../models/user';
 
diff --git a/src/server/activitypub/publickey.ts b/src/server/activitypub/publickey.ts
index e380309dc..a23d11c15 100644
--- a/src/server/activitypub/publickey.ts
+++ b/src/server/activitypub/publickey.ts
@@ -1,6 +1,6 @@
 import * as express from 'express';
-import context from '../../common/remote/activitypub/renderer/context';
-import render from '../../common/remote/activitypub/renderer/key';
+import context from '../../remote/activitypub/renderer/context';
+import render from '../../remote/activitypub/renderer/key';
 import config from '../../conf';
 import withUser from './with-user';
 
diff --git a/src/server/activitypub/user.ts b/src/server/activitypub/user.ts
index cfda409e2..0d0b84bad 100644
--- a/src/server/activitypub/user.ts
+++ b/src/server/activitypub/user.ts
@@ -1,7 +1,7 @@
 import * as express from 'express';
 import config from '../../conf';
-import context from '../../common/remote/activitypub/renderer/context';
-import render from '../../common/remote/activitypub/renderer/person';
+import context from '../../remote/activitypub/renderer/context';
+import render from '../../remote/activitypub/renderer/person';
 import withUser from './with-user';
 
 const respond = withUser(username => `${config.url}/@${username}`, (user, req, res) => {
diff --git a/src/server/activitypub/with-user.ts b/src/server/activitypub/with-user.ts
index ed289b641..18f2e50ff 100644
--- a/src/server/activitypub/with-user.ts
+++ b/src/server/activitypub/with-user.ts
@@ -1,4 +1,4 @@
-import parseAcct from '../../common/user/parse-acct';
+import parseAcct from '../../misc/user/parse-acct';
 import User from '../../models/user';
 
 export default (redirect, respond) => async (req, res, next) => {
diff --git a/src/server/api/bot/core.ts b/src/server/api/bot/core.ts
index d636cc26e..0faf9b4e4 100644
--- a/src/server/api/bot/core.ts
+++ b/src/server/api/bot/core.ts
@@ -3,10 +3,10 @@ import * as bcrypt from 'bcryptjs';
 
 import User, { IUser, init as initUser, ILocalUser } from '../../../models/user';
 
-import getPostSummary from '../../../common/get-post-summary';
-import getUserSummary from '../../../common/user/get-summary';
-import parseAcct from '../../../common/user/parse-acct';
-import getNotificationSummary from '../../../common/get-notification-summary';
+import getPostSummary from '../../../misc/get-post-summary';
+import getUserSummary from '../../../misc/user/get-summary';
+import parseAcct from '../../../misc/user/parse-acct';
+import getNotificationSummary from '../../../misc/get-notification-summary';
 
 const hmm = [
 	'?',
diff --git a/src/server/api/bot/interfaces/line.ts b/src/server/api/bot/interfaces/line.ts
index 58fbb217b..a6e70a138 100644
--- a/src/server/api/bot/interfaces/line.ts
+++ b/src/server/api/bot/interfaces/line.ts
@@ -7,9 +7,9 @@ import config from '../../../../conf';
 import BotCore from '../core';
 import _redis from '../../../../db/redis';
 import prominence = require('prominence');
-import getAcct from '../../../../common/user/get-acct';
-import parseAcct from '../../../../common/user/parse-acct';
-import getPostSummary from '../../../../common/get-post-summary';
+import getAcct from '../../../../misc/user/get-acct';
+import parseAcct from '../../../../misc/user/parse-acct';
+import getPostSummary from '../../../../misc/get-post-summary';
 
 const redis = prominence(_redis);
 
diff --git a/src/server/api/endpoints/drive/files/upload_from_url.ts b/src/server/api/endpoints/drive/files/upload_from_url.ts
index 01d875055..ceb751a14 100644
--- a/src/server/api/endpoints/drive/files/upload_from_url.ts
+++ b/src/server/api/endpoints/drive/files/upload_from_url.ts
@@ -3,7 +3,7 @@
  */
 import $ from 'cafy';
 import { pack } from '../../../../../models/drive-file';
-import uploadFromUrl from '../../../../../common/drive/upload_from_url';
+import uploadFromUrl from '../../../../../common/drive/upload-from-url';
 
 /**
  * Create a file from a URL
diff --git a/src/server/api/endpoints/othello/games/show.ts b/src/server/api/endpoints/othello/games/show.ts
index 0d3b53965..0b1c9bc35 100644
--- a/src/server/api/endpoints/othello/games/show.ts
+++ b/src/server/api/endpoints/othello/games/show.ts
@@ -1,6 +1,6 @@
 import $ from 'cafy';
 import OthelloGame, { pack } from '../../../../../models/othello-game';
-import Othello from '../../../../../common/othello/core';
+import Othello from '../../../../../misc/othello/core';
 
 module.exports = (params, user) => new Promise(async (res, rej) => {
 	// Get 'gameId' parameter
diff --git a/src/server/api/endpoints/othello/match.ts b/src/server/api/endpoints/othello/match.ts
index 992b93d41..d9c46aae1 100644
--- a/src/server/api/endpoints/othello/match.ts
+++ b/src/server/api/endpoints/othello/match.ts
@@ -3,7 +3,7 @@ import Matching, { pack as packMatching } from '../../../../models/othello-match
 import OthelloGame, { pack as packGame } from '../../../../models/othello-game';
 import User from '../../../../models/user';
 import publishUserStream, { publishOthelloStream } from '../../../../common/event';
-import { eighteight } from '../../../../common/othello/maps';
+import { eighteight } from '../../../../misc/othello/maps';
 
 module.exports = (params, user) => new Promise(async (res, rej) => {
 	// Get 'userId' parameter
diff --git a/src/server/api/endpoints/posts/create.ts b/src/server/api/endpoints/posts/create.ts
index 4de917694..c2e790a24 100644
--- a/src/server/api/endpoints/posts/create.ts
+++ b/src/server/api/endpoints/posts/create.ts
@@ -17,8 +17,8 @@ import { pack } from '../../../../models/post';
 import watch from '../../common/watch-post';
 import event, { pushSw, publishChannelStream } from '../../../../common/event';
 import notify from '../../../../common/notify';
-import getAcct from '../../../../common/user/get-acct';
-import parseAcct from '../../../../common/user/parse-acct';
+import getAcct from '../../../../misc/user/get-acct';
+import parseAcct from '../../../../misc/user/parse-acct';
 import config from '../../../../conf';
 
 /**
diff --git a/src/server/api/endpoints/users/show.ts b/src/server/api/endpoints/users/show.ts
index f7b37193b..2b0279937 100644
--- a/src/server/api/endpoints/users/show.ts
+++ b/src/server/api/endpoints/users/show.ts
@@ -3,7 +3,7 @@
  */
 import $ from 'cafy';
 import User, { pack } from '../../../../models/user';
-import resolveRemoteUser from '../../../../common/remote/resolve-user';
+import resolveRemoteUser from '../../../../remote/resolve-user';
 
 const cursorOption = { fields: { data: false } };
 
diff --git a/src/server/api/limitter.ts b/src/server/api/limitter.ts
index 88ea6c367..93e03f5e4 100644
--- a/src/server/api/limitter.ts
+++ b/src/server/api/limitter.ts
@@ -3,7 +3,7 @@ import * as debug from 'debug';
 import limiterDB from '../../db/redis';
 import { Endpoint } from './endpoints';
 import { IAuthContext } from './authenticate';
-import getAcct from '../../common/user/get-acct';
+import getAcct from '../../misc/user/get-acct';
 
 const log = debug('misskey:limitter');
 
diff --git a/src/server/api/stream/othello-game.ts b/src/server/api/stream/othello-game.ts
index b11915f8f..00367a824 100644
--- a/src/server/api/stream/othello-game.ts
+++ b/src/server/api/stream/othello-game.ts
@@ -3,8 +3,8 @@ import * as redis from 'redis';
 import * as CRC32 from 'crc-32';
 import OthelloGame, { pack } from '../../../models/othello-game';
 import { publishOthelloGameStream } from '../../../common/event';
-import Othello from '../../../common/othello/core';
-import * as maps from '../../../common/othello/maps';
+import Othello from '../../../misc/othello/core';
+import * as maps from '../../../misc/othello/maps';
 import { ParsedUrlQuery } from 'querystring';
 
 export default function(request: websocket.request, connection: websocket.connection, subscriber: redis.RedisClient, user?: any): void {
diff --git a/src/server/webfinger.ts b/src/server/webfinger.ts
index 864bb4af5..41aeb5642 100644
--- a/src/server/webfinger.ts
+++ b/src/server/webfinger.ts
@@ -1,5 +1,5 @@
 import config from '../conf';
-import parseAcct from '../common/user/parse-acct';
+import parseAcct from '../misc/user/parse-acct';
 import User from '../models/user';
 const express = require('express');