diff --git a/python/knot_resolver_manager/__init__.py b/python/knot_resolver_manager/__init__.py
index 3dc1f76bc69e3f559bee6253b24fc93acee9e1f9..511e8d44e7855b94e34c05426ceaf314dcbfb947 100644
--- a/python/knot_resolver_manager/__init__.py
+++ b/python/knot_resolver_manager/__init__.py
@@ -1 +1,5 @@
+from .datamodel.config_schema import KresConfig
+
 __version__ = "0.1.0"
+
+__all__ = ["KresConfig"]
diff --git a/python/knot_resolver_manager/client/__init__.py b/python/knot_resolver_manager/client/__init__.py
index 2b1eb0f6df8517308739393ea22f120b122772b6..d3c6280d44960dd95a09ff87d42ff22399d668e3 100644
--- a/python/knot_resolver_manager/client/__init__.py
+++ b/python/knot_resolver_manager/client/__init__.py
@@ -1,5 +1,5 @@
 from pathlib import Path
 
-from knot_resolver_manager.manager.datamodel.globals import Context, set_global_validation_context
+from knot_resolver_manager.datamodel.globals import Context, set_global_validation_context
 
 set_global_validation_context(Context(Path("."), False))
diff --git a/python/knot_resolver_manager/client/command.py b/python/knot_resolver_manager/client/command.py
index 6adb0dd9f43a6a546c2c929629682331a522530c..df7728588ac68e246b7a4825326fca6f9d73fcff 100644
--- a/python/knot_resolver_manager/client/command.py
+++ b/python/knot_resolver_manager/client/command.py
@@ -6,8 +6,8 @@ from typing import Dict, List, Optional, Tuple, Type, TypeVar
 from urllib.parse import quote
 
 from knot_resolver_manager.manager.constants import API_SOCK_ENV_VAR, CONFIG_FILE_ENV_VAR, DEFAULT_MANAGER_CONFIG_FILE
-from knot_resolver_manager.manager.datamodel.config_schema import DEFAULT_MANAGER_API_SOCK
-from knot_resolver_manager.manager.datamodel.types import IPAddressPort
+from knot_resolver_manager.datamodel.config_schema import DEFAULT_MANAGER_API_SOCK
+from knot_resolver_manager.datamodel.types import IPAddressPort
 from knot_resolver_manager.utils.modeling import parsing
 from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
 from knot_resolver_manager.utils.requests import SocketDesc
diff --git a/python/knot_resolver_manager/client/commands/cache.py b/python/knot_resolver_manager/client/commands/cache.py
index 42d28ce60c5d190db8612f83a434463657b2ced0..493c46d882925cbbde8ca27502cdaa5f1054144b 100644
--- a/python/knot_resolver_manager/client/commands/cache.py
+++ b/python/knot_resolver_manager/client/commands/cache.py
@@ -4,7 +4,7 @@ from enum import Enum
 from typing import Any, Dict, List, Optional, Tuple, Type
 
 from knot_resolver_manager.client.command import Command, CommandArgs, CompWords, register_command
-from knot_resolver_manager.manager.datamodel.cache_schema import CacheClearRPCSchema
+from knot_resolver_manager.datamodel.cache_schema import CacheClearRPCSchema
 from knot_resolver_manager.utils.modeling.exceptions import AggregateDataValidationError, DataValidationError
 from knot_resolver_manager.utils.modeling.parsing import DataFormat, parse_json
 from knot_resolver_manager.utils.requests import request
diff --git a/python/knot_resolver_manager/client/commands/convert.py b/python/knot_resolver_manager/client/commands/convert.py
index 157e07312475ae58c0268c6ef667ee6c6bc360bc..a468bf56194c813bf913886ad7f1743ea85f7359 100644
--- a/python/knot_resolver_manager/client/commands/convert.py
+++ b/python/knot_resolver_manager/client/commands/convert.py
@@ -4,8 +4,8 @@ from pathlib import Path
 from typing import List, Optional, Tuple, Type
 
 from knot_resolver_manager.client.command import Command, CommandArgs, CompWords, register_command
