diff --git a/bundles/org.openhab.core.authentication/.classpath b/bundles/org.openhab.core.authentication/.classpath
new file mode 100644
index 00000000000..5e8a55fefbd
--- /dev/null
+++ b/bundles/org.openhab.core.authentication/.classpath
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bundles/org.openhab.core.authentication/.project b/bundles/org.openhab.core.authentication/.project
new file mode 100644
index 00000000000..c07c1b09648
--- /dev/null
+++ b/bundles/org.openhab.core.authentication/.project
@@ -0,0 +1,23 @@
+
+
+ org.openhab.core.authentication
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/bundles/org.openhab.core.authentication/NOTICE b/bundles/org.openhab.core.authentication/NOTICE
new file mode 100644
index 00000000000..4c20ef446c1
--- /dev/null
+++ b/bundles/org.openhab.core.authentication/NOTICE
@@ -0,0 +1,13 @@
+This content is produced and maintained by the openHAB project.
+
+* Project home: https://www.openhab.org
+
+== Declared Project Licenses
+
+This program and the accompanying materials are made available under the terms
+of the Eclipse Public License 2.0 which is available at
+https://www.eclipse.org/legal/epl-2.0/.
+
+== Source Code
+
+https://github.com/openhab/openhab2-addons
diff --git a/bundles/org.openhab.core.authentication/pom.xml b/bundles/org.openhab.core.authentication/pom.xml
new file mode 100644
index 00000000000..293723b1e2b
--- /dev/null
+++ b/bundles/org.openhab.core.authentication/pom.xml
@@ -0,0 +1,23 @@
+
+
+
+ 4.0.0
+
+
+ org.openhab.core.bundles
+ org.openhab.core.reactor.bundles
+ 2.5.0-SNAPSHOT
+
+
+ org.openhab.core.authentication
+
+ openHAB Core :: Bundles :: Authentication
+
+
+
+ org.openhab.core.bundles
+ org.openhab.core
+ ${project.version}
+
+
+
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/Authentication.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/Authentication.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/Authentication.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/Authentication.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/AuthenticationException.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/AuthenticationException.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/AuthenticationException.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/AuthenticationException.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/AuthenticationManager.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/AuthenticationManager.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/AuthenticationManager.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/AuthenticationManager.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/AuthenticationProvider.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/AuthenticationProvider.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/AuthenticationProvider.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/AuthenticationProvider.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/Credentials.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/Credentials.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/Credentials.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/Credentials.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/Role.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/Role.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/Role.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/Role.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/SecurityException.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/SecurityException.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/SecurityException.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/SecurityException.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/UnsupportedCredentialsException.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/UnsupportedCredentialsException.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/UnsupportedCredentialsException.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/UnsupportedCredentialsException.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/UsernamePasswordCredentials.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/UsernamePasswordCredentials.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/UsernamePasswordCredentials.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/UsernamePasswordCredentials.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/AccessTokenRefreshListener.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/AccessTokenRefreshListener.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/AccessTokenRefreshListener.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/AccessTokenRefreshListener.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/AccessTokenResponse.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/AccessTokenResponse.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/AccessTokenResponse.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/AccessTokenResponse.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthClientService.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthClientService.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthClientService.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthClientService.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthException.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthException.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthException.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthException.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthFactory.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthFactory.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthFactory.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthFactory.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthResponseException.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthResponseException.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthResponseException.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/OAuthResponseException.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/StorageCipher.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/StorageCipher.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/StorageCipher.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/auth/client/oauth2/StorageCipher.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/internal/auth/AuthenticationManagerImpl.java b/bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/internal/auth/AuthenticationManagerImpl.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/internal/auth/AuthenticationManagerImpl.java
rename to bundles/org.openhab.core.authentication/src/main/java/org/eclipse/smarthome/core/internal/auth/AuthenticationManagerImpl.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/net/CidrAddress.java b/bundles/org.openhab.core.io.net/src/main/java/org/eclipse/smarthome/core/net/CidrAddress.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/net/CidrAddress.java
rename to bundles/org.openhab.core.io.net/src/main/java/org/eclipse/smarthome/core/net/CidrAddress.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/net/HttpServiceUtil.java b/bundles/org.openhab.core.io.net/src/main/java/org/eclipse/smarthome/core/net/HttpServiceUtil.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/net/HttpServiceUtil.java
rename to bundles/org.openhab.core.io.net/src/main/java/org/eclipse/smarthome/core/net/HttpServiceUtil.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/net/NetUtil.java b/bundles/org.openhab.core.io.net/src/main/java/org/eclipse/smarthome/core/net/NetUtil.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/net/NetUtil.java
rename to bundles/org.openhab.core.io.net/src/main/java/org/eclipse/smarthome/core/net/NetUtil.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/net/NetworkAddressChangeListener.java b/bundles/org.openhab.core.io.net/src/main/java/org/eclipse/smarthome/core/net/NetworkAddressChangeListener.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/net/NetworkAddressChangeListener.java
rename to bundles/org.openhab.core.io.net/src/main/java/org/eclipse/smarthome/core/net/NetworkAddressChangeListener.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/net/NetworkAddressService.java b/bundles/org.openhab.core.io.net/src/main/java/org/eclipse/smarthome/core/net/NetworkAddressService.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/net/NetworkAddressService.java
rename to bundles/org.openhab.core.io.net/src/main/java/org/eclipse/smarthome/core/net/NetworkAddressService.java
diff --git a/bundles/org.openhab.core.persistence.rest/.classpath b/bundles/org.openhab.core.persistence.rest/.classpath
new file mode 100644
index 00000000000..3c5e7d17553
--- /dev/null
+++ b/bundles/org.openhab.core.persistence.rest/.classpath
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bundles/org.openhab.core.persistence.rest/.project b/bundles/org.openhab.core.persistence.rest/.project
new file mode 100644
index 00000000000..c0b64ae9076
--- /dev/null
+++ b/bundles/org.openhab.core.persistence.rest/.project
@@ -0,0 +1,23 @@
+
+
+ org.openhab.core.persistence.rest
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/bundles/org.openhab.core.persistence.rest/NOTICE b/bundles/org.openhab.core.persistence.rest/NOTICE
new file mode 100644
index 00000000000..6c17d0d8a45
--- /dev/null
+++ b/bundles/org.openhab.core.persistence.rest/NOTICE
@@ -0,0 +1,14 @@
+This content is produced and maintained by the openHAB project.
+
+* Project home: https://www.openhab.org
+
+== Declared Project Licenses
+
+This program and the accompanying materials are made available under the terms
+of the Eclipse Public License 2.0 which is available at
+https://www.eclipse.org/legal/epl-2.0/.
+
+== Source Code
+
+https://github.com/openhab/openhab-core
+
diff --git a/bundles/org.openhab.core.persistence.rest/pom.xml b/bundles/org.openhab.core.persistence.rest/pom.xml
new file mode 100644
index 00000000000..8c012c42dc7
--- /dev/null
+++ b/bundles/org.openhab.core.persistence.rest/pom.xml
@@ -0,0 +1,34 @@
+
+
+
+ 4.0.0
+
+
+ org.openhab.core.bundles
+ org.openhab.core.reactor.bundles
+ 2.5.0-SNAPSHOT
+
+
+ org.openhab.core.persistence.rest
+
+ openHAB Core :: Bundles :: Persistence :: REST
+
+
+
+ org.openhab.core.bundles
+ org.openhab.core.persistence
+ ${project.version}
+
+
+ org.openhab.core.bundles
+ org.openhab.core.authentication
+ ${project.version}
+
+
+ org.openhab.core.bundles
+ org.openhab.core.io.rest
+ ${project.version}
+
+
+
+
diff --git a/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/internal/persistence/PersistenceResource.java b/bundles/org.openhab.core.persistence.rest/src/main/java/org/eclipse/smarthome/io/rest/core/internal/persistence/PersistenceResource.java
similarity index 100%
rename from bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/internal/persistence/PersistenceResource.java
rename to bundles/org.openhab.core.persistence.rest/src/main/java/org/eclipse/smarthome/io/rest/core/internal/persistence/PersistenceResource.java
diff --git a/bundles/org.openhab.core.persistence/pom.xml b/bundles/org.openhab.core.persistence/pom.xml
index 2c070e8d3e1..3f3f457ae7f 100644
--- a/bundles/org.openhab.core.persistence/pom.xml
+++ b/bundles/org.openhab.core.persistence/pom.xml
@@ -19,6 +19,11 @@
org.openhab.core.config.core
${project.version}
+
+ org.openhab.core.bundles
+ org.openhab.core.scheduler
+ ${project.version}
+
diff --git a/bundles/org.openhab.core.model.persistence/src/org/eclipse/smarthome/model/persistence/extensions/PersistenceExtensions.java b/bundles/org.openhab.core.persistence/src/main/java/org/eclipse/smarthome/core/persistence/PersistenceExtensions.java
similarity index 98%
rename from bundles/org.openhab.core.model.persistence/src/org/eclipse/smarthome/model/persistence/extensions/PersistenceExtensions.java
rename to bundles/org.openhab.core.persistence/src/main/java/org/eclipse/smarthome/core/persistence/PersistenceExtensions.java
index 5c75129e197..f7cadc60ee1 100644
--- a/bundles/org.openhab.core.model.persistence/src/org/eclipse/smarthome/model/persistence/extensions/PersistenceExtensions.java
+++ b/bundles/org.openhab.core.persistence/src/main/java/org/eclipse/smarthome/core/persistence/PersistenceExtensions.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.eclipse.smarthome.model.persistence.extensions;
+package org.eclipse.smarthome.core.persistence;
import java.math.BigDecimal;
import java.math.MathContext;
@@ -23,12 +23,7 @@
import org.eclipse.smarthome.core.i18n.TimeZoneProvider;
import org.eclipse.smarthome.core.items.Item;
import org.eclipse.smarthome.core.library.types.DecimalType;
-import org.eclipse.smarthome.core.persistence.FilterCriteria;
import org.eclipse.smarthome.core.persistence.FilterCriteria.Ordering;
-import org.eclipse.smarthome.core.persistence.HistoricItem;
-import org.eclipse.smarthome.core.persistence.PersistenceService;
-import org.eclipse.smarthome.core.persistence.PersistenceServiceRegistry;
-import org.eclipse.smarthome.core.persistence.QueryablePersistenceService;
import org.eclipse.smarthome.core.types.State;
import org.joda.time.DateTime;
import org.joda.time.base.AbstractInstant;
diff --git a/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/persistence/ItemHistoryListDTO.java b/bundles/org.openhab.core.persistence/src/main/java/org/eclipse/smarthome/core/persistence/dto/ItemHistoryListDTO.java
similarity index 87%
rename from bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/persistence/ItemHistoryListDTO.java
rename to bundles/org.openhab.core.persistence/src/main/java/org/eclipse/smarthome/core/persistence/dto/ItemHistoryListDTO.java
index 072d5b8e914..694379df9d3 100644
--- a/bundles/org.openhab.core.io.rest.core/src/main/java/org/eclipse/smarthome/io/rest/core/persistence/ItemHistoryListDTO.java
+++ b/bundles/org.openhab.core.persistence/src/main/java/org/eclipse/smarthome/core/persistence/dto/ItemHistoryListDTO.java
@@ -10,14 +10,12 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.eclipse.smarthome.io.rest.core.persistence;
+package org.eclipse.smarthome.core.persistence.dto;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import org.eclipse.smarthome.core.persistence.dto.ItemHistoryDTO;
-
/**
* This is a java bean that is used to serialize item lists.
*
diff --git a/bundles/org.openhab.core.scheduler/.classpath b/bundles/org.openhab.core.scheduler/.classpath
index 372f1810d64..3c5e7d17553 100644
--- a/bundles/org.openhab.core.scheduler/.classpath
+++ b/bundles/org.openhab.core.scheduler/.classpath
@@ -16,11 +16,6 @@
-
-
-
-
-
diff --git a/bundles/org.openhab.core.scheduler/pom.xml b/bundles/org.openhab.core.scheduler/pom.xml
index e9da0234db1..1be630d7fec 100644
--- a/bundles/org.openhab.core.scheduler/pom.xml
+++ b/bundles/org.openhab.core.scheduler/pom.xml
@@ -13,4 +13,11 @@
openHAB Core :: Bundles :: Scheduler Service
+
+
+ org.openhab.core.bundles
+ org.openhab.core
+ ${project.version}
+
+
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/internal/scheduler/CronAdjuster.java b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/CronAdjuster.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/internal/scheduler/CronAdjuster.java
rename to bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/CronAdjuster.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/internal/scheduler/CronSchedulerImpl.java b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/CronSchedulerImpl.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/internal/scheduler/CronSchedulerImpl.java
rename to bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/CronSchedulerImpl.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/internal/scheduler/DelegatedSchedulerImpl.java b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/DelegatedSchedulerImpl.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/internal/scheduler/DelegatedSchedulerImpl.java
rename to bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/DelegatedSchedulerImpl.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/internal/scheduler/PeriodicAdjuster.java b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/PeriodicAdjuster.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/internal/scheduler/PeriodicAdjuster.java
rename to bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/PeriodicAdjuster.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/internal/scheduler/PeriodicSchedulerImpl.java b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/PeriodicSchedulerImpl.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/internal/scheduler/PeriodicSchedulerImpl.java
rename to bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/PeriodicSchedulerImpl.java
diff --git a/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/internal/SchedulerActivator.java b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/SchedulerActivator.java
similarity index 97%
rename from bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/internal/SchedulerActivator.java
rename to bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/SchedulerActivator.java
index ec87f9d4942..48b0378b7c9 100644
--- a/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/internal/SchedulerActivator.java
+++ b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/SchedulerActivator.java
@@ -10,7 +10,7 @@
*
* SPDX-License-Identifier: EPL-2.0
*/
-package org.eclipse.smarthome.core.scheduler.internal;
+package org.eclipse.smarthome.core.internal.scheduler;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/internal/scheduler/SchedulerImpl.java b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/SchedulerImpl.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/internal/scheduler/SchedulerImpl.java
rename to bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/internal/scheduler/SchedulerImpl.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/scheduler/CronJob.java b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/CronJob.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/scheduler/CronJob.java
rename to bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/CronJob.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/scheduler/CronScheduler.java b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/CronScheduler.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/scheduler/CronScheduler.java
rename to bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/CronScheduler.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/scheduler/PeriodicScheduler.java b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/PeriodicScheduler.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/scheduler/PeriodicScheduler.java
rename to bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/PeriodicScheduler.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/scheduler/ScheduledCompletableFuture.java b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/ScheduledCompletableFuture.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/scheduler/ScheduledCompletableFuture.java
rename to bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/ScheduledCompletableFuture.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/scheduler/Scheduler.java b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/Scheduler.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/scheduler/Scheduler.java
rename to bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/Scheduler.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/scheduler/SchedulerRunnable.java b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/SchedulerRunnable.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/scheduler/SchedulerRunnable.java
rename to bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/SchedulerRunnable.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/scheduler/SchedulerTemporalAdjuster.java b/bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/SchedulerTemporalAdjuster.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/scheduler/SchedulerTemporalAdjuster.java
rename to bundles/org.openhab.core.scheduler/src/main/java/org/eclipse/smarthome/core/scheduler/SchedulerTemporalAdjuster.java
diff --git a/bundles/org.openhab.core.scheduler/src/main/resources/readme.txt b/bundles/org.openhab.core.scheduler/src/main/resources/readme.txt
deleted file mode 100644
index 98698c670dc..00000000000
--- a/bundles/org.openhab.core.scheduler/src/main/resources/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-Bundle resources go in here!
\ No newline at end of file
diff --git a/bundles/org.openhab.core.storage/.classpath b/bundles/org.openhab.core.storage/.classpath
new file mode 100644
index 00000000000..3c5e7d17553
--- /dev/null
+++ b/bundles/org.openhab.core.storage/.classpath
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bundles/org.openhab.core.storage/.project b/bundles/org.openhab.core.storage/.project
new file mode 100644
index 00000000000..59e20e782fe
--- /dev/null
+++ b/bundles/org.openhab.core.storage/.project
@@ -0,0 +1,23 @@
+
+
+ org.openhab.core.storage
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/bundles/org.openhab.core.storage/NOTICE b/bundles/org.openhab.core.storage/NOTICE
new file mode 100644
index 00000000000..6c17d0d8a45
--- /dev/null
+++ b/bundles/org.openhab.core.storage/NOTICE
@@ -0,0 +1,14 @@
+This content is produced and maintained by the openHAB project.
+
+* Project home: https://www.openhab.org
+
+== Declared Project Licenses
+
+This program and the accompanying materials are made available under the terms
+of the Eclipse Public License 2.0 which is available at
+https://www.eclipse.org/legal/epl-2.0/.
+
+== Source Code
+
+https://github.com/openhab/openhab-core
+
diff --git a/bundles/org.openhab.core.storage/pom.xml b/bundles/org.openhab.core.storage/pom.xml
new file mode 100644
index 00000000000..f71a6b2c048
--- /dev/null
+++ b/bundles/org.openhab.core.storage/pom.xml
@@ -0,0 +1,15 @@
+
+
+
+ 4.0.0
+
+
+ org.openhab.core.bundles
+ org.openhab.core.reactor.bundles
+ 2.5.0-SNAPSHOT
+
+
+ org.openhab.core.storage
+
+ openHAB Core :: Bundles :: Storage
+
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/storage/DeletableStorage.java b/bundles/org.openhab.core.storage/src/main/java/org/eclipse/smarthome/core/storage/DeletableStorage.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/storage/DeletableStorage.java
rename to bundles/org.openhab.core.storage/src/main/java/org/eclipse/smarthome/core/storage/DeletableStorage.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/storage/DeletableStorageService.java b/bundles/org.openhab.core.storage/src/main/java/org/eclipse/smarthome/core/storage/DeletableStorageService.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/storage/DeletableStorageService.java
rename to bundles/org.openhab.core.storage/src/main/java/org/eclipse/smarthome/core/storage/DeletableStorageService.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/storage/Storage.java b/bundles/org.openhab.core.storage/src/main/java/org/eclipse/smarthome/core/storage/Storage.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/storage/Storage.java
rename to bundles/org.openhab.core.storage/src/main/java/org/eclipse/smarthome/core/storage/Storage.java
diff --git a/bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/storage/StorageService.java b/bundles/org.openhab.core.storage/src/main/java/org/eclipse/smarthome/core/storage/StorageService.java
similarity index 100%
rename from bundles/org.openhab.core/src/main/java/org/eclipse/smarthome/core/storage/StorageService.java
rename to bundles/org.openhab.core.storage/src/main/java/org/eclipse/smarthome/core/storage/StorageService.java
diff --git a/bundles/org.openhab.core/README.md b/bundles/org.openhab.core/README.md
new file mode 100644
index 00000000000..979ce0fd149
--- /dev/null
+++ b/bundles/org.openhab.core/README.md
@@ -0,0 +1,6 @@
+# openHAB core bundle
+
+This bundle provides core services and defines
+openHAB "Items", "Item states", "Item Commands" and "Item types".
+
+Some utility methods for OSGI are also available.
diff --git a/bundles/pom.xml b/bundles/pom.xml
index 2dbcf14365d..2c4ba1bd8c9 100644
--- a/bundles/pom.xml
+++ b/bundles/pom.xml
@@ -35,10 +35,12 @@
org.openhab.core.config.xml
org.openhab.core
org.openhab.core.audio
+ org.openhab.core.authentication
org.openhab.core.binding.xml
org.openhab.core.extension.sample
org.openhab.core.id
org.openhab.core.persistence
+ org.openhab.core.persistence.rest
org.openhab.core.scheduler
org.openhab.core.semantics
org.openhab.core.thing
@@ -96,6 +98,7 @@
org.openhab.core.model.thing
org.openhab.core.model.thing.ide
org.openhab.core.model.thing.runtime
+ org.openhab.core.storage
org.openhab.core.storage.json
org.openhab.core.storage.mapdb
org.openhab.core.test