diff --git a/src/components/popover/popover.component.ts b/src/components/popover/popover.component.ts
index ae296653..5e74e2c7 100644
--- a/src/components/popover/popover.component.ts
+++ b/src/components/popover/popover.component.ts
@@ -1,11 +1,13 @@
import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';
-import {KeyAction} from '../../config-serializer/config-items/KeyAction';
-import {KeystrokeAction} from '../../config-serializer/config-items/KeystrokeAction';
-import {MouseAction} from '../../config-serializer/config-items/MouseAction';
-import {PlayMacroAction} from '../../config-serializer/config-items/PlayMacroAction';
-import {SwitchKeymapAction} from '../../config-serializer/config-items/SwitchKeymapAction';
-import {SwitchLayerAction} from '../../config-serializer/config-items/SwitchLayerAction';
+import {
+ KeyAction,
+ KeystrokeAction,
+ MouseAction,
+ PlayMacroAction,
+ SwitchKeymapAction,
+ SwitchLayerAction
+} from '../../config-serializer/config-items/key-action';
import {Tab} from './tab/tab';
enum TabName {
diff --git a/src/components/popover/tab/keymap/keymap-tab.component.ts b/src/components/popover/tab/keymap/keymap-tab.component.ts
index b554c57c..a565506d 100644
--- a/src/components/popover/tab/keymap/keymap-tab.component.ts
+++ b/src/components/popover/tab/keymap/keymap-tab.component.ts
@@ -2,9 +2,8 @@ import {Component, Input, OnInit } from '@angular/core';
import {Select2OptionData} from 'ng2-select2/ng2-select2';
-import {KeyAction} from '../../../../config-serializer/config-items/KeyAction';
+import {KeyAction, SwitchKeymapAction} from '../../../../config-serializer/config-items/key-action';
import {Keymap} from '../../../../config-serializer/config-items/Keymap';
-import {SwitchKeymapAction} from '../../../../config-serializer/config-items/SwitchKeymapAction';
import {Tab} from '../tab';
import {UhkConfigurationService} from '../../../../services/uhk-configuration.service';
diff --git a/src/components/popover/tab/keypress/keypress-tab.component.ts b/src/components/popover/tab/keypress/keypress-tab.component.ts
index b255b00a..3879a0d4 100644
--- a/src/components/popover/tab/keypress/keypress-tab.component.ts
+++ b/src/components/popover/tab/keypress/keypress-tab.component.ts
@@ -2,8 +2,7 @@ import {Component, Input, OnInit} from '@angular/core';
import {Select2OptionData} from 'ng2-select2/ng2-select2';
-import {KeyAction} from '../../../../config-serializer/config-items/KeyAction';
-import {KeystrokeAction} from '../../../../config-serializer/config-items/KeystrokeAction';
+import {KeyAction, KeystrokeAction} from '../../../../config-serializer/config-items/key-action';
import {Tab} from '../tab';
diff --git a/src/components/popover/tab/layer/layer-tab.component.ts b/src/components/popover/tab/layer/layer-tab.component.ts
index cc741a7d..872f315b 100644
--- a/src/components/popover/tab/layer/layer-tab.component.ts
+++ b/src/components/popover/tab/layer/layer-tab.component.ts
@@ -1,7 +1,6 @@
import {Component, Input, OnInit, ViewChild} from '@angular/core';
-import {KeyAction} from '../../../../config-serializer/config-items/KeyAction';
-import {LayerName, SwitchLayerAction} from '../../../../config-serializer/config-items/SwitchLayerAction';
+import {KeyAction, LayerName, SwitchLayerAction} from '../../../../config-serializer/config-items/key-action';
import {Select2Component, Select2OptionData} from 'ng2-select2/ng2-select2';
diff --git a/src/components/popover/tab/macro/macro-item.component.ts b/src/components/popover/tab/macro/macro-item.component.ts
index 805955ea..f179b01b 100644
--- a/src/components/popover/tab/macro/macro-item.component.ts
+++ b/src/components/popover/tab/macro/macro-item.component.ts
@@ -1,15 +1,18 @@
+///
+
import { Component, Input, OnChanges, OnInit } from '@angular/core';
-import {DelayMacroAction} from '../../../../config-serializer/config-items/DelayMacroAction';
-import {HoldModifiersMacroAction} from '../../../../config-serializer/config-items/HoldModifiersMacroAction';
-import {MacroAction} from '../../../../config-serializer/config-items/MacroAction';
-import {MoveMouseMacroAction} from '../../../../config-serializer/config-items/MoveMouseMacroAction';
-import {PressModifiersMacroAction} from '../../../../config-serializer/config-items/PressModifiersMacroAction';
-import {ReleaseModifiersMacroAction} from '../../../../config-serializer/config-items/ReleaseModifiersMacroAction';
-import {ScrollMouseMacroAction} from '../../../../config-serializer/config-items/ScrollMouseMacroAction';
-import {TextMacroAction} from '../../../../config-serializer/config-items/TextMacroAction';
-
import {KeyModifiers} from '../../../../config-serializer/config-items/KeyModifiers';
+import {
+ DelayMacroAction,
+ HoldModifiersMacroAction,
+ MacroAction,
+ MoveMouseMacroAction,
+ PressModifiersMacroAction,
+ ReleaseModifiersMacroAction,
+ ScrollMouseMacroAction,
+ TextMacroAction
+} from '../../../../config-serializer/config-items/macro-action';
@Component({
selector: 'macro-item',
diff --git a/src/components/popover/tab/macro/macro-tab.component.ts b/src/components/popover/tab/macro/macro-tab.component.ts
index c8e36a43..12d67e94 100644
--- a/src/components/popover/tab/macro/macro-tab.component.ts
+++ b/src/components/popover/tab/macro/macro-tab.component.ts
@@ -2,9 +2,8 @@ import {Component, Input, OnInit} from '@angular/core';
import {Select2OptionData} from 'ng2-select2/ng2-select2';
-import {KeyAction} from '../../../../config-serializer/config-items/KeyAction';
+import {KeyAction, PlayMacroAction} from '../../../../config-serializer/config-items/key-action';
import {Macro} from '../../../../config-serializer/config-items/Macro';
-import {PlayMacroAction} from '../../../../config-serializer/config-items/PlayMacroAction';
import {Tab} from '../tab';
diff --git a/src/components/popover/tab/mouse/mouse-tab.component.ts b/src/components/popover/tab/mouse/mouse-tab.component.ts
index 2ee5be31..0e4fd85c 100644
--- a/src/components/popover/tab/mouse/mouse-tab.component.ts
+++ b/src/components/popover/tab/mouse/mouse-tab.component.ts
@@ -1,7 +1,6 @@
import {Component, Input, OnInit} from '@angular/core';
-import {KeyAction} from '../../../../config-serializer/config-items/KeyAction';
-import {MouseAction, MouseActionParam} from '../../../../config-serializer/config-items/MouseAction';
+import {KeyAction, MouseAction, MouseActionParam} from '../../../../config-serializer/config-items/key-action';
import {Tab} from '../tab';
diff --git a/src/components/popover/tab/none/none-tab.component.ts b/src/components/popover/tab/none/none-tab.component.ts
index 2e19eb94..469b3918 100644
--- a/src/components/popover/tab/none/none-tab.component.ts
+++ b/src/components/popover/tab/none/none-tab.component.ts
@@ -1,6 +1,6 @@
import {Component, OnInit } from '@angular/core';
-import {NoneAction} from '../../../../config-serializer/config-items/NoneAction';
+import {NoneAction} from '../../../../config-serializer/config-items/key-action';
import {Tab} from '../tab';
@Component({
diff --git a/src/components/popover/tab/tab.ts b/src/components/popover/tab/tab.ts
index 9882e106..04975b8a 100644
--- a/src/components/popover/tab/tab.ts
+++ b/src/components/popover/tab/tab.ts
@@ -1,4 +1,4 @@
-import {KeyAction} from '../../../config-serializer/config-items/KeyAction';
+import {KeyAction} from '../../../config-serializer/config-items/key-action';
export interface Tab {
keyActionValid(): boolean;
diff --git a/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.ts b/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.ts
index 3ce39cc2..931420cb 100644
--- a/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.ts
+++ b/src/components/svg/keys/svg-keyboard-key/svg-keyboard-key.component.ts
@@ -1,11 +1,14 @@
import { Component, Input, OnChanges, OnInit, SimpleChange } from '@angular/core';
-import {KeyAction} from '../../../../config-serializer/config-items/KeyAction';
+import {
+ KeyAction,
+ KeystrokeAction,
+ LayerName,
+ PlayMacroAction,
+ SwitchKeymapAction,
+ SwitchLayerAction
+} from '../../../../config-serializer/config-items/key-action';
import {KeyModifiers} from '../../../../config-serializer/config-items/KeyModifiers';
-import {KeystrokeAction} from '../../../../config-serializer/config-items/KeystrokeAction';
-import {PlayMacroAction} from '../../../../config-serializer/config-items/PlayMacroAction';
-import {SwitchKeymapAction} from '../../../../config-serializer/config-items/SwitchKeymapAction';
-import {LayerName, SwitchLayerAction} from '../../../../config-serializer/config-items/SwitchLayerAction';
import {UhkConfiguration} from '../../../../config-serializer/config-items/UhkConfiguration';
import {MapperService} from '../../../../services/mapper.service';
diff --git a/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.ts b/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.ts
index a7f63689..5c14e052 100644
--- a/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.ts
+++ b/src/components/svg/keys/svg-keystroke-key/svg-keystroke-key.component.ts
@@ -1,7 +1,7 @@
import { Component, Input, OnChanges, OnInit } from '@angular/core';
+import { KeystrokeAction } from '../../../../config-serializer/config-items/key-action';
import { KeyModifiers } from '../../../../config-serializer/config-items/KeyModifiers';
-import { KeystrokeAction } from '../../../../config-serializer/config-items/KeystrokeAction';
import { MapperService } from '../../../../services/mapper.service';
class SvgAttributes {
diff --git a/src/components/svg/module/svg-module.component.ts b/src/components/svg/module/svg-module.component.ts
index c1609fd7..7b3e7f7b 100644
--- a/src/components/svg/module/svg-module.component.ts
+++ b/src/components/svg/module/svg-module.component.ts
@@ -1,6 +1,6 @@
import { Component, EventEmitter, Input, Output } from '@angular/core';
-import {KeyAction} from '../../../config-serializer/config-items/KeyAction';
+import { KeyAction } from '../../../config-serializer/config-items/key-action';
import { SvgKeyboardKey } from '../keys';
diff --git a/src/components/svg/wrap/svg-keyboard-wrap.component.ts b/src/components/svg/wrap/svg-keyboard-wrap.component.ts
index 9a9fc719..e0c64b67 100644
--- a/src/components/svg/wrap/svg-keyboard-wrap.component.ts
+++ b/src/components/svg/wrap/svg-keyboard-wrap.component.ts
@@ -3,9 +3,8 @@ import {
state, style, transition, trigger
} from '@angular/core';
-import { KeyAction } from '../../../config-serializer/config-items/KeyAction';
+import { KeyAction, NoneAction } from '../../../config-serializer/config-items/key-action';
import { Layer } from '../../../config-serializer/config-items/Layer';
-import { NoneAction } from '../../../config-serializer/config-items/NoneAction';
@Component({
selector: 'svg-keyboard-wrap',
diff --git a/src/config-serializer/config-items/Macro.ts b/src/config-serializer/config-items/Macro.ts
index 5002c6f0..935a53f7 100644
--- a/src/config-serializer/config-items/Macro.ts
+++ b/src/config-serializer/config-items/Macro.ts
@@ -1,7 +1,7 @@
import {assertUInt8} from '../assert';
import {Serializable} from '../Serializable';
import {UhkBuffer} from '../UhkBuffer';
-import {MacroActions} from './MacroActions';
+import {MacroActions} from './macro-action';
export class Macro extends Serializable {
diff --git a/src/config-serializer/config-items/Module.ts b/src/config-serializer/config-items/Module.ts
index 8b44d263..e00fec10 100644
--- a/src/config-serializer/config-items/Module.ts
+++ b/src/config-serializer/config-items/Module.ts
@@ -1,7 +1,7 @@
import {assertEnum, assertUInt8} from '../assert';
import {Serializable} from '../Serializable';
import {UhkBuffer} from '../UhkBuffer';
-import {KeyActions} from './KeyActions';
+import {KeyActions} from './key-action';
enum PointerRole {
none,
diff --git a/src/config-serializer/config-items/KeyAction.ts b/src/config-serializer/config-items/key-action/KeyAction.ts
similarity index 94%
rename from src/config-serializer/config-items/KeyAction.ts
rename to src/config-serializer/config-items/key-action/KeyAction.ts
index 646f58ca..c1e8db4b 100644
--- a/src/config-serializer/config-items/KeyAction.ts
+++ b/src/config-serializer/config-items/key-action/KeyAction.ts
@@ -1,7 +1,7 @@
-///
+///
-import {Serializable} from '../Serializable';
-import {UhkBuffer} from '../UhkBuffer';
+import {Serializable} from '../../Serializable';
+import {UhkBuffer} from '../../UhkBuffer';
export enum KeyActionId {
NoneAction = 0,
diff --git a/src/config-serializer/config-items/KeyActions.ts b/src/config-serializer/config-items/key-action/KeyActions.ts
similarity index 96%
rename from src/config-serializer/config-items/KeyActions.ts
rename to src/config-serializer/config-items/key-action/KeyActions.ts
index fa94ac7c..d47f6df8 100644
--- a/src/config-serializer/config-items/KeyActions.ts
+++ b/src/config-serializer/config-items/key-action/KeyActions.ts
@@ -1,5 +1,5 @@
-import {ClassArray} from '../ClassArray';
-import {UhkBuffer} from '../UhkBuffer';
+import {ClassArray} from '../../ClassArray';
+import {UhkBuffer} from '../../UhkBuffer';
import {KeyAction, KeyActionId, keyActionType} from './KeyAction';
import {KeystrokeAction} from './KeystrokeAction';
import {MouseAction} from './MouseAction';
diff --git a/src/config-serializer/config-items/KeystrokeAction.ts b/src/config-serializer/config-items/key-action/KeystrokeAction.ts
similarity index 94%
rename from src/config-serializer/config-items/KeystrokeAction.ts
rename to src/config-serializer/config-items/key-action/KeystrokeAction.ts
index f599a65d..9ad171b5 100644
--- a/src/config-serializer/config-items/KeystrokeAction.ts
+++ b/src/config-serializer/config-items/key-action/KeystrokeAction.ts
@@ -1,8 +1,8 @@
-import {assertEnum, assertUInt8} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
+import {assertEnum, assertUInt8} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
+import {KeyModifiers} from '../KeyModifiers';
+import {LongPressAction} from '../LongPressAction';
import {KeyAction, KeyActionId, keyActionType} from './KeyAction';
-import {KeyModifiers} from './KeyModifiers';
-import {LongPressAction} from './LongPressAction';
export enum KeystrokeActionFlag {
scancode = 1 << 0,
diff --git a/src/config-serializer/config-items/MouseAction.ts b/src/config-serializer/config-items/key-action/MouseAction.ts
similarity index 93%
rename from src/config-serializer/config-items/MouseAction.ts
rename to src/config-serializer/config-items/key-action/MouseAction.ts
index 0ac1f59d..9b802d2e 100644
--- a/src/config-serializer/config-items/MouseAction.ts
+++ b/src/config-serializer/config-items/key-action/MouseAction.ts
@@ -1,5 +1,5 @@
-import {assertEnum} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
+import {assertEnum} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
import {KeyAction, KeyActionId, keyActionType} from './KeyAction';
export enum MouseActionParam {
diff --git a/src/config-serializer/config-items/NoneAction.ts b/src/config-serializer/config-items/key-action/NoneAction.ts
similarity index 93%
rename from src/config-serializer/config-items/NoneAction.ts
rename to src/config-serializer/config-items/key-action/NoneAction.ts
index a45b5abe..c58776cb 100644
--- a/src/config-serializer/config-items/NoneAction.ts
+++ b/src/config-serializer/config-items/key-action/NoneAction.ts
@@ -1,4 +1,4 @@
-import {UhkBuffer} from '../UhkBuffer';
+import {UhkBuffer} from '../../UhkBuffer';
import {KeyAction, KeyActionId, keyActionType} from './KeyAction';
export class NoneAction extends KeyAction {
diff --git a/src/config-serializer/config-items/PlayMacroAction.ts b/src/config-serializer/config-items/key-action/PlayMacroAction.ts
similarity index 91%
rename from src/config-serializer/config-items/PlayMacroAction.ts
rename to src/config-serializer/config-items/key-action/PlayMacroAction.ts
index 0c5f542a..da12714b 100644
--- a/src/config-serializer/config-items/PlayMacroAction.ts
+++ b/src/config-serializer/config-items/key-action/PlayMacroAction.ts
@@ -1,5 +1,5 @@
-import {assertUInt8} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
+import {assertUInt8} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
import {KeyAction, KeyActionId, keyActionType} from './KeyAction';
export class PlayMacroAction extends KeyAction {
diff --git a/src/config-serializer/config-items/SwitchKeymapAction.ts b/src/config-serializer/config-items/key-action/SwitchKeymapAction.ts
similarity index 91%
rename from src/config-serializer/config-items/SwitchKeymapAction.ts
rename to src/config-serializer/config-items/key-action/SwitchKeymapAction.ts
index c394be83..99660de9 100644
--- a/src/config-serializer/config-items/SwitchKeymapAction.ts
+++ b/src/config-serializer/config-items/key-action/SwitchKeymapAction.ts
@@ -1,5 +1,5 @@
-import {assertUInt8} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
+import {assertUInt8} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
import {KeyAction, KeyActionId, keyActionType} from './KeyAction';
export class SwitchKeymapAction extends KeyAction {
diff --git a/src/config-serializer/config-items/SwitchLayerAction.ts b/src/config-serializer/config-items/key-action/SwitchLayerAction.ts
similarity index 93%
rename from src/config-serializer/config-items/SwitchLayerAction.ts
rename to src/config-serializer/config-items/key-action/SwitchLayerAction.ts
index cc62ee5d..0b0c8b12 100644
--- a/src/config-serializer/config-items/SwitchLayerAction.ts
+++ b/src/config-serializer/config-items/key-action/SwitchLayerAction.ts
@@ -1,5 +1,5 @@
-import {assertEnum} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
+import {assertEnum} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
import {KeyAction, KeyActionId, keyActionType} from './KeyAction';
export enum LayerName {
diff --git a/src/config-serializer/config-items/key-action/index.ts b/src/config-serializer/config-items/key-action/index.ts
new file mode 100644
index 00000000..8157481c
--- /dev/null
+++ b/src/config-serializer/config-items/key-action/index.ts
@@ -0,0 +1,8 @@
+export * from './KeyAction';
+export * from './KeyActions';
+export * from './KeystrokeAction';
+export * from './MouseAction';
+export * from './NoneAction';
+export * from './PlayMacroAction';
+export * from './SwitchKeymapAction';
+export * from './SwitchLayerAction';
diff --git a/src/config-serializer/config-items/DelayMacroAction.ts b/src/config-serializer/config-items/macro-action/DelayMacroAction.ts
similarity index 91%
rename from src/config-serializer/config-items/DelayMacroAction.ts
rename to src/config-serializer/config-items/macro-action/DelayMacroAction.ts
index 6be8dcb2..24a537a3 100644
--- a/src/config-serializer/config-items/DelayMacroAction.ts
+++ b/src/config-serializer/config-items/macro-action/DelayMacroAction.ts
@@ -1,5 +1,5 @@
-import {assertUInt16} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
+import {assertUInt16} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
import {MacroAction, MacroActionId, macroActionType} from './MacroAction';
export class DelayMacroAction extends MacroAction {
diff --git a/src/config-serializer/config-items/HoldKeyMacroAction.ts b/src/config-serializer/config-items/macro-action/HoldKeyMacroAction.ts
similarity index 91%
rename from src/config-serializer/config-items/HoldKeyMacroAction.ts
rename to src/config-serializer/config-items/macro-action/HoldKeyMacroAction.ts
index 5f3f5a35..e757d528 100644
--- a/src/config-serializer/config-items/HoldKeyMacroAction.ts
+++ b/src/config-serializer/config-items/macro-action/HoldKeyMacroAction.ts
@@ -1,5 +1,5 @@
-import {assertUInt8} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
+import {assertUInt8} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
import {MacroAction, MacroActionId, macroActionType} from './MacroAction';
export class HoldKeyMacroAction extends MacroAction {
diff --git a/src/config-serializer/config-items/HoldModifiersMacroAction.ts b/src/config-serializer/config-items/macro-action/HoldModifiersMacroAction.ts
similarity index 89%
rename from src/config-serializer/config-items/HoldModifiersMacroAction.ts
rename to src/config-serializer/config-items/macro-action/HoldModifiersMacroAction.ts
index 01591b84..71df9357 100644
--- a/src/config-serializer/config-items/HoldModifiersMacroAction.ts
+++ b/src/config-serializer/config-items/macro-action/HoldModifiersMacroAction.ts
@@ -1,6 +1,6 @@
-import {assertUInt8} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
-import {KeyModifiers} from './KeyModifiers';
+import {assertUInt8} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
+import {KeyModifiers} from '../KeyModifiers';
import {MacroAction, MacroActionId, macroActionType} from './MacroAction';
export class HoldModifiersMacroAction extends MacroAction {
diff --git a/src/config-serializer/config-items/HoldMouseButtonsMacroAction.ts b/src/config-serializer/config-items/macro-action/HoldMouseButtonsMacroAction.ts
similarity index 92%
rename from src/config-serializer/config-items/HoldMouseButtonsMacroAction.ts
rename to src/config-serializer/config-items/macro-action/HoldMouseButtonsMacroAction.ts
index bc884d1f..0199794f 100644
--- a/src/config-serializer/config-items/HoldMouseButtonsMacroAction.ts
+++ b/src/config-serializer/config-items/macro-action/HoldMouseButtonsMacroAction.ts
@@ -1,5 +1,5 @@
-import {assertUInt8} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
+import {assertUInt8} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
import {MacroAction, MacroActionId, macroActionType} from './MacroAction';
export class HoldMouseButtonsMacroAction extends MacroAction {
diff --git a/src/config-serializer/config-items/MacroAction.ts b/src/config-serializer/config-items/macro-action/MacroAction.ts
similarity index 96%
rename from src/config-serializer/config-items/MacroAction.ts
rename to src/config-serializer/config-items/macro-action/MacroAction.ts
index 37dfa32d..a69f534e 100644
--- a/src/config-serializer/config-items/MacroAction.ts
+++ b/src/config-serializer/config-items/macro-action/MacroAction.ts
@@ -1,5 +1,5 @@
-import {Serializable} from '../Serializable';
-import {UhkBuffer} from '../UhkBuffer';
+import {Serializable} from '../../Serializable';
+import {UhkBuffer} from '../../UhkBuffer';
export enum MacroActionId {
PressKeyMacroAction = 0,
diff --git a/src/config-serializer/config-items/MacroActions.ts b/src/config-serializer/config-items/macro-action/MacroActions.ts
similarity index 98%
rename from src/config-serializer/config-items/MacroActions.ts
rename to src/config-serializer/config-items/macro-action/MacroActions.ts
index 968331fc..176b3fea 100644
--- a/src/config-serializer/config-items/MacroActions.ts
+++ b/src/config-serializer/config-items/macro-action/MacroActions.ts
@@ -1,5 +1,5 @@
-import {ClassArray} from '../ClassArray';
-import {UhkBuffer} from '../UhkBuffer';
+import {ClassArray} from '../../ClassArray';
+import {UhkBuffer} from '../../UhkBuffer';
import {DelayMacroAction} from './DelayMacroAction';
import {HoldKeyMacroAction} from './HoldKeyMacroAction';
import {HoldModifiersMacroAction} from './HoldModifiersMacroAction';
diff --git a/src/config-serializer/config-items/MoveMouseMacroAction.ts b/src/config-serializer/config-items/macro-action/MoveMouseMacroAction.ts
similarity index 92%
rename from src/config-serializer/config-items/MoveMouseMacroAction.ts
rename to src/config-serializer/config-items/macro-action/MoveMouseMacroAction.ts
index e5efa847..37df73ad 100644
--- a/src/config-serializer/config-items/MoveMouseMacroAction.ts
+++ b/src/config-serializer/config-items/macro-action/MoveMouseMacroAction.ts
@@ -1,5 +1,5 @@
-import {assertInt16} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
+import {assertInt16} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
import {MacroAction, MacroActionId, macroActionType} from './MacroAction';
export class MoveMouseMacroAction extends MacroAction {
diff --git a/src/config-serializer/config-items/PressKeyMacroAction.ts b/src/config-serializer/config-items/macro-action/PressKeyMacroAction.ts
similarity index 91%
rename from src/config-serializer/config-items/PressKeyMacroAction.ts
rename to src/config-serializer/config-items/macro-action/PressKeyMacroAction.ts
index dcb3e6aa..42d0afe0 100644
--- a/src/config-serializer/config-items/PressKeyMacroAction.ts
+++ b/src/config-serializer/config-items/macro-action/PressKeyMacroAction.ts
@@ -1,5 +1,5 @@
-import {assertUInt8} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
+import {assertUInt8} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
import {MacroAction, MacroActionId, macroActionType} from './MacroAction';
export class PressKeyMacroAction extends MacroAction {
diff --git a/src/config-serializer/config-items/PressModifiersMacroAction.ts b/src/config-serializer/config-items/macro-action/PressModifiersMacroAction.ts
similarity index 89%
rename from src/config-serializer/config-items/PressModifiersMacroAction.ts
rename to src/config-serializer/config-items/macro-action/PressModifiersMacroAction.ts
index d9c4f80f..3506bd6d 100644
--- a/src/config-serializer/config-items/PressModifiersMacroAction.ts
+++ b/src/config-serializer/config-items/macro-action/PressModifiersMacroAction.ts
@@ -1,6 +1,6 @@
-import {assertUInt8} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
-import {KeyModifiers} from './KeyModifiers';
+import {assertUInt8} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
+import {KeyModifiers} from '../KeyModifiers';
import {MacroAction, MacroActionId, macroActionType} from './MacroAction';
export class PressModifiersMacroAction extends MacroAction {
diff --git a/src/config-serializer/config-items/PressMouseButtonsMacroAction.ts b/src/config-serializer/config-items/macro-action/PressMouseButtonsMacroAction.ts
similarity index 92%
rename from src/config-serializer/config-items/PressMouseButtonsMacroAction.ts
rename to src/config-serializer/config-items/macro-action/PressMouseButtonsMacroAction.ts
index 44f1c689..1e40629b 100644
--- a/src/config-serializer/config-items/PressMouseButtonsMacroAction.ts
+++ b/src/config-serializer/config-items/macro-action/PressMouseButtonsMacroAction.ts
@@ -1,5 +1,5 @@
-import {assertUInt8} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
+import {assertUInt8} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
import {MacroAction, MacroActionId, macroActionType} from './MacroAction';
export class PressMouseButtonsMacroAction extends MacroAction {
diff --git a/src/config-serializer/config-items/ReleaseKeyMacroAction.ts b/src/config-serializer/config-items/macro-action/ReleaseKeyMacroAction.ts
similarity index 91%
rename from src/config-serializer/config-items/ReleaseKeyMacroAction.ts
rename to src/config-serializer/config-items/macro-action/ReleaseKeyMacroAction.ts
index e98f02ef..0855600a 100644
--- a/src/config-serializer/config-items/ReleaseKeyMacroAction.ts
+++ b/src/config-serializer/config-items/macro-action/ReleaseKeyMacroAction.ts
@@ -1,5 +1,5 @@
-import {assertUInt8} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
+import {assertUInt8} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
import {MacroAction, MacroActionId, macroActionType} from './MacroAction';
export class ReleaseKeyMacroAction extends MacroAction {
diff --git a/src/config-serializer/config-items/ReleaseModifiersMacroAction.ts b/src/config-serializer/config-items/macro-action/ReleaseModifiersMacroAction.ts
similarity index 89%
rename from src/config-serializer/config-items/ReleaseModifiersMacroAction.ts
rename to src/config-serializer/config-items/macro-action/ReleaseModifiersMacroAction.ts
index beaf57ec..e523b438 100644
--- a/src/config-serializer/config-items/ReleaseModifiersMacroAction.ts
+++ b/src/config-serializer/config-items/macro-action/ReleaseModifiersMacroAction.ts
@@ -1,6 +1,6 @@
-import {assertUInt8} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
-import {KeyModifiers} from './KeyModifiers';
+import {assertUInt8} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
+import {KeyModifiers} from '../KeyModifiers';
import {MacroAction, MacroActionId, macroActionType} from './MacroAction';
export class ReleaseModifiersMacroAction extends MacroAction {
diff --git a/src/config-serializer/config-items/ReleaseMouseButtonsMacroAction.ts b/src/config-serializer/config-items/macro-action/ReleaseMouseButtonsMacroAction.ts
similarity index 92%
rename from src/config-serializer/config-items/ReleaseMouseButtonsMacroAction.ts
rename to src/config-serializer/config-items/macro-action/ReleaseMouseButtonsMacroAction.ts
index 93d39d28..fd9e6833 100644
--- a/src/config-serializer/config-items/ReleaseMouseButtonsMacroAction.ts
+++ b/src/config-serializer/config-items/macro-action/ReleaseMouseButtonsMacroAction.ts
@@ -1,5 +1,5 @@
-import {assertUInt8} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
+import {assertUInt8} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
import {MacroAction, MacroActionId, macroActionType} from './MacroAction';
export class ReleaseMouseButtonsMacroAction extends MacroAction {
diff --git a/src/config-serializer/config-items/ScrollMouseMacroAction.ts b/src/config-serializer/config-items/macro-action/ScrollMouseMacroAction.ts
similarity index 92%
rename from src/config-serializer/config-items/ScrollMouseMacroAction.ts
rename to src/config-serializer/config-items/macro-action/ScrollMouseMacroAction.ts
index 144ef0cd..d6722ff8 100644
--- a/src/config-serializer/config-items/ScrollMouseMacroAction.ts
+++ b/src/config-serializer/config-items/macro-action/ScrollMouseMacroAction.ts
@@ -1,5 +1,5 @@
-import {assertInt16} from '../assert';
-import {UhkBuffer} from '../UhkBuffer';
+import {assertInt16} from '../../assert';
+import {UhkBuffer} from '../../UhkBuffer';
import {MacroAction, MacroActionId, macroActionType} from './MacroAction';
export class ScrollMouseMacroAction extends MacroAction {
diff --git a/src/config-serializer/config-items/TextMacroAction.ts b/src/config-serializer/config-items/macro-action/TextMacroAction.ts
similarity index 95%
rename from src/config-serializer/config-items/TextMacroAction.ts
rename to src/config-serializer/config-items/macro-action/TextMacroAction.ts
index 8b7f0287..435b9353 100644
--- a/src/config-serializer/config-items/TextMacroAction.ts
+++ b/src/config-serializer/config-items/macro-action/TextMacroAction.ts
@@ -1,4 +1,4 @@
-import {UhkBuffer} from '../UhkBuffer';
+import {UhkBuffer} from '../../UhkBuffer';
import {MacroAction, MacroActionId, macroActionType} from './MacroAction';
export class TextMacroAction extends MacroAction {
diff --git a/src/config-serializer/config-items/macro-action/index.ts b/src/config-serializer/config-items/macro-action/index.ts
new file mode 100644
index 00000000..99e8a29b
--- /dev/null
+++ b/src/config-serializer/config-items/macro-action/index.ts
@@ -0,0 +1,15 @@
+export * from './DelayMacroAction';
+export * from './HoldKeyMacroAction';
+export * from './HoldModifiersMacroAction';
+export * from './HoldMouseButtonsMacroAction';
+export * from './MacroAction';
+export * from './MacroActions';
+export * from './MoveMouseMacroAction';
+export * from './PressKeyMacroAction';
+export * from './PressModifiersMacroAction';
+export * from './PressMouseButtonsMacroAction';
+export * from './ReleaseKeyMacroAction';
+export * from './ReleaseModifiersMacroAction';
+export * from './ReleaseMouseButtonsMacroAction';
+export * from './ScrollMouseMacroAction';
+export * from './TextMacroAction';