-from knot_resolver_manager.manager.datamodel import KresConfig
-from knot_resolver_manager.manager.datamodel.globals import (
+from knot_resolver_manager.datamodel import KresConfig
+from knot_resolver_manager.datamodel.globals import (
     Context,
     reset_global_validation_context,
     set_global_validation_context,
diff --git a/python/knot_resolver_manager/client/commands/schema.py b/python/knot_resolver_manager/client/commands/schema.py
index 8e48022be1ebf3866679ae3655f9e7a35c40fdd0..af7ad618c824f0582032c5497617671867b866d3 100644
--- a/python/knot_resolver_manager/client/commands/schema.py
+++ b/python/knot_resolver_manager/client/commands/schema.py
@@ -4,7 +4,7 @@ import sys
 from typing import List, Optional, Tuple, Type
 
 from knot_resolver_manager.client.command import Command, CommandArgs, CompWords, register_command
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.config_schema import KresConfig
 from knot_resolver_manager.utils.requests import request
 
 
diff --git a/python/knot_resolver_manager/client/commands/validate.py b/python/knot_resolver_manager/client/commands/validate.py
index 0b327b3460a60d7ae66c9bc23ca7a9ef8c7fe14b..924244bdc07af6783219bb8c526608df0df9166b 100644
--- a/python/knot_resolver_manager/client/commands/validate.py
+++ b/python/knot_resolver_manager/client/commands/validate.py
@@ -4,8 +4,8 @@ from pathlib import Path
 from typing import List, Tuple, Type
 
 from knot_resolver_manager.client.command import Command, CommandArgs, CompWords, register_command
-from knot_resolver_manager.manager.datamodel import KresConfig
-from knot_resolver_manager.manager.datamodel.globals import (
+from knot_resolver_manager.datamodel import KresConfig
+from knot_resolver_manager.datamodel.globals import (
     Context,
     reset_global_validation_context,
     set_global_validation_context,
diff --git a/python/knot_resolver_manager/controller/__init__.py b/python/knot_resolver_manager/controller/__init__.py
index 621ea70231c9f4b20612be13a731b661522900eb..cfefa48fffdaf8632520f462904dd31338f35027 100644
--- a/python/knot_resolver_manager/controller/__init__.py
+++ b/python/knot_resolver_manager/controller/__init__.py
@@ -12,7 +12,7 @@ import asyncio
 import logging
 from typing import List, Optional
 
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.config_schema import KresConfig
 from knot_resolver_manager.controller.interface import SubprocessController
 
 logger = logging.getLogger(__name__)
diff --git a/python/knot_resolver_manager/controller/interface.py b/python/knot_resolver_manager/controller/interface.py
index f5ca8c1547333260a54abb98e0c275c2648b62cc..dfedb4b24525b343914c8448662d64ac9c346404 100644
--- a/python/knot_resolver_manager/controller/interface.py
+++ b/python/knot_resolver_manager/controller/interface.py
@@ -11,7 +11,7 @@ from typing import Dict, Iterable, Optional, Type, TypeVar
 from weakref import WeakValueDictionary
 
 from knot_resolver_manager.manager.constants import kresd_config_file, policy_loader_config_file
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.config_schema import KresConfig
 from knot_resolver_manager.manager.exceptions import SubprocessControllerException
 from knot_resolver_manager.controller.registered_workers import register_worker, unregister_worker
 from knot_resolver_manager.utils.async_utils import writefile
diff --git a/python/knot_resolver_manager/controller/supervisord/__init__.py b/python/knot_resolver_manager/controller/supervisord/__init__.py
index 1d6f586cd078cec31a43ce710baff2fe832f8fad..bf1429e39d0da5fe885b6adedab6cee6ce84a9b2 100644
--- a/python/knot_resolver_manager/controller/supervisord/__init__.py
+++ b/python/knot_resolver_manager/controller/supervisord/__init__.py
@@ -8,7 +8,7 @@ import supervisor.xmlrpc  # type: ignore[import]
 
 from knot_resolver_manager.compat.asyncio import async_in_a_thread
 from knot_resolver_manager.manager.constants import supervisord_config_file, supervisord_pid_file, supervisord_sock_file
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.config_schema import KresConfig
 from knot_resolver_manager.manager.exceptions import CancelStartupExecInsteadException, SubprocessControllerException
 from knot_resolver_manager.controller.interface import (
     KresID,
diff --git a/python/knot_resolver_manager/controller/supervisord/config_file.py b/python/knot_resolver_manager/controller/supervisord/config_file.py
index 388ac94dcc53a19969583253f40accde05bc1d49..27da636c56f9bbdd5b1c8f74c0bfba8d081394f5 100644
--- a/python/knot_resolver_manager/controller/supervisord/config_file.py
+++ b/python/knot_resolver_manager/controller/supervisord/config_file.py
@@ -19,8 +19,8 @@ from knot_resolver_manager.manager.constants import (
     supervisord_subprocess_log_dir,
     user_constants,
 )
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
-from knot_resolver_manager.manager.datamodel.logging_schema import LogTargetEnum
+from knot_resolver_manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.logging_schema import LogTargetEnum
 from knot_resolver_manager.controller.interface import KresID, SubprocessType
 from knot_resolver_manager.utils.async_utils import read_resource, writefile
 
diff --git a/python/knot_resolver_manager/manager/datamodel/__init__.py b/python/knot_resolver_manager/datamodel/__init__.py
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/__init__.py
rename to python/knot_resolver_manager/datamodel/__init__.py
diff --git a/python/knot_resolver_manager/manager/datamodel/cache_schema.py b/python/knot_resolver_manager/datamodel/cache_schema.py
similarity index 97%
rename from python/knot_resolver_manager/manager/datamodel/cache_schema.py
rename to python/knot_resolver_manager/datamodel/cache_schema.py
index fd0247aac0d9dafb32c7e6e9f55e6ac562309e4a..4ed9fc3a8ca1710c15a55bb468805ab9343be919 100644
--- a/python/knot_resolver_manager/manager/datamodel/cache_schema.py
+++ b/python/knot_resolver_manager/datamodel/cache_schema.py
@@ -2,8 +2,8 @@ from typing import List, Optional, Union
 
 from typing_extensions import Literal
 
-from knot_resolver_manager.manager.datamodel.templates import template_from_str
-from knot_resolver_manager.manager.datamodel.types import (
+from knot_resolver_manager.datamodel.templates import template_from_str
+from knot_resolver_manager.datamodel.types import (
     DNSRecordTypeEnum,
     DomainName,
     EscapedStr,
diff --git a/python/knot_resolver_manager/manager/datamodel/config_schema.py b/python/knot_resolver_manager/datamodel/config_schema.py
similarity index 87%
rename from python/knot_resolver_manager/manager/datamodel/config_schema.py
rename to python/knot_resolver_manager/datamodel/config_schema.py
index 4201447b03f42ca1f7641376615490ed556cf978..2f633d72c2a0ddbcb7204030734c940a6f5bf6e4 100644
--- a/python/knot_resolver_manager/manager/datamodel/config_schema.py
+++ b/python/knot_resolver_manager/datamodel/config_schema.py
@@ -6,21 +6,21 @@ from typing import Any, Dict, List, Optional, Tuple, Union
 from typing_extensions import Literal
 
 from knot_resolver_manager.manager.constants import MAX_WORKERS
-from knot_resolver_manager.manager.datamodel.cache_schema import CacheSchema
-from knot_resolver_manager.manager.datamodel.dns64_schema import Dns64Schema
-from knot_resolver_manager.manager.datamodel.dnssec_schema import DnssecSchema
-from knot_resolver_manager.manager.datamodel.forward_schema import ForwardSchema
-from knot_resolver_manager.manager.datamodel.local_data_schema import LocalDataSchema, RPZSchema, RuleSchema
-from knot_resolver_manager.manager.datamodel.logging_schema import LoggingSchema
-from knot_resolver_manager.manager.datamodel.lua_schema import LuaSchema
-from knot_resolver_manager.manager.datamodel.management_schema import ManagementSchema
-from knot_resolver_manager.manager.datamodel.monitoring_schema import MonitoringSchema
-from knot_resolver_manager.manager.datamodel.network_schema import NetworkSchema
-from knot_resolver_manager.manager.datamodel.options_schema import OptionsSchema
-from knot_resolver_manager.manager.datamodel.templates import POLICY_CONFIG_TEMPLATE, WORKER_CONFIG_TEMPLATE
-from knot_resolver_manager.manager.datamodel.types import EscapedStr, IntPositive, WritableDir
-from knot_resolver_manager.manager.datamodel.view_schema import ViewSchema
-from knot_resolver_manager.manager.datamodel.webmgmt_schema import WebmgmtSchema
+from knot_resolver_manager.datamodel.cache_schema import CacheSchema
+from knot_resolver_manager.datamodel.dns64_schema import Dns64Schema
+from knot_resolver_manager.datamodel.dnssec_schema import DnssecSchema
+from knot_resolver_manager.datamodel.forward_schema import ForwardSchema
+from knot_resolver_manager.datamodel.local_data_schema import LocalDataSchema, RPZSchema, RuleSchema
+from knot_resolver_manager.datamodel.logging_schema import LoggingSchema
+from knot_resolver_manager.datamodel.lua_schema import LuaSchema
+from knot_resolver_manager.datamodel.management_schema import ManagementSchema
+from knot_resolver_manager.datamodel.monitoring_schema import MonitoringSchema
+from knot_resolver_manager.datamodel.network_schema import NetworkSchema
+from knot_resolver_manager.datamodel.options_schema import OptionsSchema
+from knot_resolver_manager.datamodel.templates import POLICY_CONFIG_TEMPLATE, WORKER_CONFIG_TEMPLATE
+from knot_resolver_manager.datamodel.types import EscapedStr, IntPositive, WritableDir
+from knot_resolver_manager.datamodel.view_schema import ViewSchema
+from knot_resolver_manager.datamodel.webmgmt_schema import WebmgmtSchema
 from knot_resolver_manager.utils.modeling import ConfigSchema
 from knot_resolver_manager.utils.modeling.base_schema import lazy_default
 from knot_resolver_manager.utils.modeling.exceptions import AggregateDataValidationError, DataValidationError
diff --git a/python/knot_resolver_manager/manager/datamodel/design-notes.yml b/python/knot_resolver_manager/datamodel/design-notes.yml
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/design-notes.yml
rename to python/knot_resolver_manager/datamodel/design-notes.yml
diff --git a/python/knot_resolver_manager/manager/datamodel/dns64_schema.py b/python/knot_resolver_manager/datamodel/dns64_schema.py
similarity index 85%
rename from python/knot_resolver_manager/manager/datamodel/dns64_schema.py
rename to python/knot_resolver_manager/datamodel/dns64_schema.py
index 35eb1fa6d66b1672c6f4b6bafca59bc3dfd58985..60b92f2b95e1e6a36f5038876e1eca47c1eeabdb 100644
--- a/python/knot_resolver_manager/manager/datamodel/dns64_schema.py
+++ b/python/knot_resolver_manager/datamodel/dns64_schema.py
@@ -1,6 +1,6 @@
 from typing import List, Optional
 
-from knot_resolver_manager.manager.datamodel.types import IPv6Network, IPv6Network96, TimeUnit
+from knot_resolver_manager.datamodel.types import IPv6Network, IPv6Network96, TimeUnit
 from knot_resolver_manager.utils.modeling import ConfigSchema
 
 
diff --git a/python/knot_resolver_manager/manager/datamodel/dnssec_schema.py b/python/knot_resolver_manager/datamodel/dnssec_schema.py
similarity index 94%
rename from python/knot_resolver_manager/manager/datamodel/dnssec_schema.py
rename to python/knot_resolver_manager/datamodel/dnssec_schema.py
index 44f7ee313bed59c5a05e2bff5861ebd9c028b334..e51500e1812716aed2c0d45ef324af3c73865322 100644
--- a/python/knot_resolver_manager/manager/datamodel/dnssec_schema.py
+++ b/python/knot_resolver_manager/datamodel/dnssec_schema.py
@@ -1,6 +1,6 @@
 from typing import List, Optional
 
-from knot_resolver_manager.manager.datamodel.types import DomainName, EscapedStr, IntNonNegative, ReadableFile, TimeUnit
+from knot_resolver_manager.datamodel.types import DomainName, EscapedStr, IntNonNegative, ReadableFile, TimeUnit
 from knot_resolver_manager.utils.modeling import ConfigSchema
 
 
diff --git a/python/knot_resolver_manager/manager/datamodel/forward_schema.py b/python/knot_resolver_manager/datamodel/forward_schema.py
similarity index 97%
rename from python/knot_resolver_manager/manager/datamodel/forward_schema.py
rename to python/knot_resolver_manager/datamodel/forward_schema.py
index 923217f46cce0e211abbb5971c561e8f060944fc..0804ef253e5faf2a1dd6cd989848057241b6a5f3 100644
--- a/python/knot_resolver_manager/manager/datamodel/forward_schema.py
+++ b/python/knot_resolver_manager/datamodel/forward_schema.py
@@ -2,7 +2,7 @@ from typing import Any, List, Optional, Union
 
 from typing_extensions import Literal
 
-from knot_resolver_manager.manager.datamodel.types import (
+from knot_resolver_manager.datamodel.types import (
     DomainName,
     IPAddressOptionalPort,
     ListOrItem,
diff --git a/python/knot_resolver_manager/manager/datamodel/globals.py b/python/knot_resolver_manager/datamodel/globals.py
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/globals.py
rename to python/knot_resolver_manager/datamodel/globals.py
diff --git a/python/knot_resolver_manager/manager/datamodel/local_data_schema.py b/python/knot_resolver_manager/datamodel/local_data_schema.py
similarity index 98%
rename from python/knot_resolver_manager/manager/datamodel/local_data_schema.py
rename to python/knot_resolver_manager/datamodel/local_data_schema.py
index 6e1a966c9b4ffc111addc44b33049802f74450b5..fafa7ebe2edd2fee25ec70c2ca62d8d5bf038225 100644
--- a/python/knot_resolver_manager/manager/datamodel/local_data_schema.py
+++ b/python/knot_resolver_manager/datamodel/local_data_schema.py
@@ -2,7 +2,7 @@ from typing import Dict, List, Optional
 
 from typing_extensions import Literal
 
-from knot_resolver_manager.manager.datamodel.types import (
+from knot_resolver_manager.datamodel.types import (
     DomainName,
     EscapedStr,
     IDPattern,
diff --git a/python/knot_resolver_manager/manager/datamodel/logging_schema.py b/python/knot_resolver_manager/datamodel/logging_schema.py
similarity index 98%
rename from python/knot_resolver_manager/manager/datamodel/logging_schema.py
rename to python/knot_resolver_manager/datamodel/logging_schema.py
index 46f36d5af3ec6278c91f2013a1ff230c8c844380..601cd4a5446c43907a03c41b709e589af7932852 100644
--- a/python/knot_resolver_manager/manager/datamodel/logging_schema.py
+++ b/python/knot_resolver_manager/datamodel/logging_schema.py
@@ -3,7 +3,7 @@ from typing import Any, List, Optional, Set, Type, Union, cast
 
 from typing_extensions import Literal
 
-from knot_resolver_manager.manager.datamodel.types import TimeUnit, WritableFilePath
+from knot_resolver_manager.datamodel.types import TimeUnit, WritableFilePath
 from knot_resolver_manager.utils.modeling import ConfigSchema
 from knot_resolver_manager.utils.modeling.base_schema import is_obj_type_valid
 
diff --git a/python/knot_resolver_manager/manager/datamodel/lua_schema.py b/python/knot_resolver_manager/datamodel/lua_schema.py
similarity index 90%
rename from python/knot_resolver_manager/manager/datamodel/lua_schema.py
rename to python/knot_resolver_manager/datamodel/lua_schema.py
index 0dccc18495ae59c96ff8b01584fc1208bc17776b..079333ae84b8c2c46e4853e7eeff69ab2848deb0 100644
--- a/python/knot_resolver_manager/manager/datamodel/lua_schema.py
+++ b/python/knot_resolver_manager/datamodel/lua_schema.py
@@ -1,6 +1,6 @@
 from typing import Optional
 
-from knot_resolver_manager.manager.datamodel.types import ReadableFile
+from knot_resolver_manager.datamodel.types import ReadableFile
 from knot_resolver_manager.utils.modeling import ConfigSchema
 
 
diff --git a/python/knot_resolver_manager/manager/datamodel/management_schema.py b/python/knot_resolver_manager/datamodel/management_schema.py
similarity index 86%
rename from python/knot_resolver_manager/manager/datamodel/management_schema.py
rename to python/knot_resolver_manager/datamodel/management_schema.py
index 4df4afa15bf32fce3d06f143ace63e75c3b0e326..44f8f3e83b395142021b60ec80e21bccfa020db6 100644
--- a/python/knot_resolver_manager/manager/datamodel/management_schema.py
+++ b/python/knot_resolver_manager/datamodel/management_schema.py
@@ -1,6 +1,6 @@
 from typing import Optional
 
-from knot_resolver_manager.manager.datamodel.types import WritableFilePath, IPAddressPort
+from knot_resolver_manager.datamodel.types import WritableFilePath, IPAddressPort
 from knot_resolver_manager.utils.modeling import ConfigSchema
 
 
diff --git a/python/knot_resolver_manager/manager/datamodel/monitoring_schema.py b/python/knot_resolver_manager/datamodel/monitoring_schema.py
similarity index 85%
rename from python/knot_resolver_manager/manager/datamodel/monitoring_schema.py
rename to python/knot_resolver_manager/datamodel/monitoring_schema.py
index 6e33b2f571f32fdfa320896219cfa50c2d0a4161..dfc4a1167f75ddab6aee963ff8c258922cfa7ce1 100644
--- a/python/knot_resolver_manager/manager/datamodel/monitoring_schema.py
+++ b/python/knot_resolver_manager/datamodel/monitoring_schema.py
@@ -2,7 +2,7 @@ from typing import Union
 
 from typing_extensions import Literal
 
-from knot_resolver_manager.manager.datamodel.types import DomainName, EscapedStr, IPAddress, PortNumber, TimeUnit
+from knot_resolver_manager.datamodel.types import DomainName, EscapedStr, IPAddress, PortNumber, TimeUnit
 from knot_resolver_manager.utils.modeling import ConfigSchema
 
 
diff --git a/python/knot_resolver_manager/manager/datamodel/network_schema.py b/python/knot_resolver_manager/datamodel/network_schema.py
similarity index 99%
rename from python/knot_resolver_manager/manager/datamodel/network_schema.py
rename to python/knot_resolver_manager/datamodel/network_schema.py
index ae006f411de6a3e4a09641d50bdb2fab4cedded9..b9a35090f1d49aa4e228ac093a0599e108325173 100644
--- a/python/knot_resolver_manager/manager/datamodel/network_schema.py
+++ b/python/knot_resolver_manager/datamodel/network_schema.py
@@ -2,7 +2,7 @@ from typing import List, Optional, Union
 
 from typing_extensions import Literal
 
-from knot_resolver_manager.manager.datamodel.types import (
+from knot_resolver_manager.datamodel.types import (
     EscapedStr32B,
     WritableFilePath,
     Int0_512,
diff --git a/python/knot_resolver_manager/manager/datamodel/options_schema.py b/python/knot_resolver_manager/datamodel/options_schema.py
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/options_schema.py
rename to python/knot_resolver_manager/datamodel/options_schema.py
diff --git a/python/knot_resolver_manager/manager/datamodel/policy_schema.py b/python/knot_resolver_manager/datamodel/policy_schema.py
similarity index 94%
rename from python/knot_resolver_manager/manager/datamodel/policy_schema.py
rename to python/knot_resolver_manager/datamodel/policy_schema.py
index fb215188f125db1cb02d4ec974b6c04384e31610..bbc61cd1b8e33610ff46d89ea10dbabd59107138 100644
--- a/python/knot_resolver_manager/manager/datamodel/policy_schema.py
+++ b/python/knot_resolver_manager/datamodel/policy_schema.py
@@ -1,8 +1,8 @@
 from typing import List, Optional, Union
 
-from knot_resolver_manager.manager.datamodel.forward_schema import ForwardServerSchema
-from knot_resolver_manager.manager.datamodel.network_schema import AddressRenumberingSchema
-from knot_resolver_manager.manager.datamodel.types import (
+from knot_resolver_manager.datamodel.forward_schema import ForwardServerSchema
+from knot_resolver_manager.datamodel.network_schema import AddressRenumberingSchema
+from knot_resolver_manager.datamodel.types import (
     DNSRecordTypeEnum,
     IPAddressOptionalPort,
     PolicyActionEnum,
diff --git a/python/knot_resolver_manager/manager/datamodel/rpz_schema.py b/python/knot_resolver_manager/datamodel/rpz_schema.py
similarity index 89%
rename from python/knot_resolver_manager/manager/datamodel/rpz_schema.py
rename to python/knot_resolver_manager/datamodel/rpz_schema.py
index e5dfe60efb41e32c1c55bcd2a7eac5e23c18b3bb..bf98bd0ca1d96f788af08888cae31368a983f42b 100644
--- a/python/knot_resolver_manager/manager/datamodel/rpz_schema.py
+++ b/python/knot_resolver_manager/datamodel/rpz_schema.py
@@ -1,6 +1,6 @@
 from typing import List, Optional
 
-from knot_resolver_manager.manager.datamodel.types import PolicyActionEnum, PolicyFlagEnum, ReadableFile
+from knot_resolver_manager.datamodel.types import PolicyActionEnum, PolicyFlagEnum, ReadableFile
 from knot_resolver_manager.utils.modeling import ConfigSchema
 
 
diff --git a/python/knot_resolver_manager/manager/datamodel/slice_schema.py b/python/knot_resolver_manager/datamodel/slice_schema.py
similarity index 87%
rename from python/knot_resolver_manager/manager/datamodel/slice_schema.py
rename to python/knot_resolver_manager/datamodel/slice_schema.py
index 3dacde989f62826021b10138e5ed737a8e8ab990..0c7cdea19277672f180990288a68b656939735d9 100644
--- a/python/knot_resolver_manager/manager/datamodel/slice_schema.py
+++ b/python/knot_resolver_manager/datamodel/slice_schema.py
@@ -2,7 +2,7 @@ from typing import List, Optional
 
 from typing_extensions import Literal
 
-from knot_resolver_manager.manager.datamodel.policy_schema import ActionSchema
+from knot_resolver_manager.datamodel.policy_schema import ActionSchema
 from knot_resolver_manager.utils.modeling import ConfigSchema
 
 
diff --git a/python/knot_resolver_manager/manager/datamodel/static_hints_schema.py b/python/knot_resolver_manager/datamodel/static_hints_schema.py
similarity index 91%
rename from python/knot_resolver_manager/manager/datamodel/static_hints_schema.py
rename to python/knot_resolver_manager/datamodel/static_hints_schema.py
index 7a14aab3d00bb980027f5a2397a369f5fb7f59b4..89db49bbbc9b2066ea321a2ad4842c60dc085e26 100644
--- a/python/knot_resolver_manager/manager/datamodel/static_hints_schema.py
+++ b/python/knot_resolver_manager/datamodel/static_hints_schema.py
@@ -1,6 +1,6 @@
 from typing import Dict, List, Optional
 
-from knot_resolver_manager.manager.datamodel.types import DomainName, IPAddress, ReadableFile, TimeUnit
+from knot_resolver_manager.datamodel.types import DomainName, IPAddress, ReadableFile, TimeUnit
 from knot_resolver_manager.utils.modeling import ConfigSchema
 
 
diff --git a/python/knot_resolver_manager/manager/datamodel/stub_zone_schema.py b/python/knot_resolver_manager/datamodel/stub_zone_schema.py
similarity index 87%
rename from python/knot_resolver_manager/manager/datamodel/stub_zone_schema.py
rename to python/knot_resolver_manager/datamodel/stub_zone_schema.py
index 9e48efe8a12e3e264e673a56d97e0b7f14c03c63..b9945ecc573de757d85e3b0685efff6ca4205287 100644
--- a/python/knot_resolver_manager/manager/datamodel/stub_zone_schema.py
+++ b/python/knot_resolver_manager/datamodel/stub_zone_schema.py
@@ -1,6 +1,6 @@
 from typing import List, Optional, Union
 
-from knot_resolver_manager.manager.datamodel.types import DomainName, IPAddressOptionalPort, PolicyFlagEnum
+from knot_resolver_manager.datamodel.types import DomainName, IPAddressOptionalPort, PolicyFlagEnum
 from knot_resolver_manager.utils.modeling import ConfigSchema
 
 
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/__init__.py b/python/knot_resolver_manager/datamodel/templates/__init__.py
similarity index 87%
rename from python/knot_resolver_manager/manager/datamodel/templates/__init__.py
rename to python/knot_resolver_manager/datamodel/templates/__init__.py
index dc7b91e0207c222428a5f5352387a7df44112603..832503b7dfeae0f08b518e6d96840cb47eb35834 100644
--- a/python/knot_resolver_manager/manager/datamodel/templates/__init__.py
+++ b/python/knot_resolver_manager/datamodel/templates/__init__.py
@@ -5,13 +5,13 @@ from jinja2 import Environment, FileSystemLoader, Template
 
 
 def _get_templates_dir() -> str:
-    module = sys.modules["knot_resolver_manager.manager.datamodel"].__file__
+    module = sys.modules["knot_resolver_manager.datamodel"].__file__
     if module:
         templates_dir = os.path.join(os.path.dirname(module), "templates")
         if os.path.isdir(templates_dir):
             return templates_dir
         raise NotADirectoryError(f"the templates dir '{templates_dir}' is not a directory or does not exist")
-    raise OSError("package 'knot_resolver_manager.manager.datamodel' cannot be located or loaded")
+    raise OSError("package 'knot_resolver_manager.datamodel' cannot be located or loaded")
 
 
 _TEMPLATES_DIR = _get_templates_dir()
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/cache.lua.j2 b/python/knot_resolver_manager/datamodel/templates/cache.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/cache.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/cache.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/dns64.lua.j2 b/python/knot_resolver_manager/datamodel/templates/dns64.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/dns64.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/dns64.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/dnssec.lua.j2 b/python/knot_resolver_manager/datamodel/templates/dnssec.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/dnssec.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/dnssec.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/forward.lua.j2 b/python/knot_resolver_manager/datamodel/templates/forward.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/forward.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/forward.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/local_data.lua.j2 b/python/knot_resolver_manager/datamodel/templates/local_data.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/local_data.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/local_data.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/logging.lua.j2 b/python/knot_resolver_manager/datamodel/templates/logging.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/logging.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/logging.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/macros/cache_macros.lua.j2 b/python/knot_resolver_manager/datamodel/templates/macros/cache_macros.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/macros/cache_macros.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/macros/cache_macros.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/macros/common_macros.lua.j2 b/python/knot_resolver_manager/datamodel/templates/macros/common_macros.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/macros/common_macros.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/macros/common_macros.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/macros/forward_macros.lua.j2 b/python/knot_resolver_manager/datamodel/templates/macros/forward_macros.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/macros/forward_macros.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/macros/forward_macros.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/macros/local_data_macros.lua.j2 b/python/knot_resolver_manager/datamodel/templates/macros/local_data_macros.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/macros/local_data_macros.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/macros/local_data_macros.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/macros/network_macros.lua.j2 b/python/knot_resolver_manager/datamodel/templates/macros/network_macros.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/macros/network_macros.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/macros/network_macros.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/macros/policy_macros.lua.j2 b/python/knot_resolver_manager/datamodel/templates/macros/policy_macros.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/macros/policy_macros.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/macros/policy_macros.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/macros/view_macros.lua.j2 b/python/knot_resolver_manager/datamodel/templates/macros/view_macros.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/macros/view_macros.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/macros/view_macros.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/monitoring.lua.j2 b/python/knot_resolver_manager/datamodel/templates/monitoring.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/monitoring.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/monitoring.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/network.lua.j2 b/python/knot_resolver_manager/datamodel/templates/network.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/network.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/network.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/options.lua.j2 b/python/knot_resolver_manager/datamodel/templates/options.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/options.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/options.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/policy-config.lua.j2 b/python/knot_resolver_manager/datamodel/templates/policy-config.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/policy-config.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/policy-config.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/static_hints.lua.j2 b/python/knot_resolver_manager/datamodel/templates/static_hints.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/static_hints.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/static_hints.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/views.lua.j2 b/python/knot_resolver_manager/datamodel/templates/views.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/views.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/views.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/webmgmt.lua.j2 b/python/knot_resolver_manager/datamodel/templates/webmgmt.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/webmgmt.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/webmgmt.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/templates/worker-config.lua.j2 b/python/knot_resolver_manager/datamodel/templates/worker-config.lua.j2
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/templates/worker-config.lua.j2
rename to python/knot_resolver_manager/datamodel/templates/worker-config.lua.j2
diff --git a/python/knot_resolver_manager/manager/datamodel/types/__init__.py b/python/knot_resolver_manager/datamodel/types/__init__.py
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/types/__init__.py
rename to python/knot_resolver_manager/datamodel/types/__init__.py
diff --git a/python/knot_resolver_manager/manager/datamodel/types/base_types.py b/python/knot_resolver_manager/datamodel/types/base_types.py
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/types/base_types.py
rename to python/knot_resolver_manager/datamodel/types/base_types.py
diff --git a/python/knot_resolver_manager/manager/datamodel/types/enums.py b/python/knot_resolver_manager/datamodel/types/enums.py
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/types/enums.py
rename to python/knot_resolver_manager/datamodel/types/enums.py
diff --git a/python/knot_resolver_manager/manager/datamodel/types/files.py b/python/knot_resolver_manager/datamodel/types/files.py
similarity index 98%
rename from python/knot_resolver_manager/manager/datamodel/types/files.py
rename to python/knot_resolver_manager/datamodel/types/files.py
index 94ce04deebc49cfbc5d5265761098ac0b8a65229..db496d201cabdd933e3c16303a4fbec1b1fc19a4 100644
--- a/python/knot_resolver_manager/manager/datamodel/types/files.py
+++ b/python/knot_resolver_manager/datamodel/types/files.py
@@ -7,7 +7,7 @@ from pwd import getpwnam
 from typing import Any, Dict, Tuple, Type, TypeVar
 
 from knot_resolver_manager.manager.constants import kresd_group, kresd_user
-from knot_resolver_manager.manager.datamodel.globals import get_resolve_root, get_strict_validation
+from knot_resolver_manager.datamodel.globals import get_resolve_root, get_strict_validation
 from knot_resolver_manager.utils.modeling.base_value_type import BaseValueType
 
 
diff --git a/python/knot_resolver_manager/manager/datamodel/types/generic_types.py b/python/knot_resolver_manager/datamodel/types/generic_types.py
similarity index 100%
rename from python/knot_resolver_manager/manager/datamodel/types/generic_types.py
rename to python/knot_resolver_manager/datamodel/types/generic_types.py
diff --git a/python/knot_resolver_manager/manager/datamodel/types/types.py b/python/knot_resolver_manager/datamodel/types/types.py
similarity index 99%
rename from python/knot_resolver_manager/manager/datamodel/types/types.py
rename to python/knot_resolver_manager/datamodel/types/types.py
index 1d0199b756da05259f700606bbd65965a55f4538..d9a0b9105c07fdb4a7f39f01a9b33ed6c49af787 100644
--- a/python/knot_resolver_manager/manager/datamodel/types/types.py
+++ b/python/knot_resolver_manager/datamodel/types/types.py
@@ -2,7 +2,7 @@ import ipaddress
 import re
 from typing import Any, Dict, Optional, Type, Union
 
-from knot_resolver_manager.manager.datamodel.types.base_types import (
+from knot_resolver_manager.datamodel.types.base_types import (
     IntRangeBase,
     PatternBase,
     StrBase,
diff --git a/python/knot_resolver_manager/manager/datamodel/view_schema.py b/python/knot_resolver_manager/datamodel/view_schema.py
similarity index 95%
rename from python/knot_resolver_manager/manager/datamodel/view_schema.py
rename to python/knot_resolver_manager/datamodel/view_schema.py
index 166306dfd8a2cf08fbd9db3cbcdb48b809fe99f1..ad44eb3b3db73c6fb877ee50c0670c6ddc935b69 100644
--- a/python/knot_resolver_manager/manager/datamodel/view_schema.py
+++ b/python/knot_resolver_manager/datamodel/view_schema.py
@@ -2,7 +2,7 @@ from typing import List, Optional
 
 from typing_extensions import Literal
 
-from knot_resolver_manager.manager.datamodel.types import IDPattern, IPNetwork
+from knot_resolver_manager.datamodel.types import IDPattern, IPNetwork
 from knot_resolver_manager.utils.modeling import ConfigSchema
 
 
diff --git a/python/knot_resolver_manager/manager/datamodel/webmgmt_schema.py b/python/knot_resolver_manager/datamodel/webmgmt_schema.py
similarity index 88%
rename from python/knot_resolver_manager/manager/datamodel/webmgmt_schema.py
rename to python/knot_resolver_manager/datamodel/webmgmt_schema.py
index 54a561f3546448a8cb0542e770074b98fe66d7f9..2e75c3b74237b4318e314bb80bc45567fd416480 100644
--- a/python/knot_resolver_manager/manager/datamodel/webmgmt_schema.py
+++ b/python/knot_resolver_manager/datamodel/webmgmt_schema.py
@@ -1,6 +1,6 @@
 from typing import Optional
 
-from knot_resolver_manager.manager.datamodel.types import WritableFilePath, InterfacePort, ReadableFile
+from knot_resolver_manager.datamodel.types import WritableFilePath, InterfacePort, ReadableFile
 from knot_resolver_manager.utils.modeling import ConfigSchema
 
 
diff --git a/python/knot_resolver_manager/manager/__init__.py b/python/knot_resolver_manager/manager/__init__.py
index 3dc1f76bc69e3f559bee6253b24fc93acee9e1f9..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
--- a/python/knot_resolver_manager/manager/__init__.py
+++ b/python/knot_resolver_manager/manager/__init__.py
@@ -1 +0,0 @@
-__version__ = "0.1.0"
diff --git a/python/knot_resolver_manager/manager/config_store.py b/python/knot_resolver_manager/manager/config_store.py
index 93786e96218ba608700084c8c2fc5b4cc911886f..0491bf461176f22dc04335f03fb330bff372b912 100644
--- a/python/knot_resolver_manager/manager/config_store.py
+++ b/python/knot_resolver_manager/manager/config_store.py
@@ -2,7 +2,7 @@ import asyncio
 from asyncio import Lock
 from typing import Any, Awaitable, Callable, List, Tuple
 
-from knot_resolver_manager.manager.datamodel import KresConfig
+from knot_resolver_manager.datamodel import KresConfig
 from knot_resolver_manager.manager.exceptions import KresManagerException
 from knot_resolver_manager.utils.functional import Result
 from knot_resolver_manager.utils.modeling.exceptions import DataParsingError
diff --git a/python/knot_resolver_manager/manager/constants.py b/python/knot_resolver_manager/manager/constants.py
index e83a777baaa8fd0d2714792d4050af08e588d303..4d63a73689f34a98eee270017ed82d5818b7ece3 100644
--- a/python/knot_resolver_manager/manager/constants.py
+++ b/python/knot_resolver_manager/manager/constants.py
@@ -12,7 +12,7 @@ else:
 
 if TYPE_CHECKING:
     from knot_resolver_manager.manager.config_store import ConfigStore
-    from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
+    from knot_resolver_manager.datamodel.config_schema import KresConfig
     from knot_resolver_manager.controller.interface import KresID
 
 STARTUP_LOG_LEVEL = logging.DEBUG
diff --git a/python/knot_resolver_manager/manager/kres_manager.py b/python/knot_resolver_manager/manager/kres_manager.py
index 78459bd2b0f0d9580e304012f6faf3f596bcb727..e3d91513540d4b7f6316111a647e07b45a14c5f1 100644
--- a/python/knot_resolver_manager/manager/kres_manager.py
+++ b/python/knot_resolver_manager/manager/kres_manager.py
@@ -31,7 +31,7 @@ from knot_resolver_manager.controller.registered_workers import (
 from knot_resolver_manager.utils.functional import Result
 from knot_resolver_manager.utils.modeling.types import NoneType
 
-from .datamodel import KresConfig
+from knot_resolver_manager import KresConfig
 
 logger = logging.getLogger(__name__)
 
diff --git a/python/knot_resolver_manager/manager/log.py b/python/knot_resolver_manager/manager/log.py
index 95043f89c260e1be814ababc30dd3ab27b4cb5b1..cd432e15d60f3b8329c294c8adebbe4b1f4445e0 100644
--- a/python/knot_resolver_manager/manager/log.py
+++ b/python/knot_resolver_manager/manager/log.py
@@ -6,8 +6,8 @@ from typing import Optional
 
 from knot_resolver_manager.manager.config_store import ConfigStore, only_on_real_changes_update
 from knot_resolver_manager.manager.constants import STARTUP_LOG_LEVEL
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
-from knot_resolver_manager.manager.datamodel.logging_schema import LogTargetEnum
+from knot_resolver_manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.logging_schema import LogTargetEnum
 
 logger = logging.getLogger(__name__)
 
diff --git a/python/knot_resolver_manager/manager/server.py b/python/knot_resolver_manager/manager/server.py
index 9570f53621b66937c82d1d830827900d1e9cacb8..92569eeb58a83740459ba2bbc4b413efbcec2e00 100644
--- a/python/knot_resolver_manager/manager/server.py
+++ b/python/knot_resolver_manager/manager/server.py
@@ -23,10 +23,10 @@ from knot_resolver_manager.manager import log, statistics
 from knot_resolver_manager.compat import asyncio as asyncio_compat
 from knot_resolver_manager.manager.config_store import ConfigStore
 from knot_resolver_manager.manager.constants import DEFAULT_MANAGER_CONFIG_FILE, PID_FILE_NAME, init_user_constants
-from knot_resolver_manager.manager.datamodel.cache_schema import CacheClearRPCSchema
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig, get_rundir_without_validation
-from knot_resolver_manager.manager.datamodel.globals import Context, set_global_validation_context
-from knot_resolver_manager.manager.datamodel.management_schema import ManagementSchema
+from knot_resolver_manager.datamodel.cache_schema import CacheClearRPCSchema
+from knot_resolver_manager.datamodel.config_schema import KresConfig, get_rundir_without_validation
+from knot_resolver_manager.datamodel.globals import Context, set_global_validation_context
+from knot_resolver_manager.datamodel.management_schema import ManagementSchema
 from knot_resolver_manager.manager.exceptions import CancelStartupExecInsteadException, KresManagerException
 from knot_resolver_manager.controller import get_best_controller_implementation
 from knot_resolver_manager.controller.registered_workers import command_single_registered_worker
diff --git a/python/knot_resolver_manager/manager/statistics.py b/python/knot_resolver_manager/manager/statistics.py
index 5aa09b300516ba8566c7574fe8232230d3909c51..f3e9e4256880306fd274c66f07ce2acd9472da7d 100644
--- a/python/knot_resolver_manager/manager/statistics.py
+++ b/python/knot_resolver_manager/manager/statistics.py
@@ -6,7 +6,7 @@ from typing import TYPE_CHECKING, Any, Dict, Generator, List, Optional, Tuple
 
 from knot_resolver_manager import compat
 from knot_resolver_manager.manager.config_store import ConfigStore, only_on_real_changes_update
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.config_schema import KresConfig
 from knot_resolver_manager.controller.registered_workers import (
     command_registered_workers,
     get_registered_workers_kresids,
diff --git a/setup.py b/setup.py
index bf1fb25e1820435622cd28451527ae795fee6959..c2c4dfe6c8997496264137f73435de2a775716c5 100644
--- a/setup.py
+++ b/setup.py
@@ -12,15 +12,15 @@ packages = \
  'knot_resolver_manager.controller',
  'knot_resolver_manager.controller.supervisord',
  'knot_resolver_manager.controller.supervisord.plugin',
+ 'knot_resolver_manager.datamodel',
+ 'knot_resolver_manager.datamodel.templates',
+ 'knot_resolver_manager.datamodel.types',
  'knot_resolver_manager.manager',
- 'knot_resolver_manager.manager.datamodel',
- 'knot_resolver_manager.manager.datamodel.templates',
- 'knot_resolver_manager.manager.datamodel.types',
  'knot_resolver_manager.utils',
  'knot_resolver_manager.utils.modeling']
 
 package_data = \
-{'': ['*'], 'knot_resolver_manager.manager.datamodel.templates': ['macros/*']}
+{'': ['*'], 'knot_resolver_manager.datamodel.templates': ['macros/*']}
 
 install_requires = \
 ['aiohttp', 'jinja2', 'pyyaml', 'supervisor', 'typing-extensions']
diff --git a/tests/manager/__init__.py b/tests/manager/__init__.py
index 2b1eb0f6df8517308739393ea22f120b122772b6..d3c6280d44960dd95a09ff87d42ff22399d668e3 100644
--- a/tests/manager/__init__.py
+++ b/tests/manager/__init__.py
@@ -1,5 +1,5 @@
 from pathlib import Path
 
-from knot_resolver_manager.manager.datamodel.globals import Context, set_global_validation_context
+from knot_resolver_manager.datamodel.globals import Context, set_global_validation_context
 
 set_global_validation_context(Context(Path("."), False))
diff --git a/tests/manager/datamodel/templates/test_cache_macros.py b/tests/manager/datamodel/templates/test_cache_macros.py
index 48a3882d2658a90ea0f32a58294da000c8a341a8..155905c665c39afd4acf3e5b8444a348ac236c65 100644
--- a/tests/manager/datamodel/templates/test_cache_macros.py
+++ b/tests/manager/datamodel/templates/test_cache_macros.py
@@ -2,8 +2,8 @@ from typing import Any
 
 import pytest
 
-from knot_resolver_manager.manager.datamodel.cache_schema import CacheClearRPCSchema
-from knot_resolver_manager.manager.datamodel.templates import template_from_str
+from knot_resolver_manager.datamodel.cache_schema import CacheClearRPCSchema
+from knot_resolver_manager.datamodel.templates import template_from_str
 
 
 @pytest.mark.parametrize(
diff --git a/tests/manager/datamodel/templates/test_common_macros.py b/tests/manager/datamodel/templates/test_common_macros.py
index 370b6847bcba258f59b93af0c7e8ddec4865872e..e64b278fd9401ada52a6044e3cc0a17d5fbfdb35 100644
--- a/tests/manager/datamodel/templates/test_common_macros.py
+++ b/tests/manager/datamodel/templates/test_common_macros.py
@@ -1,5 +1,5 @@
-from knot_resolver_manager.manager.datamodel.forward_schema import ForwardServerSchema
-from knot_resolver_manager.manager.datamodel.templates import template_from_str
+from knot_resolver_manager.datamodel.forward_schema import ForwardServerSchema
+from knot_resolver_manager.datamodel.templates import template_from_str
 
 
 def test_boolean():
diff --git a/tests/manager/datamodel/templates/test_forward_macros.py b/tests/manager/datamodel/templates/test_forward_macros.py
index b4516d1d7ddabb8c5dcd98ffca0dc517d0afa54f..534c6007a9ca4f08c0fa0915dc2b11955ce29dc0 100644
--- a/tests/manager/datamodel/templates/test_forward_macros.py
+++ b/tests/manager/datamodel/templates/test_forward_macros.py
@@ -1,6 +1,6 @@
-from knot_resolver_manager.manager.datamodel.forward_schema import ForwardSchema
-from knot_resolver_manager.manager.datamodel.templates import template_from_str
-from knot_resolver_manager.manager.datamodel.types import IPAddressOptionalPort
+from knot_resolver_manager.datamodel.forward_schema import ForwardSchema
+from knot_resolver_manager.datamodel.templates import template_from_str
+from knot_resolver_manager.datamodel.types import IPAddressOptionalPort
 
 
 def test_policy_rule_forward_add():
diff --git a/tests/manager/datamodel/templates/test_network_macros.py b/tests/manager/datamodel/templates/test_network_macros.py
index df14eb2d72b951eec81c6943181ebc2df5c4be95..066463dffdf2afbe084d4338a4f5fcff75de109a 100644
--- a/tests/manager/datamodel/templates/test_network_macros.py
+++ b/tests/manager/datamodel/templates/test_network_macros.py
@@ -1,5 +1,5 @@
-from knot_resolver_manager.manager.datamodel.network_schema import ListenSchema
-from knot_resolver_manager.manager.datamodel.templates import template_from_str
+from knot_resolver_manager.datamodel.network_schema import ListenSchema
+from knot_resolver_manager.datamodel.templates import template_from_str
 
 
 def test_network_listen():
diff --git a/tests/manager/datamodel/templates/test_policy_macros.py b/tests/manager/datamodel/templates/test_policy_macros.py
index 28aa7b30f0abe16d679129d11c653fc524a71dbf..a9804cd33cfb67b74b60bcfa66dc3e6d6fc90e78 100644
--- a/tests/manager/datamodel/templates/test_policy_macros.py
+++ b/tests/manager/datamodel/templates/test_policy_macros.py
@@ -1,9 +1,9 @@
 from typing import List
 
-from knot_resolver_manager.manager.datamodel.network_schema import AddressRenumberingSchema
-from knot_resolver_manager.manager.datamodel.policy_schema import AnswerSchema
-from knot_resolver_manager.manager.datamodel.templates import template_from_str
-from knot_resolver_manager.manager.datamodel.types import PolicyFlagEnum
+from knot_resolver_manager.datamodel.network_schema import AddressRenumberingSchema
+from knot_resolver_manager.datamodel.policy_schema import AnswerSchema
+from knot_resolver_manager.datamodel.templates import template_from_str
+from knot_resolver_manager.datamodel.types import PolicyFlagEnum
 
 
 def test_policy_add():
diff --git a/tests/manager/datamodel/templates/test_types_render.py b/tests/manager/datamodel/templates/test_types_render.py
index e7fc925467534792a42d2972a20a5c98a90038f0..f83b41e34de404bcc5884f4197a1f8272cfc39df 100644
--- a/tests/manager/datamodel/templates/test_types_render.py
+++ b/tests/manager/datamodel/templates/test_types_render.py
@@ -3,7 +3,7 @@ from typing import Any
 import pytest
 from jinja2 import Template
 
-from knot_resolver_manager.manager.datamodel.types import EscapedStr
+from knot_resolver_manager.datamodel.types import EscapedStr
 from knot_resolver_manager.utils.modeling import ConfigSchema
 
 str_template = Template("'{{ string }}'")
diff --git a/tests/manager/datamodel/templates/test_view_macros.py b/tests/manager/datamodel/templates/test_view_macros.py
index c7547eba3b46d4e7d499749ea315e9983869b04e..5f4956f852ab4cad0a07937cb9463be9733c1c44 100644
--- a/tests/manager/datamodel/templates/test_view_macros.py
+++ b/tests/manager/datamodel/templates/test_view_macros.py
@@ -2,8 +2,8 @@ from typing import Any
 
 import pytest
 
-from knot_resolver_manager.manager.datamodel.templates import template_from_str
-from knot_resolver_manager.manager.datamodel.view_schema import ViewOptionsSchema, ViewSchema
+from knot_resolver_manager.datamodel.templates import template_from_str
+from knot_resolver_manager.datamodel.view_schema import ViewOptionsSchema, ViewSchema
 
 
 def test_view_flags():
diff --git a/tests/manager/datamodel/test_config_schema.py b/tests/manager/datamodel/test_config_schema.py
index 8cc430c547fa894ac27aad464cd3b80bb4297a90..13a20f33fa482a42f3797f4b2f1f72477313d838 100644
--- a/tests/manager/datamodel/test_config_schema.py
+++ b/tests/manager/datamodel/test_config_schema.py
@@ -2,8 +2,8 @@ import inspect
 import json
 from typing import Any, Dict, Type, cast
 
-from knot_resolver_manager.manager.datamodel import KresConfig
-from knot_resolver_manager.manager.datamodel.lua_schema import LuaSchema
+from knot_resolver_manager.datamodel import KresConfig
+from knot_resolver_manager.datamodel.lua_schema import LuaSchema
 from knot_resolver_manager.utils.modeling import BaseSchema
 from knot_resolver_manager.utils.modeling.types import (
     get_generic_type_argument,
diff --git a/tests/manager/datamodel/test_forward_schema.py b/tests/manager/datamodel/test_forward_schema.py
index b1f62720ea2450dce744c36106de9ee3be86e9aa..9ae77fe865809e9ded9d6ea5d2af0b2ac12bd22b 100644
--- a/tests/manager/datamodel/test_forward_schema.py
+++ b/tests/manager/datamodel/test_forward_schema.py
@@ -1,7 +1,7 @@
 import pytest
 from pytest import raises
 
-from knot_resolver_manager.manager.datamodel.forward_schema import ForwardSchema
+from knot_resolver_manager.datamodel.forward_schema import ForwardSchema
 from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
 
 
diff --git a/tests/manager/datamodel/test_local_data.py b/tests/manager/datamodel/test_local_data.py
index ed02c813571b19c4b0bdd5b752c21fa4554f8e6a..9842b0b2d603182d072fa7619c8cd014c6215019 100644
--- a/tests/manager/datamodel/test_local_data.py
+++ b/tests/manager/datamodel/test_local_data.py
@@ -3,7 +3,7 @@ from typing import Any
 import pytest
 from pytest import raises
 
-from knot_resolver_manager.manager.datamodel.local_data_schema import RuleSchema
+from knot_resolver_manager.datamodel.local_data_schema import RuleSchema
 from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
 
 
diff --git a/tests/manager/datamodel/test_lua_schema.py b/tests/manager/datamodel/test_lua_schema.py
index 4e174aff6832e3a06b648330d83edd824be842e9..30d69bd9953cce456b51f09b09820922d0bf1633 100644
--- a/tests/manager/datamodel/test_lua_schema.py
+++ b/tests/manager/datamodel/test_lua_schema.py
@@ -1,6 +1,6 @@
 from pytest import raises
 
-from knot_resolver_manager.manager.datamodel.lua_schema import LuaSchema
+from knot_resolver_manager.datamodel.lua_schema import LuaSchema
 from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
 
 
diff --git a/tests/manager/datamodel/test_management_schema.py b/tests/manager/datamodel/test_management_schema.py
index beef7b5f1ad949256253d09e4d952305ef799886..870e7208d92641515fa8276942e3ffe425e49f10 100644
--- a/tests/manager/datamodel/test_management_schema.py
+++ b/tests/manager/datamodel/test_management_schema.py
@@ -2,7 +2,7 @@ from typing import Any, Dict, Optional
 
 import pytest
 
-from knot_resolver_manager.manager.datamodel.management_schema import ManagementSchema
+from knot_resolver_manager.datamodel.management_schema import ManagementSchema
 from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
 
 
diff --git a/tests/manager/datamodel/test_network_schema.py b/tests/manager/datamodel/test_network_schema.py
index fb3093847d5f6e82badaf0a358ea7b4644ea789e..7b616f3471a8ebe8652b0e2920b26431d3386186 100644
--- a/tests/manager/datamodel/test_network_schema.py
+++ b/tests/manager/datamodel/test_network_schema.py
@@ -3,8 +3,8 @@ from typing import Any, Dict, Optional
 import pytest
 from pytest import raises
 
-from knot_resolver_manager.manager.datamodel.network_schema import ListenSchema, NetworkSchema
-from knot_resolver_manager.manager.datamodel.types import InterfaceOptionalPort, PortNumber
+from knot_resolver_manager.datamodel.network_schema import ListenSchema, NetworkSchema
+from knot_resolver_manager.datamodel.types import InterfaceOptionalPort, PortNumber
 from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
 
 
diff --git a/tests/manager/datamodel/test_policy_schema.py b/tests/manager/datamodel/test_policy_schema.py
index bbf1ab1b56a22703f9b0121483c69adac37276e5..aeb98a71e8cc1ed620b7712c8eac8b2b758bfb0f 100644
--- a/tests/manager/datamodel/test_policy_schema.py
+++ b/tests/manager/datamodel/test_policy_schema.py
@@ -3,8 +3,8 @@ from typing import Any, Dict
 import pytest
 from pytest import raises
 
-from knot_resolver_manager.manager.datamodel.policy_schema import ActionSchema, PolicySchema
-from knot_resolver_manager.manager.datamodel.types import PolicyActionEnum
+from knot_resolver_manager.datamodel.policy_schema import ActionSchema, PolicySchema
+from knot_resolver_manager.datamodel.types import PolicyActionEnum
 from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
 from knot_resolver_manager.utils.modeling.types import get_generic_type_arguments
 
diff --git a/tests/manager/datamodel/test_rpz_schema.py b/tests/manager/datamodel/test_rpz_schema.py
index 16e23ca50258d4e07b3af62b8c328f4f08cae744..6603deed22ad443ec88daffd6b6114f3e3d04afa 100644
--- a/tests/manager/datamodel/test_rpz_schema.py
+++ b/tests/manager/datamodel/test_rpz_schema.py
@@ -1,7 +1,7 @@
 import pytest
 from pytest import raises
 
-from knot_resolver_manager.manager.datamodel.rpz_schema import RPZSchema
+from knot_resolver_manager.datamodel.rpz_schema import RPZSchema
 from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
 
 
diff --git a/tests/manager/datamodel/types/test_base_types.py b/tests/manager/datamodel/types/test_base_types.py
index 3479659f10b5e3a17aa4c288fa3d6beb054759e2..bee030c60c13490f85ea81f7601dfa1e5c315ed8 100644
--- a/tests/manager/datamodel/types/test_base_types.py
+++ b/tests/manager/datamodel/types/test_base_types.py
@@ -5,7 +5,7 @@ from typing import List, Optional
 import pytest
 from pytest import raises
 
-from knot_resolver_manager.manager.datamodel.types.base_types import IntRangeBase, StringLengthBase
+from knot_resolver_manager.datamodel.types.base_types import IntRangeBase, StringLengthBase
 from knot_resolver_manager.manager.exceptions import KresManagerException
 
 
diff --git a/tests/manager/datamodel/types/test_custom_types.py b/tests/manager/datamodel/types/test_custom_types.py
index f11d6ea54a2c7bbda61d62f771982c5adec3e4d8..c82779c88b8e0b9302e41c7805a09d2b7c2525f0 100644
--- a/tests/manager/datamodel/types/test_custom_types.py
+++ b/tests/manager/datamodel/types/test_custom_types.py
@@ -6,7 +6,7 @@ from typing import Any
 import pytest
 from pytest import raises
 
-from knot_resolver_manager.manager.datamodel.types import (
+from knot_resolver_manager.datamodel.types import (
     Dir,
     DomainName,
     EscapedStr,
diff --git a/tests/manager/datamodel/types/test_generic_types.py b/tests/manager/datamodel/types/test_generic_types.py
index 39e1d6550645b6b410723d051553954224482163..40b401897db01c1b9a0f235a872803a2e038c30a 100644
--- a/tests/manager/datamodel/types/test_generic_types.py
+++ b/tests/manager/datamodel/types/test_generic_types.py
@@ -3,7 +3,7 @@ from typing import Any, List, Optional, Union
 import pytest
 from pytest import raises
 
-from knot_resolver_manager.manager.datamodel.types import ListOrItem
+from knot_resolver_manager.datamodel.types import ListOrItem
 from knot_resolver_manager.utils.modeling import BaseSchema
 from knot_resolver_manager.utils.modeling.exceptions import DataValidationError
 from knot_resolver_manager.utils.modeling.types import get_generic_type_wrapper_argument
diff --git a/tests/manager/test_config_store.py b/tests/manager/test_config_store.py
index 343ce1421cf2510aeb0a3ca17405a70dff8bc4a3..28a1a4c8326e08d9e20b8b48371aca307a263161 100644
--- a/tests/manager/test_config_store.py
+++ b/tests/manager/test_config_store.py
@@ -1,7 +1,7 @@
 import pytest
 
 from knot_resolver_manager.manager.config_store import ConfigStore, only_on_real_changes_update
-from knot_resolver_manager.manager.datamodel.config_schema import KresConfig
+from knot_resolver_manager.datamodel.config_schema import KresConfig
 
 
 @pytest.mark.asyncio  # type: ignore