diff --git a/CHANGELOG.md b/CHANGELOG.md
index 71e19edb1f1069328a768ca05b9d487388f3c4e8..fccd7c8ff5d78126d80692728d7941be1d142e29 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Added
 
+### Changed
+
+### Deprecated
+
+### Removed
+
+### Fixed
+
+### Security
+
+## [0.2] - 2020-09-02
+
+### Added
+
 - Support for deeply nested selectors in SELECT queries.
 - One-time Authentication Tokens for login without credentials and login with
   particular permissions and roles for the course of the session.
@@ -31,6 +45,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Changed
 
+* All caosdb server java classes moved from `caosdb.[...]` to
+  `org.caosdb.[...]` because the new root package is compliant with the java
+  package naming conventions while the old was not. This has some implications
+  for configuring the server. See [README_SETUP.md](./README_SETUP.md), section
+  "Migration" for additional information.
 - The sever by default now only serves TLS 1.2 and 1.3, all previous versions
   have been disabled in the default settings.  Make sure that your clients
   (especially the Python client) are up to date.
@@ -41,8 +60,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Removed
 
-- 
-
 ### Fixed
 
 * #51 - name queries (e.g. `FIND ENTITY WITH name = ...`)
@@ -65,7 +82,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
   processes on the same machine.
 - #68 - Shadow sensitive information when logging for debugging purposes.
 
-
 ## [0.1.0] - 2018-10-09
 
 Tag `v0.1` - Commit 3b17b49
diff --git a/README_SETUP.md b/README_SETUP.md
index 554cd5dacbdffb637227e6be2b18ed1dad7877dc..2d682c34f4065f15082507fc7c80b839a486dcc9 100644
--- a/README_SETUP.md
+++ b/README_SETUP.md
@@ -1,6 +1,11 @@
 # Requirements
 
-## Software
+## CaosDB Packages
+
+* caosdb-webui=0.2.1
+* caosdb-mysqlbackend=3.0
+
+## Third-party Software
 * >=Java 8
 * >=Apache Maven 3.0.4
 * >=Python 3.4
@@ -67,11 +72,16 @@ server:
 2. Create an SSL certificate somewhere with a `Java Key Store` file.  For
    self-signed certificates (not recommended for production use) you can do:
    - `mkdir certificates; cd certificates`
-   - `keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -validity 375 -keysize 2048 -ext san=dns:localhost`
+   - `keytool -genkey -keyalg RSA -alias selfsigned -keystore caosdb.jks -validity 375 -keysize 2048 -ext san=dns:localhost`
      Replace `localhost` by your host name, if you want.
-   - `keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.p12 -deststoretype PKCS12 -srcalias selfsigned`
-   - `openssl pkcs12 -in keystore.p12 -nokeys -out cert.pem`
+   - `keytool -importkeystore -srckeystore caosdb.jks -destkeystore caosdb.p12 -deststoretype PKCS12 -srcalias selfsigned`
+   - `openssl pkcs12 -in caosdb.p12 -nokeys -out cert.pem`
    - You can check the content of the certificate with `openssl x509 -in cert.pem -text`
+
+   Alternatively, you can create a keystore from certificate files that you already have:
+   - `openssl pkcs12 -export -inkey privkey.pem -in fullchain.pem -out all-certs.pkcs12`
+   - `keytool -importkeystore -srckeystore all-certs.pkcs12 -srcstoretype PKCS12  -deststoretype pkcs12 -destkeystore caosdb.jks`
+
 3. Copy `conf/core/server.conf` to `conf/ext/server.conf` and change it
    appropriately:
     * Setup for MySQL back-end: Assuming that the mysql back-end is installed
@@ -114,7 +124,7 @@ Done!
 
 `$ make run`
 
-This can take a while. Once you see `Starting caosdb.server.CaosDBServer
+This can take a while. Once you see `Starting org.caosdb.server.CaosDBServer
 application` the server is ready and you can try it out by connecting with a
 client, e.g. the web client, if you installed it. Typically, you just need to
 type `https://localhost:10443` in your Browser, assuming you used 10443 as port.
@@ -144,3 +154,21 @@ certificate.
    Build Project`.
 
 Done!
+
+# Migration
+
+## From 0.1 to 0.2
+
+A major change in the code is the renaming of the java packages (from
+`caosdb.[...]` to `org.caosdb.[...]`).
+
+This makes its necessary to change some of your config files as well. Whenever
+you configured a class (e.g. the `EMAIL_HANDLER`, or the realms in your
+`usersources.ini`) you would need to reconfigure it there.
+
+The following `sed` command could be useful. However, use it with care and backup
+before you execute it.
+
+```sh
+sed -i.bak -e "s/\(\s*\)\([^.]\)caosdb\.server/\1\2org.caosdb.server/g" FILE_TO_BE_CHANGED
+```
diff --git a/caosdb-webui b/caosdb-webui
index 66026626089e2b514538510a1a6744868f46b661..82315e1199bd5adcf584f61bfde167bd05624172 160000
--- a/caosdb-webui
+++ b/caosdb-webui
@@ -1 +1 @@
-Subproject commit 66026626089e2b514538510a1a6744868f46b661
+Subproject commit 82315e1199bd5adcf584f61bfde167bd05624172
diff --git a/conf/core/authtoken.example.yaml b/conf/core/authtoken.example.yaml
index 453630a852642db19cfc824bf660b004e26af5b2..4d57c919ef122a7786850f4feddf2ac5d98e7e67 100644
--- a/conf/core/authtoken.example.yaml
+++ b/conf/core/authtoken.example.yaml
@@ -7,7 +7,7 @@
 # Authentication Tokens.
 #
 # This yaml file contains an array of configuration objects which may have the
-# properties that are defined by the caosdb.server.accessControl.Config class.
+# properties that are defined by the org.caosdb.server.accessControl.Config class.
 #
 # These properties are:
 #
diff --git a/conf/core/log4j2-debug.properties b/conf/core/log4j2-debug.properties
index 5d6b5fa1e7fe7770a77d0048e419c1c834fbc7c5..40ffe0fc02c16eb3c80a9216f58b317faecc41dc 100644
--- a/conf/core/log4j2-debug.properties
+++ b/conf/core/log4j2-debug.properties
@@ -2,7 +2,7 @@
 property.LOG_DIR = testlog
 
 # for unit testing
-logger.caosdb_server_logging.name = caosdb.server.logging
+logger.caosdb_server_logging.name = org.caosdb.server.logging
 logger.caosdb_server_logging.level = TRACE
 
 # ${LOG_DIR}/debug.log
diff --git a/conf/core/server.conf b/conf/core/server.conf
index 3507886b0475341b06a8d676845e9280c67b991b..73a7bc871c47409f48dd724988818ab210e0ab87 100644
--- a/conf/core/server.conf
+++ b/conf/core/server.conf
@@ -138,7 +138,7 @@ WEBUI_HTTP_HEADER_CACHE_MAX_AGE=28800
 # --------------------------------------------------
 # The handler that treats sent mails.
 # The default handler pipes mails to a file.
-MAIL_HANDLER_CLASS=caosdb.server.utils.mail.ToFileHandler
+MAIL_HANDLER_CLASS=org.caosdb.server.utils.mail.ToFileHandler
 # The file were the ToFileHanlder pipes messages to.
 MAIL_TO_FILE_HANDLER_LOC=./
 
diff --git a/conf/core/usersources.ini.template b/conf/core/usersources.ini.template
index 14ad63428550e2548c688b95b66024b800a4db31..270a4ad069305ef47b7ad46b36bd69673860fb97 100644
--- a/conf/core/usersources.ini.template
+++ b/conf/core/usersources.ini.template
@@ -24,7 +24,7 @@ realms = PAM
 defaultRealm = PAM
 
 [PAM]
-class = caosdb.server.accessControl.Pam
+class = org.caosdb.server.accessControl.Pam
 ; pam_script = ./misc/pam_authentication/pam_authentication.sh
 default_status = ACTIVE
 ;include.user = [uncomment and put your users here]
diff --git a/doc/devel/Benchmarking.md b/doc/devel/Benchmarking.md
index 7800d568b3cb80bb61281281fcb86d5d4a2d2a33..e07f6f8973784bfe3d77191f6730662d261f73fb 100644
--- a/doc/devel/Benchmarking.md
+++ b/doc/devel/Benchmarking.md
@@ -9,13 +9,13 @@ one can then connect to the CaosDB server and profile execution times.
 In the sampler settings, you may want to add these expressions to the blocked
 packages: `org.restlet.**, com.mysql.**`.  Branches on the call tree which are
 entirely inside the blacklist, will become leaves.  Alternatively, specify a
-whitelist, for example with `caosdb.server.database.backend.implementation.**`,
+whitelist, for example with `org.caosdb.server.database.backend.implementation.**`,
 if you only want to see the time spent for certain MySQL calls.
 
 # Manual Java-side benchmarking #
 
 Benchmarking can be done using the `TransactionBenchmark` class (in package
-`caosdb.server.database.misc`).
+`org.caosdb.server.database.misc`).
 
 - Single timings can be added to instances of that class via the
   `addBenchmark(object, time)` method.  Multiple benchmarks for the same object
diff --git a/makefile b/makefile
index e900742bededb1651c9e64963efe6db01014903e..5c0e6cdda534c34f9f34109a008feac1d79312dc 100644
--- a/makefile
+++ b/makefile
@@ -23,40 +23,47 @@
 # ** end header
 #
 
+CAOSDB_SERVER_VERSION ?= $(shell mvn org.apache.maven.plugins:maven-help-plugin:3.1.0:evaluate -Dexpression=project.version -q -DforceStdout)
 SHELL:=/bin/bash
 JPDA_PORT ?= 9000
 JMX_PORT ?= 9090
 
-compile: easy-units
+compile: print-version easy-units
 	mvn compile
 
-runserver:
+print-version:
+	@echo "This is CaosDB $(CAOSDB_SERVER_VERSION)"
+
+runserver: print-version
 	mvn exec:java@run
 
 run: compile
 	mvn exec:java@run
 
 run-debug: jar
-	java -Xrunjdwp:transport=dt_socket,address=0.0.0.0:$(JPDA_PORT),server=y,suspend=n -Dcaosdb.debug=true -jar target/caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar
+	java -Xrunjdwp:transport=dt_socket,address=0.0.0.0:$(JPDA_PORT),server=y,suspend=n -Dcaosdb.debug=true -jar target/caosdb-server.jar
 
 run-debug-single:
-	java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=$(JMX_PORT) -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Xrunjdwp:transport=dt_socket,address=0.0.0.0:$(JPDA_PORT),server=y,suspend=n -Dcaosdb.debug=true -jar target/caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar
+	java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=$(JMX_PORT) -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Xrunjdwp:transport=dt_socket,address=0.0.0.0:$(JPDA_PORT),server=y,suspend=n -Dcaosdb.debug=true -jar target/caosdb-server.jar
 
 run-single:
-	java -jar target/caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar
+	java -jar target/caosdb-server.jar
 
 formatting:
 	mvn fmt:format
 	autopep8 -ari scripting/
 
 # Compile into a standalone jar file
-jar: easy-units
+jar: print-version easy-units
 	mvn package -DskipTests
+	@pushd target ; \
+		ln -s caosdb-server-$(CAOSDB_SERVER_VERSION)-jar-with-dependencies.jar caosdb-server.jar; \
+		popd
 
 antlr:
 	mvn antlr4:antlr4
 
-test: easy-units
+test: print-version easy-units
 	MAVEN_DEBUG_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Dcaosdb.debug=true -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=0.0.0.0:9000"
 	mvn test -X
 
diff --git a/pom.xml b/pom.xml
index 4e71f97d2b8d89206e148adba67d259b24ade2a6..7b229e5178141e8cd90f85328f77cf4e5b3b0531 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,9 +23,9 @@
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
-  <groupId>bmp.ds.mpg.de</groupId>
+  <groupId>org.caosdb</groupId>
   <artifactId>caosdb-server</artifactId>
-  <version>0.1-SNAPSHOT</version>
+  <version>0.3-SNAPSHOT</version>
   <packaging>jar</packaging>
   <name>CaosDB Server</name>
   <properties>
@@ -205,7 +205,7 @@
               <transformers>
                 <transformer implementation="com.github.edwgiz.mavenShadePlugin.log4j2CacheTransformer.PluginsCacheFileTransformer"></transformer>
                 <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
-                  <mainClass>caosdb.server.CaosDBServer</mainClass>
+                  <mainClass>org.caosdb.server.CaosDBServer</mainClass>
                 </transformer>
               </transformers>
             </configuration>
@@ -272,7 +272,7 @@
               <goal>java</goal>
             </goals>
             <configuration>
-              <mainClass>caosdb.server.CaosDBServer</mainClass>
+              <mainClass>org.caosdb.server.CaosDBServer</mainClass>
               <arguments>
                 <argument>silent</argument>
               </arguments>
@@ -284,7 +284,7 @@
               <goal>java</goal>
             </goals>
             <configuration>
-              <mainClass>caosdb.server.CaosDBServer</mainClass>
+              <mainClass>org.caosdb.server.CaosDBServer</mainClass>
               <arguments>
                 <argument>silent</argument>
               </arguments>
diff --git a/src/main/java/caosdb/server/database/BackendTransaction.java b/src/main/java/caosdb/server/database/BackendTransaction.java
deleted file mode 100644
index c476fb5bb6cc67aee4650fbad79e22e97bf3aec9..0000000000000000000000000000000000000000
--- a/src/main/java/caosdb/server/database/BackendTransaction.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * ** header v3.0
- * This file is a part of the CaosDB Project.
- *
- * Copyright (C) 2018 Research Group Biomedical Physics,
- *   Max-Planck-Institute for Dynamics and Self-Organization Göttingen
- * Copyright (C) 2020 IndiScale GmbH
- * Copyright (C) 2020 Timm Fitschen (t.fitschen@indiscale.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- *
- * ** end header
- */
-package caosdb.server.database;
-
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.implementation.MySQL.MySQLDeleteEntityProperties;
-import caosdb.server.database.backend.implementation.MySQL.MySQLDeletePassword;
-import caosdb.server.database.backend.implementation.MySQL.MySQLDeleteRole;
-import caosdb.server.database.backend.implementation.MySQL.MySQLDeleteSparseEntity;
-import caosdb.server.database.backend.implementation.MySQL.MySQLDeleteUser;
-import caosdb.server.database.backend.implementation.MySQL.MySQLGetAllNames;
-import caosdb.server.database.backend.implementation.MySQL.MySQLGetChildren;
-import caosdb.server.database.backend.implementation.MySQL.MySQLGetDependentEntities;
-import caosdb.server.database.backend.implementation.MySQL.MySQLGetFileRecordByPath;
-import caosdb.server.database.backend.implementation.MySQL.MySQLGetIDByName;
-import caosdb.server.database.backend.implementation.MySQL.MySQLGetInfo;
-import caosdb.server.database.backend.implementation.MySQL.MySQLGetUpdateableChecksums;
-import caosdb.server.database.backend.implementation.MySQL.MySQLInsertEntityDatatype;
-import caosdb.server.database.backend.implementation.MySQL.MySQLInsertEntityProperties;
-import caosdb.server.database.backend.implementation.MySQL.MySQLInsertLinCon;
-import caosdb.server.database.backend.implementation.MySQL.MySQLInsertLogRecord;
-import caosdb.server.database.backend.implementation.MySQL.MySQLInsertParents;
-import caosdb.server.database.backend.implementation.MySQL.MySQLInsertRole;
-import caosdb.server.database.backend.implementation.MySQL.MySQLInsertSparseEntity;
-import caosdb.server.database.backend.implementation.MySQL.MySQLInsertTransactionHistory;
-import caosdb.server.database.backend.implementation.MySQL.MySQLIsSubType;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRegisterSubDomain;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveAll;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveAllUncheckedFiles;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveDatatypes;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveLogRecord;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveParents;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrievePasswordValidator;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrievePermissionRules;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveProperties;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveQueryTemplateDefinition;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveRole;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveSparseEntity;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveTransactionHistory;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveUser;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveVersionHistory;
-import caosdb.server.database.backend.implementation.MySQL.MySQLRuleLoader;
-import caosdb.server.database.backend.implementation.MySQL.MySQLSetFileCheckedTimestampImpl;
-import caosdb.server.database.backend.implementation.MySQL.MySQLSetPassword;
-import caosdb.server.database.backend.implementation.MySQL.MySQLSetPermissionRules;
-import caosdb.server.database.backend.implementation.MySQL.MySQLSetQueryTemplateDefinition;
-import caosdb.server.database.backend.implementation.MySQL.MySQLSyncStats;
-import caosdb.server.database.backend.implementation.MySQL.MySQLUpdateSparseEntity;
-import caosdb.server.database.backend.implementation.MySQL.MySQLUpdateUser;
-import caosdb.server.database.backend.implementation.MySQL.MySQLUpdateUserRoles;
-import caosdb.server.database.backend.implementation.UnixFileSystem.UnixFileSystemCheckHash;
-import caosdb.server.database.backend.implementation.UnixFileSystem.UnixFileSystemCheckSize;
-import caosdb.server.database.backend.implementation.UnixFileSystem.UnixFileSystemFileExists;
-import caosdb.server.database.backend.implementation.UnixFileSystem.UnixFileSystemFileWasModifiedAfter;
-import caosdb.server.database.backend.implementation.UnixFileSystem.UnixFileSystemGetFileIterator;
-import caosdb.server.database.backend.interfaces.BackendTransactionImpl;
-import caosdb.server.database.backend.interfaces.DeleteEntityPropertiesImpl;
-import caosdb.server.database.backend.interfaces.DeletePasswordImpl;
-import caosdb.server.database.backend.interfaces.DeleteRoleImpl;
-import caosdb.server.database.backend.interfaces.DeleteSparseEntityImpl;
-import caosdb.server.database.backend.interfaces.DeleteUserImpl;
-import caosdb.server.database.backend.interfaces.FileCheckHash;
-import caosdb.server.database.backend.interfaces.FileCheckSize;
-import caosdb.server.database.backend.interfaces.FileExists;
-import caosdb.server.database.backend.interfaces.FileWasModifiedAfter;
-import caosdb.server.database.backend.interfaces.GetAllNamesImpl;
-import caosdb.server.database.backend.interfaces.GetChildrenImpl;
-import caosdb.server.database.backend.interfaces.GetDependentEntitiesImpl;
-import caosdb.server.database.backend.interfaces.GetFileIteratorImpl;
-import caosdb.server.database.backend.interfaces.GetFileRecordByPathImpl;
-import caosdb.server.database.backend.interfaces.GetIDByNameImpl;
-import caosdb.server.database.backend.interfaces.GetInfoImpl;
-import caosdb.server.database.backend.interfaces.GetUpdateableChecksumsImpl;
-import caosdb.server.database.backend.interfaces.InsertEntityDatatypeImpl;
-import caosdb.server.database.backend.interfaces.InsertEntityPropertiesImpl;
-import caosdb.server.database.backend.interfaces.InsertLinConImpl;
-import caosdb.server.database.backend.interfaces.InsertLogRecordImpl;
-import caosdb.server.database.backend.interfaces.InsertParentsImpl;
-import caosdb.server.database.backend.interfaces.InsertRoleImpl;
-import caosdb.server.database.backend.interfaces.InsertSparseEntityImpl;
-import caosdb.server.database.backend.interfaces.InsertTransactionHistoryImpl;
-import caosdb.server.database.backend.interfaces.IsSubTypeImpl;
-import caosdb.server.database.backend.interfaces.RegisterSubDomainImpl;
-import caosdb.server.database.backend.interfaces.RetrieveAllImpl;
-import caosdb.server.database.backend.interfaces.RetrieveAllUncheckedFilesImpl;
-import caosdb.server.database.backend.interfaces.RetrieveDatatypesImpl;
-import caosdb.server.database.backend.interfaces.RetrieveLogRecordImpl;
-import caosdb.server.database.backend.interfaces.RetrieveParentsImpl;
-import caosdb.server.database.backend.interfaces.RetrievePasswordValidatorImpl;
-import caosdb.server.database.backend.interfaces.RetrievePermissionRulesImpl;
-import caosdb.server.database.backend.interfaces.RetrievePropertiesImpl;
-import caosdb.server.database.backend.interfaces.RetrieveQueryTemplateDefinitionImpl;
-import caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
-import caosdb.server.database.backend.interfaces.RetrieveSparseEntityImpl;
-import caosdb.server.database.backend.interfaces.RetrieveTransactionHistoryImpl;
-import caosdb.server.database.backend.interfaces.RetrieveUserImpl;
-import caosdb.server.database.backend.interfaces.RetrieveVersionHistoryImpl;
-import caosdb.server.database.backend.interfaces.RuleLoaderImpl;
-import caosdb.server.database.backend.interfaces.SetFileCheckedTimestampImpl;
-import caosdb.server.database.backend.interfaces.SetFileChecksumImpl;
-import caosdb.server.database.backend.interfaces.SetPasswordImpl;
-import caosdb.server.database.backend.interfaces.SetPermissionRulesImpl;
-import caosdb.server.database.backend.interfaces.SetQueryTemplateDefinitionImpl;
-import caosdb.server.database.backend.interfaces.SyncStatsImpl;
-import caosdb.server.database.backend.interfaces.UpdateSparseEntityImpl;
-import caosdb.server.database.backend.interfaces.UpdateUserImpl;
-import caosdb.server.database.backend.interfaces.UpdateUserRolesImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.misc.TransactionBenchmark;
-import caosdb.server.utils.UndoHandler;
-import caosdb.server.utils.Undoable;
-import java.util.HashMap;
-
-public abstract class BackendTransaction implements Undoable {
-
-  private final UndoHandler undoHandler = new UndoHandler();
-  private Access access;
-  private TransactionBenchmark benchmark;
-  private static HashMap<
-          Class<? extends BackendTransactionImpl>, Class<? extends BackendTransactionImpl>>
-      impl = new HashMap<>();
-
-  protected abstract void execute();
-
-  public final void executeTransaction() {
-    final long t1 = System.currentTimeMillis();
-    execute();
-    final long t2 = System.currentTimeMillis();
-    this.addMeasurement(this, t2 - t1);
-  }
-
-  /**
-   * Intialiaze the adapters to the database backend.
-   *
-   * <p>Currently this is hard-coded to the MySQL-Backend but the architecture of this class is
-   * designed to make it easy in the future to choose other implementations (i.e. other back-ends)
-   */
-  public static void init() {
-    if (impl.isEmpty()) {
-      setImpl(GetAllNamesImpl.class, MySQLGetAllNames.class);
-      setImpl(DeleteEntityPropertiesImpl.class, MySQLDeleteEntityProperties.class);
-      setImpl(DeleteSparseEntityImpl.class, MySQLDeleteSparseEntity.class);
-      setImpl(GetChildrenImpl.class, MySQLGetChildren.class);
-      setImpl(GetDependentEntitiesImpl.class, MySQLGetDependentEntities.class);
-      setImpl(GetIDByNameImpl.class, MySQLGetIDByName.class);
-      setImpl(GetInfoImpl.class, MySQLGetInfo.class);
-      setImpl(InsertEntityPropertiesImpl.class, MySQLInsertEntityProperties.class);
-      setImpl(InsertLinConImpl.class, MySQLInsertLinCon.class);
-      setImpl(InsertParentsImpl.class, MySQLInsertParents.class);
-      setImpl(InsertSparseEntityImpl.class, MySQLInsertSparseEntity.class);
-      setImpl(InsertTransactionHistoryImpl.class, MySQLInsertTransactionHistory.class);
-      setImpl(IsSubTypeImpl.class, MySQLIsSubType.class);
-      setImpl(UpdateSparseEntityImpl.class, MySQLUpdateSparseEntity.class);
-      setImpl(RetrieveAllImpl.class, MySQLRetrieveAll.class);
-      setImpl(RegisterSubDomainImpl.class, MySQLRegisterSubDomain.class);
-      setImpl(RetrieveDatatypesImpl.class, MySQLRetrieveDatatypes.class);
-      setImpl(RetrieveTransactionHistoryImpl.class, MySQLRetrieveTransactionHistory.class);
-      setImpl(RetrieveUserImpl.class, MySQLRetrieveUser.class);
-      setImpl(RetrieveParentsImpl.class, MySQLRetrieveParents.class);
-      setImpl(GetFileRecordByPathImpl.class, MySQLGetFileRecordByPath.class);
-      setImpl(RetrievePropertiesImpl.class, MySQLRetrieveProperties.class);
-      setImpl(RetrieveSparseEntityImpl.class, MySQLRetrieveSparseEntity.class);
-      setImpl(RuleLoaderImpl.class, MySQLRuleLoader.class);
-      setImpl(SyncStatsImpl.class, MySQLSyncStats.class);
-      setImpl(FileExists.class, UnixFileSystemFileExists.class);
-      setImpl(FileWasModifiedAfter.class, UnixFileSystemFileWasModifiedAfter.class);
-      setImpl(FileCheckHash.class, UnixFileSystemCheckHash.class);
-      setImpl(GetFileIteratorImpl.class, UnixFileSystemGetFileIterator.class);
-      setImpl(SetFileCheckedTimestampImpl.class, MySQLSetFileCheckedTimestampImpl.class);
-      setImpl(RetrieveAllUncheckedFilesImpl.class, MySQLRetrieveAllUncheckedFiles.class);
-      setImpl(UpdateUserImpl.class, MySQLUpdateUser.class);
-      setImpl(DeleteUserImpl.class, MySQLDeleteUser.class);
-      setImpl(SetPasswordImpl.class, MySQLSetPassword.class);
-      setImpl(RetrievePasswordValidatorImpl.class, MySQLRetrievePasswordValidator.class);
-      setImpl(DeletePasswordImpl.class, MySQLDeletePassword.class);
-      setImpl(GetUpdateableChecksumsImpl.class, MySQLGetUpdateableChecksums.class);
-      setImpl(FileCheckSize.class, UnixFileSystemCheckSize.class);
-      setImpl(InsertRoleImpl.class, MySQLInsertRole.class);
-      setImpl(RetrieveRoleImpl.class, MySQLRetrieveRole.class);
-      setImpl(DeleteRoleImpl.class, MySQLDeleteRole.class);
-      setImpl(SetPermissionRulesImpl.class, MySQLSetPermissionRules.class);
-      setImpl(RetrievePermissionRulesImpl.class, MySQLRetrievePermissionRules.class);
-      setImpl(UpdateUserRolesImpl.class, MySQLUpdateUserRoles.class);
-      setImpl(InsertLogRecordImpl.class, MySQLInsertLogRecord.class);
-      setImpl(RetrieveLogRecordImpl.class, MySQLRetrieveLogRecord.class);
-      setImpl(SetQueryTemplateDefinitionImpl.class, MySQLSetQueryTemplateDefinition.class);
-      setImpl(
-          RetrieveQueryTemplateDefinitionImpl.class, MySQLRetrieveQueryTemplateDefinition.class);
-      setImpl(InsertEntityDatatypeImpl.class, MySQLInsertEntityDatatype.class);
-      setImpl(RetrieveVersionHistoryImpl.class, MySQLRetrieveVersionHistory.class);
-      setImpl(SetFileChecksumImpl.class, MySQLSetFileChecksum.class);
-    }
-  }
-
-  /**
-   * Execute this BackendTransaction, using the implementation given as an argument.
-   *
-   * <p>The implementation's benchmark is set to the corresponding sub-benchmark of this object's
-   * benchmark.
-   *
-   * @param t This BackendTransaction's execute() method will be called.
-   * @return The BackendTransaction which was passed as an argument.
-   */
-  protected <K extends BackendTransaction> K execute(final K t) {
-    assert t != this;
-    this.undoHandler.append(t);
-    t.setAccess(this.access);
-    if (benchmark != null) {
-      t.setTransactionBenchmark(benchmark.getBenchmark(t.getClass()));
-    }
-    final long t1 = System.currentTimeMillis();
-    t.execute();
-    final long t2 = System.currentTimeMillis();
-    this.addMeasurement(t, t2 - t1);
-    return t;
-  }
-
-  public static <K extends BackendTransactionImpl, L extends K> void setImpl(
-      final Class<K> k, final Class<L> l) {
-    impl.put(k, l);
-  }
-
-  public void setAccess(final Access access) {
-    this.access = access;
-  }
-
-  @SuppressWarnings("unchecked")
-  protected <T extends BackendTransactionImpl> T getImplementation(final Class<T> clz) {
-    init();
-    try {
-      Class<?> implclz = impl.get(clz);
-      final T ret = (T) implclz.getConstructor(Access.class).newInstance(this.access);
-      if (ret instanceof Undoable) {
-        this.undoHandler.append((Undoable) ret);
-      }
-      if (benchmark != null) {
-        ret.setTransactionBenchmark(benchmark.getBenchmark(ret.getClass()));
-      }
-      return ret;
-    } catch (final Exception e) {
-      throw new TransactionException(e);
-    }
-  }
-
-  protected UndoHandler getUndoHandler() {
-    return this.undoHandler;
-  }
-
-  @Override
-  public final void undo() {
-    this.undoHandler.undo();
-  }
-
-  @Override
-  public final void cleanUp() {
-    this.undoHandler.cleanUp();
-  }
-
-  boolean useCache() {
-    return this.access.useCache();
-  }
-
-  @Override
-  public String toString() {
-    return this.getClass().getSimpleName();
-  }
-
-  /** Set the benchmark object for this AbstractTransaction. */
-  public void setTransactionBenchmark(TransactionBenchmark b) {
-    this.benchmark = b;
-  }
-
-  public void addMeasurement(Object o, long time) {
-    if (this.benchmark != null) {
-      this.benchmark.addMeasurement(o, time);
-    }
-  }
-}
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/InsertEntityDatatypeImpl.java b/src/main/java/caosdb/server/database/backend/interfaces/InsertEntityDatatypeImpl.java
deleted file mode 100644
index 2f6f7c859281344997e1c781e9a56aafa5d03fc4..0000000000000000000000000000000000000000
--- a/src/main/java/caosdb/server/database/backend/interfaces/InsertEntityDatatypeImpl.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package caosdb.server.database.backend.interfaces;
-
-import caosdb.server.database.proto.SparseEntity;
-import caosdb.server.utils.Undoable;
-
-public interface InsertEntityDatatypeImpl extends BackendTransactionImpl, Undoable {
-  public abstract void execute(SparseEntity entity);
-}
diff --git a/src/main/java/caosdb/datetime/Date.java b/src/main/java/org/caosdb/datetime/Date.java
similarity index 96%
rename from src/main/java/caosdb/datetime/Date.java
rename to src/main/java/org/caosdb/datetime/Date.java
index b0d025df6382ef52cf18105aa5601fb4cda3c869..2b7aa522272f48b468dd8c4945360dee14f52d6e 100644
--- a/src/main/java/caosdb/datetime/Date.java
+++ b/src/main/java/org/caosdb/datetime/Date.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.datetime;
+package org.caosdb.datetime;
 
-import caosdb.server.datatype.AbstractDatatype.Table;
 import java.util.Calendar;
 import java.util.GregorianCalendar;
 import java.util.TimeZone;
+import org.caosdb.server.datatype.AbstractDatatype.Table;
 import org.jdom2.Element;
 
 public class Date extends SemiCompleteDateTime {
diff --git a/src/main/java/caosdb/datetime/DateTimeFactory2.java b/src/main/java/org/caosdb/datetime/DateTimeFactory2.java
similarity index 97%
rename from src/main/java/caosdb/datetime/DateTimeFactory2.java
rename to src/main/java/org/caosdb/datetime/DateTimeFactory2.java
index 40aa7473c1f0e0424243387be0871f4a900668b8..103359c7b4ff6f995996866e2283bab47562699c 100644
--- a/src/main/java/caosdb/datetime/DateTimeFactory2.java
+++ b/src/main/java/org/caosdb/datetime/DateTimeFactory2.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.datetime;
+package org.caosdb.datetime;
 
-import caosdb.server.query.CQLParsingErrorListener;
-import caosdb.server.query.CQLParsingErrorListener.ParsingError;
 import java.util.Arrays;
 import java.util.Calendar;
 import java.util.TimeZone;
 import org.antlr.v4.runtime.CharStreams;
 import org.antlr.v4.runtime.CommonTokenStream;
+import org.caosdb.server.query.CQLParsingErrorListener;
+import org.caosdb.server.query.CQLParsingErrorListener.ParsingError;
 
 public class DateTimeFactory2 implements DateTimeFactoryInterface {
 
diff --git a/src/main/java/caosdb/datetime/DateTimeFactoryInterface.java b/src/main/java/org/caosdb/datetime/DateTimeFactoryInterface.java
similarity index 98%
rename from src/main/java/caosdb/datetime/DateTimeFactoryInterface.java
rename to src/main/java/org/caosdb/datetime/DateTimeFactoryInterface.java
index 89ce60d338668bcf95aec207cd82f16a46d6d49b..c81018f939747344b6991e291d3439f164dad283 100644
--- a/src/main/java/caosdb/datetime/DateTimeFactoryInterface.java
+++ b/src/main/java/org/caosdb/datetime/DateTimeFactoryInterface.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.datetime;
+package org.caosdb.datetime;
 
 import java.util.Date;
 
diff --git a/src/main/java/caosdb/datetime/DateTimeInterface.java b/src/main/java/org/caosdb/datetime/DateTimeInterface.java
similarity index 93%
rename from src/main/java/caosdb/datetime/DateTimeInterface.java
rename to src/main/java/org/caosdb/datetime/DateTimeInterface.java
index 33d508cc9ba698410914d74d1f8227d57bb1ded8..e6f1b93382da7deaf1ec1226d193fe1db4b3735d 100644
--- a/src/main/java/caosdb/datetime/DateTimeInterface.java
+++ b/src/main/java/org/caosdb/datetime/DateTimeInterface.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.datetime;
+package org.caosdb.datetime;
 
-import caosdb.server.datatype.SingleValue;
 import java.util.TimeZone;
+import org.caosdb.server.datatype.SingleValue;
 
 public interface DateTimeInterface extends SingleValue {
 
diff --git a/src/main/java/caosdb/datetime/DateTimeLexer.g4 b/src/main/java/org/caosdb/datetime/DateTimeLexer.g4
similarity index 100%
rename from src/main/java/caosdb/datetime/DateTimeLexer.g4
rename to src/main/java/org/caosdb/datetime/DateTimeLexer.g4
diff --git a/src/main/java/caosdb/datetime/DateTimeParser.g4 b/src/main/java/org/caosdb/datetime/DateTimeParser.g4
similarity index 100%
rename from src/main/java/caosdb/datetime/DateTimeParser.g4
rename to src/main/java/org/caosdb/datetime/DateTimeParser.g4
diff --git a/src/main/java/caosdb/datetime/DateTimeStringStrategy.java b/src/main/java/org/caosdb/datetime/DateTimeStringStrategy.java
similarity index 97%
rename from src/main/java/caosdb/datetime/DateTimeStringStrategy.java
rename to src/main/java/org/caosdb/datetime/DateTimeStringStrategy.java
index 299a1b78a913a6abea3c8abcdec265eb78996cc4..635b2cfa0569e62847e8f4f2af0684c5919e8f8d 100644
--- a/src/main/java/caosdb/datetime/DateTimeStringStrategy.java
+++ b/src/main/java/org/caosdb/datetime/DateTimeStringStrategy.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.datetime;
+package org.caosdb.datetime;
 
 import java.util.TimeZone;
 
diff --git a/src/main/java/caosdb/datetime/FragmentDateTime.java b/src/main/java/org/caosdb/datetime/FragmentDateTime.java
similarity index 98%
rename from src/main/java/caosdb/datetime/FragmentDateTime.java
rename to src/main/java/org/caosdb/datetime/FragmentDateTime.java
index 46bec5498284f842dbea83dcf41848d088d5d9bc..52faf5f2040de56c05bb7ce4b5aee130fadf67c3 100644
--- a/src/main/java/caosdb/datetime/FragmentDateTime.java
+++ b/src/main/java/org/caosdb/datetime/FragmentDateTime.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.datetime;
+package org.caosdb.datetime;
 
 import java.util.TimeZone;
 
diff --git a/src/main/java/caosdb/datetime/GregorianCalendarDateTimeStringStrategy.java b/src/main/java/org/caosdb/datetime/GregorianCalendarDateTimeStringStrategy.java
similarity index 98%
rename from src/main/java/caosdb/datetime/GregorianCalendarDateTimeStringStrategy.java
rename to src/main/java/org/caosdb/datetime/GregorianCalendarDateTimeStringStrategy.java
index 22e83dc7070e1adf726af251a106c7d8b1ba7cab..459f1d592beca6b62704e9592c6afe39c1104f57 100644
--- a/src/main/java/caosdb/datetime/GregorianCalendarDateTimeStringStrategy.java
+++ b/src/main/java/org/caosdb/datetime/GregorianCalendarDateTimeStringStrategy.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.datetime;
+package org.caosdb.datetime;
 
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
diff --git a/src/main/java/caosdb/datetime/Interval.java b/src/main/java/org/caosdb/datetime/Interval.java
similarity index 97%
rename from src/main/java/caosdb/datetime/Interval.java
rename to src/main/java/org/caosdb/datetime/Interval.java
index 59a3915e53abf1b88f281359bd115d776125f47f..9890fb4c0643c498dc5e7d5108b9c9c4a13cc9b8 100644
--- a/src/main/java/caosdb/datetime/Interval.java
+++ b/src/main/java/org/caosdb/datetime/Interval.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.datetime;
+package org.caosdb.datetime;
 
 public interface Interval extends DateTimeInterface {
 
diff --git a/src/main/java/caosdb/datetime/LeapSecondDateTimeStringStrategy.java b/src/main/java/org/caosdb/datetime/LeapSecondDateTimeStringStrategy.java
similarity index 98%
rename from src/main/java/caosdb/datetime/LeapSecondDateTimeStringStrategy.java
rename to src/main/java/org/caosdb/datetime/LeapSecondDateTimeStringStrategy.java
index 28beb7603ac798f1399b108fe87f1b729975a537..5aff2dce7979e32f595c4ec8bae12378239cc3dc 100644
--- a/src/main/java/caosdb/datetime/LeapSecondDateTimeStringStrategy.java
+++ b/src/main/java/org/caosdb/datetime/LeapSecondDateTimeStringStrategy.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.datetime;
+package org.caosdb.datetime;
 
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
diff --git a/src/main/java/caosdb/datetime/SemiCompleteDateTime.java b/src/main/java/org/caosdb/datetime/SemiCompleteDateTime.java
similarity index 98%
rename from src/main/java/caosdb/datetime/SemiCompleteDateTime.java
rename to src/main/java/org/caosdb/datetime/SemiCompleteDateTime.java
index 55a7f5d567f1ec5be9902135f45393699195d549..5bd4daca00dae6c70473b76147736e65dcc2da68 100644
--- a/src/main/java/caosdb/datetime/SemiCompleteDateTime.java
+++ b/src/main/java/org/caosdb/datetime/SemiCompleteDateTime.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.datetime;
+package org.caosdb.datetime;
 
-import caosdb.server.datatype.AbstractDatatype.Table;
 import java.util.TimeZone;
+import org.caosdb.server.datatype.AbstractDatatype.Table;
 import org.jdom2.Element;
 
 public class SemiCompleteDateTime extends FragmentDateTime implements Interval {
diff --git a/src/main/java/caosdb/datetime/UTCDateTime.java b/src/main/java/org/caosdb/datetime/UTCDateTime.java
similarity index 99%
rename from src/main/java/caosdb/datetime/UTCDateTime.java
rename to src/main/java/org/caosdb/datetime/UTCDateTime.java
index db66ef0ad08abf0d52a8f3b1b97c6a20cc613c8a..0ecb3ac60dfe796692c344e590f3935c36fceac3 100644
--- a/src/main/java/caosdb/datetime/UTCDateTime.java
+++ b/src/main/java/org/caosdb/datetime/UTCDateTime.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.datetime;
+package org.caosdb.datetime;
 
-import caosdb.server.datatype.AbstractDatatype.Table;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.GregorianCalendar;
 import java.util.TimeZone;
+import org.caosdb.server.datatype.AbstractDatatype.Table;
 import org.jdom2.Element;
 
 public class UTCDateTime implements Interval {
diff --git a/src/main/java/caosdb/datetime/UTCTimeZoneShift.java b/src/main/java/org/caosdb/datetime/UTCTimeZoneShift.java
similarity index 97%
rename from src/main/java/caosdb/datetime/UTCTimeZoneShift.java
rename to src/main/java/org/caosdb/datetime/UTCTimeZoneShift.java
index a5930d7d72250749d351000343e92ee4b24a02ac..e4b9c3c1e29c0092b24d2b88fac4f06991e666e5 100644
--- a/src/main/java/caosdb/datetime/UTCTimeZoneShift.java
+++ b/src/main/java/org/caosdb/datetime/UTCTimeZoneShift.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.datetime;
+package org.caosdb.datetime;
 
 import java.util.Date;
 import java.util.TimeZone;
 
 public class UTCTimeZoneShift extends TimeZone {
-  private static final long serialVersionUID = 1L;
+  private static final long serialVersionUID = 6962096078347188058L;
   public static final int POSITIVE = 1;
   public static final int NEGATIVE = -1;
 
diff --git a/src/main/java/caosdb/server/CaosAuthenticator.java b/src/main/java/org/caosdb/server/CaosAuthenticator.java
similarity index 91%
rename from src/main/java/caosdb/server/CaosAuthenticator.java
rename to src/main/java/org/caosdb/server/CaosAuthenticator.java
index 8fefee3b453dabc0c613228e2495acacb19deaa0..b26e50008e47fbf471e8721423aff9b583ce571a 100644
--- a/src/main/java/caosdb/server/CaosAuthenticator.java
+++ b/src/main/java/org/caosdb/server/CaosAuthenticator.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server;
+package org.caosdb.server;
 
-import caosdb.server.accessControl.AnonymousAuthenticationToken;
-import caosdb.server.accessControl.AuthenticationUtils;
-import caosdb.server.resource.DefaultResource;
-import caosdb.server.utils.ServerMessages;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authc.AuthenticationException;
 import org.apache.shiro.authc.AuthenticationToken;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.accessControl.AnonymousAuthenticationToken;
+import org.caosdb.server.accessControl.AuthenticationUtils;
+import org.caosdb.server.resource.DefaultResource;
+import org.caosdb.server.utils.ServerMessages;
 import org.restlet.Context;
 import org.restlet.Request;
 import org.restlet.Response;
diff --git a/src/main/java/caosdb/server/CaosAuthorizer.java b/src/main/java/org/caosdb/server/CaosAuthorizer.java
similarity index 92%
rename from src/main/java/caosdb/server/CaosAuthorizer.java
rename to src/main/java/org/caosdb/server/CaosAuthorizer.java
index 7b0e0194b8aeb2e5f7a33e0e6be8d2ff52afaf6e..58e814a374ae2d7c5018d041b23eb4fdafa39ef0 100644
--- a/src/main/java/caosdb/server/CaosAuthorizer.java
+++ b/src/main/java/org/caosdb/server/CaosAuthorizer.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server;
+package org.caosdb.server;
 
-import caosdb.server.resource.DefaultResource;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.resource.DefaultResource;
+import org.caosdb.server.utils.ServerMessages;
 import org.restlet.Request;
 import org.restlet.Response;
 import org.restlet.security.Authorizer;
diff --git a/src/main/java/caosdb/server/CaosDBException.java b/src/main/java/org/caosdb/server/CaosDBException.java
similarity index 91%
rename from src/main/java/caosdb/server/CaosDBException.java
rename to src/main/java/org/caosdb/server/CaosDBException.java
index 3e0e50769cd3f08423ea83fa851b2cdfca54e50f..617dfdff95d17ffc15d24bdec2497902eab495a7 100644
--- a/src/main/java/caosdb/server/CaosDBException.java
+++ b/src/main/java/org/caosdb/server/CaosDBException.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server;
+package org.caosdb.server;
 
 public class CaosDBException extends RuntimeException {
 
-  private static final long serialVersionUID = 5317733089121727021L;
+  private static final long serialVersionUID = -6679522664294087311L;
 
   public CaosDBException(final String string) {
     super(string);
diff --git a/src/main/java/caosdb/server/CaosDBServer.java b/src/main/java/org/caosdb/server/CaosDBServer.java
similarity index 91%
rename from src/main/java/caosdb/server/CaosDBServer.java
rename to src/main/java/org/caosdb/server/CaosDBServer.java
index cdee262f08836071d19e5a75038f4291a917b1ff..996e1480a8158dd27e62e3af072a725698a3e5f3 100644
--- a/src/main/java/caosdb/server/CaosDBServer.java
+++ b/src/main/java/org/caosdb/server/CaosDBServer.java
@@ -17,53 +17,8 @@
  *
  * ** end header
  */
-package caosdb.server;
-
-import caosdb.server.accessControl.AnonymousAuthenticationToken;
-import caosdb.server.accessControl.AnonymousRealm;
-import caosdb.server.accessControl.AuthenticationUtils;
-import caosdb.server.accessControl.CaosDBAuthorizingRealm;
-import caosdb.server.accessControl.CaosDBDefaultRealm;
-import caosdb.server.accessControl.ConsumedInfoCleanupJob;
-import caosdb.server.accessControl.OneTimeAuthenticationToken;
-import caosdb.server.accessControl.SessionToken;
-import caosdb.server.accessControl.SessionTokenRealm;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.transaction.RetrieveDatatypes;
-import caosdb.server.database.misc.TransactionBenchmark;
-import caosdb.server.datatype.AbstractDatatype;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Role;
-import caosdb.server.entity.container.Container;
-import caosdb.server.logging.RequestErrorLogMessage;
-import caosdb.server.resource.AuthenticationResource;
-import caosdb.server.resource.DefaultResource;
-import caosdb.server.resource.EntityOwnerResource;
-import caosdb.server.resource.EntityPermissionsResource;
-import caosdb.server.resource.FileSystemResource;
-import caosdb.server.resource.InfoResource;
-import caosdb.server.resource.LogoutResource;
-import caosdb.server.resource.PermissionRulesResource;
-import caosdb.server.resource.RolesResource;
-import caosdb.server.resource.ScriptingResource;
-import caosdb.server.resource.ServerLogsResource;
-import caosdb.server.resource.ServerPropertiesResource;
-import caosdb.server.resource.SharedFileResource;
-import caosdb.server.resource.ThumbnailsResource;
-import caosdb.server.resource.UserResource;
-import caosdb.server.resource.UserRolesResource;
-import caosdb.server.resource.Webinterface;
-import caosdb.server.resource.WebinterfaceBuildNumber;
-import caosdb.server.resource.transaction.EntityNamesResource;
-import caosdb.server.resource.transaction.EntityResource;
-import caosdb.server.terminal.CaosDBTerminal;
-import caosdb.server.terminal.StatsPanel;
-import caosdb.server.terminal.SystemErrPanel;
-import caosdb.server.transaction.ChecksumUpdater;
-import caosdb.server.utils.FileUtils;
-import caosdb.server.utils.Initialization;
-import caosdb.server.utils.NullPrintStream;
+package org.caosdb.server;
+
 import java.io.BufferedReader;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -85,6 +40,51 @@ import org.apache.shiro.env.BasicIniEnvironment;
 import org.apache.shiro.mgt.SecurityManager;
 import org.apache.shiro.subject.Subject;
 import org.apache.shiro.util.ThreadContext;
+import org.caosdb.server.accessControl.AnonymousAuthenticationToken;
+import org.caosdb.server.accessControl.AnonymousRealm;
+import org.caosdb.server.accessControl.AuthenticationUtils;
+import org.caosdb.server.accessControl.CaosDBAuthorizingRealm;
+import org.caosdb.server.accessControl.CaosDBDefaultRealm;
+import org.caosdb.server.accessControl.ConsumedInfoCleanupJob;
+import org.caosdb.server.accessControl.OneTimeAuthenticationToken;
+import org.caosdb.server.accessControl.SessionToken;
+import org.caosdb.server.accessControl.SessionTokenRealm;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.transaction.RetrieveDatatypes;
+import org.caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.datatype.AbstractDatatype;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.entity.container.Container;
+import org.caosdb.server.logging.RequestErrorLogMessage;
+import org.caosdb.server.resource.AuthenticationResource;
+import org.caosdb.server.resource.DefaultResource;
+import org.caosdb.server.resource.EntityOwnerResource;
+import org.caosdb.server.resource.EntityPermissionsResource;
+import org.caosdb.server.resource.FileSystemResource;
+import org.caosdb.server.resource.InfoResource;
+import org.caosdb.server.resource.LogoutResource;
+import org.caosdb.server.resource.PermissionRulesResource;
+import org.caosdb.server.resource.RolesResource;
+import org.caosdb.server.resource.ScriptingResource;
+import org.caosdb.server.resource.ServerLogsResource;
+import org.caosdb.server.resource.ServerPropertiesResource;
+import org.caosdb.server.resource.SharedFileResource;
+import org.caosdb.server.resource.ThumbnailsResource;
+import org.caosdb.server.resource.UserResource;
+import org.caosdb.server.resource.UserRolesResource;
+import org.caosdb.server.resource.Webinterface;
+import org.caosdb.server.resource.WebinterfaceBuildNumber;
+import org.caosdb.server.resource.transaction.EntityNamesResource;
+import org.caosdb.server.resource.transaction.EntityResource;
+import org.caosdb.server.terminal.CaosDBTerminal;
+import org.caosdb.server.terminal.StatsPanel;
+import org.caosdb.server.terminal.SystemErrPanel;
+import org.caosdb.server.transaction.ChecksumUpdater;
+import org.caosdb.server.utils.FileUtils;
+import org.caosdb.server.utils.Initialization;
+import org.caosdb.server.utils.NullPrintStream;
 import org.quartz.JobDetail;
 import org.quartz.Scheduler;
 import org.quartz.SchedulerException;
@@ -470,7 +470,7 @@ public class CaosDBServer extends Application {
             null,
             port_https,
             (Restlet) null,
-            "caosdb.server.CaosDBServerConnectorHelper");
+            "org.caosdb.server.CaosDBServerConnectorHelper");
     component.getServers().add(httpsServer);
 
     // redirector http to https
@@ -508,13 +508,14 @@ public class CaosDBServer extends Application {
 
     // Create an application (this class).
     final Application application = new CaosDBServer();
-    application.getStatusService().setContactEmail("timm.fitschen@ds.mpg.de");
     application
         .getStatusService()
-        .setHomeRef(new Reference(getServerProperty(ServerProperties.KEY_CONTEXT_ROOT) + "/"));
+        .setContactEmail(
+            getServerProperty(ServerProperties.KEY_ADMIN_NAME)
+                + " <"
+                + getServerProperty(ServerProperties.KEY_ADMIN_EMAIL)
+                + ">");
 
-    // Attach the application to the component with a defined contextRoot.
-    application.getStatusService().setContactEmail("timm.fitschen@ds.mpg.de");
     application
         .getStatusService()
         .setHomeRef(new Reference(getServerProperty(ServerProperties.KEY_CONTEXT_ROOT) + "/"));
diff --git a/src/main/java/caosdb/server/CaosDBServerConnectorHelper.java b/src/main/java/org/caosdb/server/CaosDBServerConnectorHelper.java
similarity index 98%
rename from src/main/java/caosdb/server/CaosDBServerConnectorHelper.java
rename to src/main/java/org/caosdb/server/CaosDBServerConnectorHelper.java
index 718d9a5ed5d4007c5c5b6b5b24b940e6973c8f34..8a9749bc2225d71b87ea338a88db3f9aa9596bba 100644
--- a/src/main/java/caosdb/server/CaosDBServerConnectorHelper.java
+++ b/src/main/java/org/caosdb/server/CaosDBServerConnectorHelper.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server;
+package org.caosdb.server;
 
 import java.util.LinkedList;
 import org.restlet.Server;
diff --git a/src/main/java/caosdb/server/FileSystem.java b/src/main/java/org/caosdb/server/FileSystem.java
similarity index 95%
rename from src/main/java/caosdb/server/FileSystem.java
rename to src/main/java/org/caosdb/server/FileSystem.java
index 79e764b96d3b477a57b90b83b1a3f437a1d21266..6bff612ca69acc24b699f8807b6969e343c60fb3 100644
--- a/src/main/java/caosdb/server/FileSystem.java
+++ b/src/main/java/org/caosdb/server/FileSystem.java
@@ -22,18 +22,8 @@
  * ** end header
  */
 
-package caosdb.server;
-
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.transaction.GetFileRecordByPath;
-import caosdb.server.database.exceptions.EntityDoesNotExistException;
-import caosdb.server.database.misc.TransactionBenchmark;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.utils.FileUtils;
-import caosdb.server.utils.ServerMessages;
-import caosdb.server.utils.Utils;
+package org.caosdb.server;
+
 import com.google.common.io.Files;
 import java.io.File;
 import java.io.FileOutputStream;
@@ -45,6 +35,16 @@ import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.regex.Pattern;
 import org.apache.commons.fileupload.FileItemStream;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.transaction.GetFileRecordByPath;
+import org.caosdb.server.database.exceptions.EntityDoesNotExistException;
+import org.caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.utils.FileUtils;
+import org.caosdb.server.utils.ServerMessages;
+import org.caosdb.server.utils.Utils;
 
 public class FileSystem {
   private static String filesystem = null;
diff --git a/src/main/java/caosdb/server/HttpToHttpsRedirector.java b/src/main/java/org/caosdb/server/HttpToHttpsRedirector.java
similarity index 98%
rename from src/main/java/caosdb/server/HttpToHttpsRedirector.java
rename to src/main/java/org/caosdb/server/HttpToHttpsRedirector.java
index 6e250028bbec9450bb2984d9cf1922d0d4e45cb5..5f15406faa837d311a8e5bf62b5e8dd28209d094 100644
--- a/src/main/java/caosdb/server/HttpToHttpsRedirector.java
+++ b/src/main/java/org/caosdb/server/HttpToHttpsRedirector.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server;
+package org.caosdb.server;
 
 import org.restlet.Request;
 import org.restlet.Response;
diff --git a/src/main/java/caosdb/server/ServerProperties.java b/src/main/java/org/caosdb/server/ServerProperties.java
similarity index 98%
rename from src/main/java/caosdb/server/ServerProperties.java
rename to src/main/java/org/caosdb/server/ServerProperties.java
index 29ba470ddbcad0e79db210917234562c4b58620a..dd12add7f20de16d74b2cda907e543b7f5ddef16 100644
--- a/src/main/java/caosdb/server/ServerProperties.java
+++ b/src/main/java/org/caosdb/server/ServerProperties.java
@@ -22,7 +22,7 @@
  *
  * ** end header
  */
-package caosdb.server;
+package org.caosdb.server;
 
 import java.io.BufferedInputStream;
 import java.io.File;
@@ -38,7 +38,7 @@ import org.slf4j.LoggerFactory;
 
 public class ServerProperties extends Properties {
 
-  private static final long serialVersionUID = 1L;
+  private static final long serialVersionUID = -6178774548807398071L;
   private static Logger logger = LoggerFactory.getLogger(ServerProperties.class.getName());
 
   public static final String KEY_FILE_SYSTEM_ROOT = "FILE_SYSTEM_ROOT";
diff --git a/src/main/java/caosdb/server/ServerPropertiesSerializer.java b/src/main/java/org/caosdb/server/ServerPropertiesSerializer.java
similarity index 92%
rename from src/main/java/caosdb/server/ServerPropertiesSerializer.java
rename to src/main/java/org/caosdb/server/ServerPropertiesSerializer.java
index 10189f99e2ff30a2d9306ad9dc007810607747dd..f68538a3aa8bb15ec6f53944dfb072e20dfbc557 100644
--- a/src/main/java/caosdb/server/ServerPropertiesSerializer.java
+++ b/src/main/java/org/caosdb/server/ServerPropertiesSerializer.java
@@ -1,10 +1,10 @@
-package caosdb.server;
+package org.caosdb.server;
 
-import caosdb.server.utils.Serializer;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
+import org.caosdb.server.utils.Serializer;
 import org.jdom2.Element;
 
 public class ServerPropertiesSerializer implements Serializer<Properties, Element> {
diff --git a/src/main/java/caosdb/server/accessControl/ACMPermissions.java b/src/main/java/org/caosdb/server/accessControl/ACMPermissions.java
similarity index 98%
rename from src/main/java/caosdb/server/accessControl/ACMPermissions.java
rename to src/main/java/org/caosdb/server/accessControl/ACMPermissions.java
index 29988106b842fbd2b825899093e102a7448e8951..84844e892297e68d2ad22cbf5dad935612d1c4f4 100644
--- a/src/main/java/caosdb/server/accessControl/ACMPermissions.java
+++ b/src/main/java/org/caosdb/server/accessControl/ACMPermissions.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 public class ACMPermissions {
 
diff --git a/src/main/java/caosdb/server/accessControl/AnonymousAuthenticationToken.java b/src/main/java/org/caosdb/server/accessControl/AnonymousAuthenticationToken.java
similarity index 93%
rename from src/main/java/caosdb/server/accessControl/AnonymousAuthenticationToken.java
rename to src/main/java/org/caosdb/server/accessControl/AnonymousAuthenticationToken.java
index f3f62af2af319d342977a7fe2524b353f8e7adab..97b6f9ee669b673f969e6856a5e23172327fb33e 100644
--- a/src/main/java/caosdb/server/accessControl/AnonymousAuthenticationToken.java
+++ b/src/main/java/org/caosdb/server/accessControl/AnonymousAuthenticationToken.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 import org.apache.shiro.authc.AuthenticationToken;
 
 public class AnonymousAuthenticationToken implements AuthenticationToken {
 
-  private static final long serialVersionUID = 1424325396819592888L;
+  private static final long serialVersionUID = 3573372964529451961L;
   private static final AnonymousAuthenticationToken INSTANCE = new AnonymousAuthenticationToken();
   public static final Principal PRINCIPAL = new Principal("anonymous", "anonymous");
 
diff --git a/src/main/java/caosdb/server/accessControl/AnonymousRealm.java b/src/main/java/org/caosdb/server/accessControl/AnonymousRealm.java
similarity index 97%
rename from src/main/java/caosdb/server/accessControl/AnonymousRealm.java
rename to src/main/java/org/caosdb/server/accessControl/AnonymousRealm.java
index 831d45a727c95277c9d64624e136b2a2e120b3b4..006400bf649619390d5eaa642642a73b6a94f337 100644
--- a/src/main/java/caosdb/server/accessControl/AnonymousRealm.java
+++ b/src/main/java/org/caosdb/server/accessControl/AnonymousRealm.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 import org.apache.shiro.authc.AuthenticationInfo;
 import org.apache.shiro.authc.AuthenticationToken;
diff --git a/src/main/java/caosdb/server/accessControl/AuthenticationUtils.java b/src/main/java/org/caosdb/server/accessControl/AuthenticationUtils.java
similarity index 95%
rename from src/main/java/caosdb/server/accessControl/AuthenticationUtils.java
rename to src/main/java/org/caosdb/server/accessControl/AuthenticationUtils.java
index c3576031da2d9a598bd74a07fe12df62ed7de90d..e6907f40b57b5ef44dc9c4772327ddf8920df173 100644
--- a/src/main/java/caosdb/server/accessControl/AuthenticationUtils.java
+++ b/src/main/java/org/caosdb/server/accessControl/AuthenticationUtils.java
@@ -22,19 +22,19 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
-import static caosdb.server.utils.Utils.URLDecodeWithUTF8;
+import static org.caosdb.server.utils.Utils.URLDecodeWithUTF8;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.permissions.ResponsibleAgent;
-import caosdb.server.permissions.Role;
-import caosdb.server.utils.Utils;
 import java.sql.Timestamp;
 import java.util.Collection;
 import java.util.LinkedList;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.permissions.ResponsibleAgent;
+import org.caosdb.server.permissions.Role;
+import org.caosdb.server.utils.Utils;
 import org.restlet.data.Cookie;
 import org.restlet.data.CookieSetting;
 
diff --git a/src/main/java/caosdb/server/accessControl/CaosDBAuthorizingRealm.java b/src/main/java/org/caosdb/server/accessControl/CaosDBAuthorizingRealm.java
similarity index 98%
rename from src/main/java/caosdb/server/accessControl/CaosDBAuthorizingRealm.java
rename to src/main/java/org/caosdb/server/accessControl/CaosDBAuthorizingRealm.java
index abd52d9ed306f43c51d8bf52bdf1c25d86d8454e..e10a0b29b38b2e246bde8c89c43a8b82a9307b7e 100644
--- a/src/main/java/caosdb/server/accessControl/CaosDBAuthorizingRealm.java
+++ b/src/main/java/org/caosdb/server/accessControl/CaosDBAuthorizingRealm.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 import java.util.Collection;
 import java.util.Set;
diff --git a/src/main/java/caosdb/server/accessControl/CaosDBDefaultRealm.java b/src/main/java/org/caosdb/server/accessControl/CaosDBDefaultRealm.java
similarity index 98%
rename from src/main/java/caosdb/server/accessControl/CaosDBDefaultRealm.java
rename to src/main/java/org/caosdb/server/accessControl/CaosDBDefaultRealm.java
index 209487b751c0b73b5fd9085827295d5eb2ce831d..47fe71fd9dc3407c736998e79524f034933936a9 100644
--- a/src/main/java/caosdb/server/accessControl/CaosDBDefaultRealm.java
+++ b/src/main/java/org/caosdb/server/accessControl/CaosDBDefaultRealm.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 import org.apache.shiro.authc.AuthenticationInfo;
 import org.apache.shiro.authc.AuthenticationToken;
diff --git a/src/main/java/caosdb/server/accessControl/CaosDBRolePermissionResolver.java b/src/main/java/org/caosdb/server/accessControl/CaosDBRolePermissionResolver.java
similarity index 85%
rename from src/main/java/caosdb/server/accessControl/CaosDBRolePermissionResolver.java
rename to src/main/java/org/caosdb/server/accessControl/CaosDBRolePermissionResolver.java
index ae4c38605f07f5222499e076def3a3d48c31a385..17637b010a1ddcd7ed88e3ba448e3fa68b894b43 100644
--- a/src/main/java/caosdb/server/accessControl/CaosDBRolePermissionResolver.java
+++ b/src/main/java/org/caosdb/server/accessControl/CaosDBRolePermissionResolver.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
-import caosdb.server.entity.Message;
-import caosdb.server.permissions.CaosPermission;
-import caosdb.server.permissions.PermissionRule;
-import caosdb.server.transaction.RetrievePermissionRulesTransaction;
-import caosdb.server.utils.ServerMessages;
 import java.util.HashSet;
 import java.util.Set;
 import org.apache.shiro.authc.AuthenticationException;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.permissions.CaosPermission;
+import org.caosdb.server.permissions.PermissionRule;
+import org.caosdb.server.transaction.RetrievePermissionRulesTransaction;
+import org.caosdb.server.utils.ServerMessages;
 
 public class CaosDBRolePermissionResolver {
 
diff --git a/src/main/java/caosdb/server/accessControl/Config.java b/src/main/java/org/caosdb/server/accessControl/Config.java
similarity index 97%
rename from src/main/java/caosdb/server/accessControl/Config.java
rename to src/main/java/org/caosdb/server/accessControl/Config.java
index 3da7a426a9dcecfb93264cb9e504a157b10659c8..4c50b445127c089dd1be7151dc6d35825877a2ae 100644
--- a/src/main/java/caosdb/server/accessControl/Config.java
+++ b/src/main/java/org/caosdb/server/accessControl/Config.java
@@ -1,4 +1,4 @@
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 public class Config {
   private String[] permissions = {};
diff --git a/src/main/java/caosdb/server/accessControl/ConsumedInfoCleanupJob.java b/src/main/java/org/caosdb/server/accessControl/ConsumedInfoCleanupJob.java
similarity index 91%
rename from src/main/java/caosdb/server/accessControl/ConsumedInfoCleanupJob.java
rename to src/main/java/org/caosdb/server/accessControl/ConsumedInfoCleanupJob.java
index 1f62fa0a8fc72604d885c24123c3d0c17cb49a0a..b5945c5cd2dbec86a7de6ffa265c65706342f86e 100644
--- a/src/main/java/caosdb/server/accessControl/ConsumedInfoCleanupJob.java
+++ b/src/main/java/org/caosdb/server/accessControl/ConsumedInfoCleanupJob.java
@@ -1,6 +1,6 @@
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
-import caosdb.server.CaosDBServer;
+import org.caosdb.server.CaosDBServer;
 import org.quartz.CronScheduleBuilder;
 import org.quartz.Job;
 import org.quartz.JobBuilder;
diff --git a/src/main/java/caosdb/server/accessControl/CredentialsValidator.java b/src/main/java/org/caosdb/server/accessControl/CredentialsValidator.java
similarity index 96%
rename from src/main/java/caosdb/server/accessControl/CredentialsValidator.java
rename to src/main/java/org/caosdb/server/accessControl/CredentialsValidator.java
index 1c9474eb8d40ae7c28188be3c9b62bc73288978d..dfcbe8dfe5a2c840b2674c0fa419df185fe638ad 100644
--- a/src/main/java/caosdb/server/accessControl/CredentialsValidator.java
+++ b/src/main/java/org/caosdb/server/accessControl/CredentialsValidator.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 public interface CredentialsValidator<T> {
 
diff --git a/src/main/java/caosdb/server/accessControl/HashPasswordValidator.java b/src/main/java/org/caosdb/server/accessControl/HashPasswordValidator.java
similarity index 95%
rename from src/main/java/caosdb/server/accessControl/HashPasswordValidator.java
rename to src/main/java/org/caosdb/server/accessControl/HashPasswordValidator.java
index 2d883d906b633e5e1d4d313e2334844e1e7670fa..dcf1e3feabbb1e6855844169f03961d5ad71532a 100644
--- a/src/main/java/caosdb/server/accessControl/HashPasswordValidator.java
+++ b/src/main/java/org/caosdb/server/accessControl/HashPasswordValidator.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
-import caosdb.server.utils.Utils;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
+import org.caosdb.server.utils.Utils;
 
 public class HashPasswordValidator implements CredentialsValidator<String> {
 
diff --git a/src/main/java/caosdb/server/accessControl/InternalUserSource.java b/src/main/java/org/caosdb/server/accessControl/InternalUserSource.java
similarity index 91%
rename from src/main/java/caosdb/server/accessControl/InternalUserSource.java
rename to src/main/java/org/caosdb/server/accessControl/InternalUserSource.java
index 16e795aa9b7228c4f14f11bbb0d2178a4f7517a0..23f772dfbd24aef21a6335ce4bc6df392e082078 100644
--- a/src/main/java/caosdb/server/accessControl/InternalUserSource.java
+++ b/src/main/java/org/caosdb/server/accessControl/InternalUserSource.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
-import caosdb.server.entity.Message;
-import caosdb.server.transaction.RetrievePasswordValidatorTransaction;
-import caosdb.server.transaction.RetrieveUserTransaction;
-import caosdb.server.utils.ServerMessages;
 import java.util.Map;
 import java.util.Set;
 import org.apache.shiro.authc.AuthenticationException;
 import org.apache.shiro.authz.AuthorizationException;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.transaction.RetrievePasswordValidatorTransaction;
+import org.caosdb.server.transaction.RetrieveUserTransaction;
+import org.caosdb.server.utils.ServerMessages;
 
 public class InternalUserSource implements UserSource {
 
diff --git a/src/main/java/caosdb/server/accessControl/Mode.java b/src/main/java/org/caosdb/server/accessControl/Mode.java
similarity index 95%
rename from src/main/java/caosdb/server/accessControl/Mode.java
rename to src/main/java/org/caosdb/server/accessControl/Mode.java
index de7af914ae2b120a279da3fe936b1e67845fd0cb..8f91a9ba6eb6fc8c35a0cb519e0e7820e3628f57 100644
--- a/src/main/java/caosdb/server/accessControl/Mode.java
+++ b/src/main/java/org/caosdb/server/accessControl/Mode.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 public enum Mode {
   ONETIME,
diff --git a/src/main/java/caosdb/server/accessControl/OneTimeAuthenticationToken.java b/src/main/java/org/caosdb/server/accessControl/OneTimeAuthenticationToken.java
similarity index 97%
rename from src/main/java/caosdb/server/accessControl/OneTimeAuthenticationToken.java
rename to src/main/java/org/caosdb/server/accessControl/OneTimeAuthenticationToken.java
index 8dddf77b092cb951695ecaa15191856a3909793f..f87dd0da71b5478c636476dac3041ced82035e27 100644
--- a/src/main/java/caosdb/server/accessControl/OneTimeAuthenticationToken.java
+++ b/src/main/java/org/caosdb/server/accessControl/OneTimeAuthenticationToken.java
@@ -22,10 +22,8 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectReader;
 import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
@@ -38,6 +36,8 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
 import org.eclipse.jetty.util.ajax.JSON;
 import org.quartz.SchedulerException;
 import org.slf4j.Logger;
@@ -98,7 +98,7 @@ public class OneTimeAuthenticationToken extends SelfValidatingAuthenticationToke
         defaultIfNull(replaysTimeout, DEFAULT_REPLAYS_TIMEOUT_MS));
   }
 
-  private static final long serialVersionUID = -1072740888045267613L;
+  private static final long serialVersionUID = 6811668234440927543L;
 
   /**
    * Return consumed.
diff --git a/src/main/java/caosdb/server/accessControl/OneTimeTokenConsumedInfo.java b/src/main/java/org/caosdb/server/accessControl/OneTimeTokenConsumedInfo.java
similarity index 98%
rename from src/main/java/caosdb/server/accessControl/OneTimeTokenConsumedInfo.java
rename to src/main/java/org/caosdb/server/accessControl/OneTimeTokenConsumedInfo.java
index a8ebd2c807712d8b06ec68771e7abb8082ce0696..20c648b2d6b4aa2a492de6bc4bb6d1f5465eea27 100644
--- a/src/main/java/caosdb/server/accessControl/OneTimeTokenConsumedInfo.java
+++ b/src/main/java/org/caosdb/server/accessControl/OneTimeTokenConsumedInfo.java
@@ -1,4 +1,4 @@
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 import java.util.HashMap;
 import java.util.Iterator;
diff --git a/src/main/java/caosdb/server/accessControl/OneTimeTokenToFile.java b/src/main/java/org/caosdb/server/accessControl/OneTimeTokenToFile.java
similarity index 96%
rename from src/main/java/caosdb/server/accessControl/OneTimeTokenToFile.java
rename to src/main/java/org/caosdb/server/accessControl/OneTimeTokenToFile.java
index b4006783a2105a353749edfaa475bde3dae93808..46017701069f9f184bf50b8bab285014cd8a47ad 100644
--- a/src/main/java/caosdb/server/accessControl/OneTimeTokenToFile.java
+++ b/src/main/java/org/caosdb/server/accessControl/OneTimeTokenToFile.java
@@ -1,10 +1,10 @@
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
-import caosdb.server.CaosDBServer;
 import com.google.common.io.Files;
 import java.io.File;
 import java.io.IOException;
 import java.io.PrintWriter;
+import org.caosdb.server.CaosDBServer;
 import org.quartz.CronScheduleBuilder;
 import org.quartz.Job;
 import org.quartz.JobBuilder;
diff --git a/src/main/java/caosdb/server/accessControl/Pam.java b/src/main/java/org/caosdb/server/accessControl/Pam.java
similarity index 99%
rename from src/main/java/caosdb/server/accessControl/Pam.java
rename to src/main/java/org/caosdb/server/accessControl/Pam.java
index 0cae6fd74ae3924e868757e1f058a430a23b1ff3..992665c1db3ef42d3770c71e89fa5444f43f9d95 100644
--- a/src/main/java/caosdb/server/accessControl/Pam.java
+++ b/src/main/java/org/caosdb/server/accessControl/Pam.java
@@ -23,9 +23,8 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
-import caosdb.server.caching.Cache;
 import java.io.File;
 import java.io.IOException;
 import java.util.HashSet;
@@ -36,6 +35,7 @@ import org.apache.commons.jcs.access.behavior.ICacheAccess;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.shiro.authz.AuthorizationException;
+import org.caosdb.server.caching.Cache;
 import org.jvnet.libpam.PAMException;
 import org.jvnet.libpam.UnixUser;
 
diff --git a/src/main/java/caosdb/server/accessControl/PamScriptCaller.java b/src/main/java/org/caosdb/server/accessControl/PamScriptCaller.java
similarity index 96%
rename from src/main/java/caosdb/server/accessControl/PamScriptCaller.java
rename to src/main/java/org/caosdb/server/accessControl/PamScriptCaller.java
index 4cf1836df953b78f0fccb4801a85205b11869b18..dc9137e0192cb73d35ae6579b760a8d4f56685b7 100644
--- a/src/main/java/caosdb/server/accessControl/PamScriptCaller.java
+++ b/src/main/java/org/caosdb/server/accessControl/PamScriptCaller.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 public interface PamScriptCaller {
   public boolean isValid(String username, String password);
diff --git a/src/main/java/caosdb/server/accessControl/Principal.java b/src/main/java/org/caosdb/server/accessControl/Principal.java
similarity index 96%
rename from src/main/java/caosdb/server/accessControl/Principal.java
rename to src/main/java/org/caosdb/server/accessControl/Principal.java
index 6a95dd79eccd50c9358928909822af67056102db..fc96fb99670b51d0a128710722e2c10effed152a 100644
--- a/src/main/java/caosdb/server/accessControl/Principal.java
+++ b/src/main/java/org/caosdb/server/accessControl/Principal.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
-import caosdb.server.permissions.ResponsibleAgent;
 import java.util.HashMap;
+import org.caosdb.server.permissions.ResponsibleAgent;
 import org.jdom2.Element;
 
 public class Principal implements ResponsibleAgent {
diff --git a/src/main/java/caosdb/server/accessControl/RealmUsernamePasswordToken.java b/src/main/java/org/caosdb/server/accessControl/RealmUsernamePasswordToken.java
similarity index 93%
rename from src/main/java/caosdb/server/accessControl/RealmUsernamePasswordToken.java
rename to src/main/java/org/caosdb/server/accessControl/RealmUsernamePasswordToken.java
index e07db9a603991a09ffb74d155697bc9b1583489d..1d9343104a5ffea8f3d0db4eb0498ae210381f0a 100644
--- a/src/main/java/caosdb/server/accessControl/RealmUsernamePasswordToken.java
+++ b/src/main/java/org/caosdb/server/accessControl/RealmUsernamePasswordToken.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 import org.apache.shiro.authc.AuthenticationToken;
 
 public class RealmUsernamePasswordToken implements AuthenticationToken {
 
-  private static final long serialVersionUID = -6314149707379428753L;
+  private static final long serialVersionUID = 1970181902441118122L;
   String realm;
   String username;
   String password;
diff --git a/src/main/java/caosdb/server/accessControl/Role.java b/src/main/java/org/caosdb/server/accessControl/Role.java
similarity index 91%
rename from src/main/java/caosdb/server/accessControl/Role.java
rename to src/main/java/org/caosdb/server/accessControl/Role.java
index e19e245905bc0f90b4e4b004fce75e2e1203eb4f..1a34b49974804ae202ceaf4044ff1f620eaa5d12 100644
--- a/src/main/java/caosdb/server/accessControl/Role.java
+++ b/src/main/java/org/caosdb/server/accessControl/Role.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 import java.io.Serializable;
 import org.jdom2.Element;
 
 public class Role implements Serializable {
 
-  private static final long serialVersionUID = -9212426446735375109L;
+  private static final long serialVersionUID = 8968219504349206982L;
   public String name = null;
   public String description = null;
 
diff --git a/src/main/java/caosdb/server/accessControl/SelfValidatingAuthenticationToken.java b/src/main/java/org/caosdb/server/accessControl/SelfValidatingAuthenticationToken.java
similarity index 98%
rename from src/main/java/caosdb/server/accessControl/SelfValidatingAuthenticationToken.java
rename to src/main/java/org/caosdb/server/accessControl/SelfValidatingAuthenticationToken.java
index 119a86248b83a472df0d2981db43d9a6cc1962f0..1832563fb981b52da8c90168e7dae97d6dfbc487 100644
--- a/src/main/java/caosdb/server/accessControl/SelfValidatingAuthenticationToken.java
+++ b/src/main/java/org/caosdb/server/accessControl/SelfValidatingAuthenticationToken.java
@@ -22,13 +22,13 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
-import caosdb.server.utils.Utils;
 import java.util.Arrays;
 import java.util.Collection;
 import org.apache.shiro.authc.AuthenticationException;
 import org.apache.shiro.authc.AuthenticationToken;
+import org.caosdb.server.utils.Utils;
 import org.eclipse.jetty.util.ajax.JSON;
 
 /**
@@ -56,7 +56,7 @@ public abstract class SelfValidatingAuthenticationToken extends Principal
     implements AuthenticationToken {
 
   protected static final transient String PEPPER = Utils.getSecureFilename(32);
-  private static final long serialVersionUID = -7212039848895531161L;
+  private static final long serialVersionUID = -7469302791917310460L;
   // date is the token creation time, in ms since 1970
   protected final long date;
   // token validity duration
diff --git a/src/main/java/caosdb/server/accessControl/SessionToken.java b/src/main/java/org/caosdb/server/accessControl/SessionToken.java
similarity index 95%
rename from src/main/java/caosdb/server/accessControl/SessionToken.java
rename to src/main/java/org/caosdb/server/accessControl/SessionToken.java
index d24b4afeb739d764947092783c544168a6c0cf3f..760f119541918a153cf8d4ca452fa0f9b7adced0 100644
--- a/src/main/java/caosdb/server/accessControl/SessionToken.java
+++ b/src/main/java/org/caosdb/server/accessControl/SessionToken.java
@@ -23,11 +23,11 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
 import org.eclipse.jetty.util.ajax.JSON;
 
 /**
@@ -65,7 +65,7 @@ public class SessionToken extends SelfValidatingAuthenticationToken {
     super(principal, timeout, permissions, roles);
   }
 
-  private static final long serialVersionUID = 5887135104218573761L;
+  private static final long serialVersionUID = 3739602277654194951L;
 
   public static SessionToken parse(final Object[] array) {
     // array[0] is not used here, it was already consumed to determine the type of token.
diff --git a/src/main/java/caosdb/server/accessControl/SessionTokenRealm.java b/src/main/java/org/caosdb/server/accessControl/SessionTokenRealm.java
similarity index 97%
rename from src/main/java/caosdb/server/accessControl/SessionTokenRealm.java
rename to src/main/java/org/caosdb/server/accessControl/SessionTokenRealm.java
index cce2850d6d532ae8880d208682b5677dc0369089..d78ffb405a8470a005da54736e25fbd69340b7e5 100644
--- a/src/main/java/caosdb/server/accessControl/SessionTokenRealm.java
+++ b/src/main/java/org/caosdb/server/accessControl/SessionTokenRealm.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 import org.apache.shiro.authc.AuthenticationInfo;
 import org.apache.shiro.authc.AuthenticationToken;
diff --git a/src/main/java/caosdb/server/accessControl/UserSource.java b/src/main/java/org/caosdb/server/accessControl/UserSource.java
similarity index 98%
rename from src/main/java/caosdb/server/accessControl/UserSource.java
rename to src/main/java/org/caosdb/server/accessControl/UserSource.java
index 0ece8d5014227916feb1c50b986aaf4d9a9bf91b..ff9882bfbf581e3633d99c3a20c5113e1d329e55 100644
--- a/src/main/java/caosdb/server/accessControl/UserSource.java
+++ b/src/main/java/org/caosdb/server/accessControl/UserSource.java
@@ -22,7 +22,7 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 import java.util.Map;
 import java.util.Set;
diff --git a/src/main/java/caosdb/server/accessControl/UserSources.java b/src/main/java/org/caosdb/server/accessControl/UserSources.java
similarity index 95%
rename from src/main/java/caosdb/server/accessControl/UserSources.java
rename to src/main/java/org/caosdb/server/accessControl/UserSources.java
index cdf219c017608c621a59d427b2132630fef0631d..8f69c8c5c86faea903a29049c3a604121b8951ad 100644
--- a/src/main/java/caosdb/server/accessControl/UserSources.java
+++ b/src/main/java/org/caosdb/server/accessControl/UserSources.java
@@ -22,15 +22,8 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.permissions.Role;
-import caosdb.server.transaction.RetrieveRoleTransaction;
-import caosdb.server.transaction.RetrieveUserTransaction;
-import caosdb.server.utils.ServerMessages;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
@@ -39,6 +32,13 @@ import java.util.HashSet;
 import java.util.Set;
 import org.apache.shiro.authc.AuthenticationException;
 import org.apache.shiro.config.Ini;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.permissions.Role;
+import org.caosdb.server.transaction.RetrieveRoleTransaction;
+import org.caosdb.server.transaction.RetrieveUserTransaction;
+import org.caosdb.server.utils.ServerMessages;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -74,7 +74,7 @@ public class UserSources extends HashMap<String, UserSource> {
   public static final String KEY_REALMS = "realms";
   public static final String KEY_REALM_CLASS = "class";
 
-  private static final long serialVersionUID = 6782744064206400521L;
+  private static final long serialVersionUID = 256585362760388255L;
   private static final UserSource internalRealm = new InternalUserSource();
 
   private static UserSources instance = new UserSources();
diff --git a/src/main/java/caosdb/server/accessControl/UserStatus.java b/src/main/java/org/caosdb/server/accessControl/UserStatus.java
similarity index 95%
rename from src/main/java/caosdb/server/accessControl/UserStatus.java
rename to src/main/java/org/caosdb/server/accessControl/UserStatus.java
index 5acf24f0daf8891f21bdee83062d8c6ee6f77ab4..6091d3e146eb5eb835044f97d1dcbafd8d042135 100644
--- a/src/main/java/caosdb/server/accessControl/UserStatus.java
+++ b/src/main/java/org/caosdb/server/accessControl/UserStatus.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 public enum UserStatus {
   ACTIVE,
diff --git a/src/main/java/caosdb/server/caching/Cache.java b/src/main/java/org/caosdb/server/caching/Cache.java
similarity index 98%
rename from src/main/java/caosdb/server/caching/Cache.java
rename to src/main/java/org/caosdb/server/caching/Cache.java
index 338b1d853fd0610be780362a0242193fa46eb320..fe5e12c5ec1e7a6acd83dbfb8f64ead676600840 100644
--- a/src/main/java/caosdb/server/caching/Cache.java
+++ b/src/main/java/org/caosdb/server/caching/Cache.java
@@ -22,7 +22,7 @@
  *
  * ** end header
  */
-package caosdb.server.caching;
+package org.caosdb.server.caching;
 
 import java.io.Serializable;
 import org.apache.commons.jcs.access.behavior.ICacheAccess;
diff --git a/src/main/java/caosdb/server/caching/CacheHelper.java b/src/main/java/org/caosdb/server/caching/CacheHelper.java
similarity index 96%
rename from src/main/java/caosdb/server/caching/CacheHelper.java
rename to src/main/java/org/caosdb/server/caching/CacheHelper.java
index 32c854400310959a7834fe32a6f90de9e1b584d1..0dfd32da5bc125b242622384fcae54eee722e4ef 100644
--- a/src/main/java/caosdb/server/caching/CacheHelper.java
+++ b/src/main/java/org/caosdb/server/caching/CacheHelper.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.caching;
+package org.caosdb.server.caching;
 
 import java.io.Serializable;
 import org.apache.commons.jcs.access.behavior.ICacheAccess;
diff --git a/src/main/java/caosdb/server/caching/JCSCacheHelper.java b/src/main/java/org/caosdb/server/caching/JCSCacheHelper.java
similarity index 96%
rename from src/main/java/caosdb/server/caching/JCSCacheHelper.java
rename to src/main/java/org/caosdb/server/caching/JCSCacheHelper.java
index c471ed7ef860d902b56940da52a876a44fd97218..1613b8be8194425ab14e5e68b9215a0ba92be8d3 100644
--- a/src/main/java/caosdb/server/caching/JCSCacheHelper.java
+++ b/src/main/java/org/caosdb/server/caching/JCSCacheHelper.java
@@ -22,10 +22,8 @@
  *
  * ** end header
  */
-package caosdb.server.caching;
+package org.caosdb.server.caching;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -36,6 +34,8 @@ import org.apache.commons.jcs.JCS;
 import org.apache.commons.jcs.access.behavior.ICacheAccess;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
 
 /**
  * A CacheHelper implementation which is configured statically via the {@link
diff --git a/src/main/java/org/caosdb/server/database/BackendTransaction.java b/src/main/java/org/caosdb/server/database/BackendTransaction.java
new file mode 100644
index 0000000000000000000000000000000000000000..20ec5b71a7ae6f4dd908dc38145df1c41f035e8e
--- /dev/null
+++ b/src/main/java/org/caosdb/server/database/BackendTransaction.java
@@ -0,0 +1,301 @@
+/*
+ * ** header v3.0
+ * This file is a part of the CaosDB Project.
+ *
+ * Copyright (C) 2018 Research Group Biomedical Physics,
+ *   Max-Planck-Institute for Dynamics and Self-Organization Göttingen
+ * Copyright (C) 2020 IndiScale GmbH
+ * Copyright (C) 2020 Timm Fitschen (t.fitschen@indiscale.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * ** end header
+ */
+package org.caosdb.server.database;
+
+import java.util.HashMap;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLDeleteEntityProperties;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLDeletePassword;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLDeleteRole;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLDeleteSparseEntity;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLDeleteUser;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLGetAllNames;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLGetChildren;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLGetDependentEntities;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLGetFileRecordByPath;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLGetIDByName;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLGetInfo;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLGetUpdateableChecksums;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLInsertEntityDatatype;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLInsertEntityProperties;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLInsertLinCon;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLInsertLogRecord;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLInsertParents;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLInsertRole;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLInsertSparseEntity;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLInsertTransactionHistory;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLIsSubType;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRegisterSubDomain;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveAll;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveAllUncheckedFiles;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveDatatypes;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveLogRecord;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveParents;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRetrievePasswordValidator;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRetrievePermissionRules;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveProperties;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveQueryTemplateDefinition;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveRole;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveSparseEntity;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveTransactionHistory;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveUser;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRetrieveVersionHistory;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLRuleLoader;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLSetFileCheckedTimestampImpl;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLSetFileChecksum;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLSetPassword;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLSetPermissionRules;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLSetQueryTemplateDefinition;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLSyncStats;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLUpdateSparseEntity;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLUpdateUser;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLUpdateUserRoles;
+import org.caosdb.server.database.backend.implementation.UnixFileSystem.UnixFileSystemCheckHash;
+import org.caosdb.server.database.backend.implementation.UnixFileSystem.UnixFileSystemCheckSize;
+import org.caosdb.server.database.backend.implementation.UnixFileSystem.UnixFileSystemFileExists;
+import org.caosdb.server.database.backend.implementation.UnixFileSystem.UnixFileSystemFileWasModifiedAfter;
+import org.caosdb.server.database.backend.implementation.UnixFileSystem.UnixFileSystemGetFileIterator;
+import org.caosdb.server.database.backend.interfaces.BackendTransactionImpl;
+import org.caosdb.server.database.backend.interfaces.DeleteEntityPropertiesImpl;
+import org.caosdb.server.database.backend.interfaces.DeletePasswordImpl;
+import org.caosdb.server.database.backend.interfaces.DeleteRoleImpl;
+import org.caosdb.server.database.backend.interfaces.DeleteSparseEntityImpl;
+import org.caosdb.server.database.backend.interfaces.DeleteUserImpl;
+import org.caosdb.server.database.backend.interfaces.FileCheckHash;
+import org.caosdb.server.database.backend.interfaces.FileCheckSize;
+import org.caosdb.server.database.backend.interfaces.FileExists;
+import org.caosdb.server.database.backend.interfaces.FileWasModifiedAfter;
+import org.caosdb.server.database.backend.interfaces.GetAllNamesImpl;
+import org.caosdb.server.database.backend.interfaces.GetChildrenImpl;
+import org.caosdb.server.database.backend.interfaces.GetDependentEntitiesImpl;
+import org.caosdb.server.database.backend.interfaces.GetFileIteratorImpl;
+import org.caosdb.server.database.backend.interfaces.GetFileRecordByPathImpl;
+import org.caosdb.server.database.backend.interfaces.GetIDByNameImpl;
+import org.caosdb.server.database.backend.interfaces.GetInfoImpl;
+import org.caosdb.server.database.backend.interfaces.GetUpdateableChecksumsImpl;
+import org.caosdb.server.database.backend.interfaces.InsertEntityDatatypeImpl;
+import org.caosdb.server.database.backend.interfaces.InsertEntityPropertiesImpl;
+import org.caosdb.server.database.backend.interfaces.InsertLinConImpl;
+import org.caosdb.server.database.backend.interfaces.InsertLogRecordImpl;
+import org.caosdb.server.database.backend.interfaces.InsertParentsImpl;
+import org.caosdb.server.database.backend.interfaces.InsertRoleImpl;
+import org.caosdb.server.database.backend.interfaces.InsertSparseEntityImpl;
+import org.caosdb.server.database.backend.interfaces.InsertTransactionHistoryImpl;
+import org.caosdb.server.database.backend.interfaces.IsSubTypeImpl;
+import org.caosdb.server.database.backend.interfaces.RegisterSubDomainImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveAllImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveAllUncheckedFilesImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveDatatypesImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveLogRecordImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveParentsImpl;
+import org.caosdb.server.database.backend.interfaces.RetrievePasswordValidatorImpl;
+import org.caosdb.server.database.backend.interfaces.RetrievePermissionRulesImpl;
+import org.caosdb.server.database.backend.interfaces.RetrievePropertiesImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveQueryTemplateDefinitionImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveSparseEntityImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveTransactionHistoryImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveUserImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveVersionHistoryImpl;
+import org.caosdb.server.database.backend.interfaces.RuleLoaderImpl;
+import org.caosdb.server.database.backend.interfaces.SetFileCheckedTimestampImpl;
+import org.caosdb.server.database.backend.interfaces.SetFileChecksumImpl;
+import org.caosdb.server.database.backend.interfaces.SetPasswordImpl;
+import org.caosdb.server.database.backend.interfaces.SetPermissionRulesImpl;
+import org.caosdb.server.database.backend.interfaces.SetQueryTemplateDefinitionImpl;
+import org.caosdb.server.database.backend.interfaces.SyncStatsImpl;
+import org.caosdb.server.database.backend.interfaces.UpdateSparseEntityImpl;
+import org.caosdb.server.database.backend.interfaces.UpdateUserImpl;
+import org.caosdb.server.database.backend.interfaces.UpdateUserRolesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.utils.UndoHandler;
+import org.caosdb.server.utils.Undoable;
+
+public abstract class BackendTransaction implements Undoable {
+
+  private final UndoHandler undoHandler = new UndoHandler();
+  private Access access;
+  private TransactionBenchmark benchmark;
+  private static HashMap<
+          Class<? extends BackendTransactionImpl>, Class<? extends BackendTransactionImpl>>
+      impl = new HashMap<>();
+
+  protected abstract void execute();
+
+  public final void executeTransaction() {
+    final long t1 = System.currentTimeMillis();
+    execute();
+    final long t2 = System.currentTimeMillis();
+    this.addMeasurement(this, t2 - t1);
+  }
+
+  /**
+   * Intialiaze the adapters to the database backend.
+   *
+   * <p>Currently this is hard-coded to the MySQL-Backend but the architecture of this class is
+   * designed to make it easy in the future to choose other implementations (i.e. other back-ends)
+   */
+  public static void init() {
+    if (impl.isEmpty()) {
+      setImpl(GetAllNamesImpl.class, MySQLGetAllNames.class);
+      setImpl(DeleteEntityPropertiesImpl.class, MySQLDeleteEntityProperties.class);
+      setImpl(DeleteSparseEntityImpl.class, MySQLDeleteSparseEntity.class);
+      setImpl(GetChildrenImpl.class, MySQLGetChildren.class);
+      setImpl(GetDependentEntitiesImpl.class, MySQLGetDependentEntities.class);
+      setImpl(GetIDByNameImpl.class, MySQLGetIDByName.class);
+      setImpl(GetInfoImpl.class, MySQLGetInfo.class);
+      setImpl(InsertEntityPropertiesImpl.class, MySQLInsertEntityProperties.class);
+      setImpl(InsertLinConImpl.class, MySQLInsertLinCon.class);
+      setImpl(InsertParentsImpl.class, MySQLInsertParents.class);
+      setImpl(InsertSparseEntityImpl.class, MySQLInsertSparseEntity.class);
+      setImpl(InsertTransactionHistoryImpl.class, MySQLInsertTransactionHistory.class);
+      setImpl(IsSubTypeImpl.class, MySQLIsSubType.class);
+      setImpl(UpdateSparseEntityImpl.class, MySQLUpdateSparseEntity.class);
+      setImpl(RetrieveAllImpl.class, MySQLRetrieveAll.class);
+      setImpl(RegisterSubDomainImpl.class, MySQLRegisterSubDomain.class);
+      setImpl(RetrieveDatatypesImpl.class, MySQLRetrieveDatatypes.class);
+      setImpl(RetrieveTransactionHistoryImpl.class, MySQLRetrieveTransactionHistory.class);
+      setImpl(RetrieveUserImpl.class, MySQLRetrieveUser.class);
+      setImpl(RetrieveParentsImpl.class, MySQLRetrieveParents.class);
+      setImpl(GetFileRecordByPathImpl.class, MySQLGetFileRecordByPath.class);
+      setImpl(RetrievePropertiesImpl.class, MySQLRetrieveProperties.class);
+      setImpl(RetrieveSparseEntityImpl.class, MySQLRetrieveSparseEntity.class);
+      setImpl(RuleLoaderImpl.class, MySQLRuleLoader.class);
+      setImpl(SyncStatsImpl.class, MySQLSyncStats.class);
+      setImpl(FileExists.class, UnixFileSystemFileExists.class);
+      setImpl(FileWasModifiedAfter.class, UnixFileSystemFileWasModifiedAfter.class);
+      setImpl(FileCheckHash.class, UnixFileSystemCheckHash.class);
+      setImpl(GetFileIteratorImpl.class, UnixFileSystemGetFileIterator.class);
+      setImpl(SetFileCheckedTimestampImpl.class, MySQLSetFileCheckedTimestampImpl.class);
+      setImpl(RetrieveAllUncheckedFilesImpl.class, MySQLRetrieveAllUncheckedFiles.class);
+      setImpl(UpdateUserImpl.class, MySQLUpdateUser.class);
+      setImpl(DeleteUserImpl.class, MySQLDeleteUser.class);
+      setImpl(SetPasswordImpl.class, MySQLSetPassword.class);
+      setImpl(RetrievePasswordValidatorImpl.class, MySQLRetrievePasswordValidator.class);
+      setImpl(DeletePasswordImpl.class, MySQLDeletePassword.class);
+      setImpl(GetUpdateableChecksumsImpl.class, MySQLGetUpdateableChecksums.class);
+      setImpl(FileCheckSize.class, UnixFileSystemCheckSize.class);
+      setImpl(InsertRoleImpl.class, MySQLInsertRole.class);
+      setImpl(RetrieveRoleImpl.class, MySQLRetrieveRole.class);
+      setImpl(DeleteRoleImpl.class, MySQLDeleteRole.class);
+      setImpl(SetPermissionRulesImpl.class, MySQLSetPermissionRules.class);
+      setImpl(RetrievePermissionRulesImpl.class, MySQLRetrievePermissionRules.class);
+      setImpl(UpdateUserRolesImpl.class, MySQLUpdateUserRoles.class);
+      setImpl(InsertLogRecordImpl.class, MySQLInsertLogRecord.class);
+      setImpl(RetrieveLogRecordImpl.class, MySQLRetrieveLogRecord.class);
+      setImpl(SetQueryTemplateDefinitionImpl.class, MySQLSetQueryTemplateDefinition.class);
+      setImpl(
+          RetrieveQueryTemplateDefinitionImpl.class, MySQLRetrieveQueryTemplateDefinition.class);
+      setImpl(InsertEntityDatatypeImpl.class, MySQLInsertEntityDatatype.class);
+      setImpl(RetrieveVersionHistoryImpl.class, MySQLRetrieveVersionHistory.class);
+      setImpl(SetFileChecksumImpl.class, MySQLSetFileChecksum.class);
+    }
+  }
+
+  /**
+   * Execute this BackendTransaction, using the implementation given as an argument.
+   *
+   * <p>The implementation's benchmark is set to the corresponding sub-benchmark of this object's
+   * benchmark.
+   *
+   * @param t This BackendTransaction's execute() method will be called.
+   * @return The BackendTransaction which was passed as an argument.
+   */
+  protected <K extends BackendTransaction> K execute(final K t) {
+    assert t != this;
+    this.undoHandler.append(t);
+    t.setAccess(this.access);
+    if (benchmark != null) {
+      t.setTransactionBenchmark(benchmark.getBenchmark(t.getClass()));
+    }
+    final long t1 = System.currentTimeMillis();
+    t.execute();
+    final long t2 = System.currentTimeMillis();
+    this.addMeasurement(t, t2 - t1);
+    return t;
+  }
+
+  public static <K extends BackendTransactionImpl, L extends K> void setImpl(
+      final Class<K> k, final Class<L> l) {
+    impl.put(k, l);
+  }
+
+  public void setAccess(final Access access) {
+    this.access = access;
+  }
+
+  @SuppressWarnings("unchecked")
+  protected <T extends BackendTransactionImpl> T getImplementation(final Class<T> clz) {
+    init();
+    try {
+      Class<?> implclz = impl.get(clz);
+      final T ret = (T) implclz.getConstructor(Access.class).newInstance(this.access);
+      if (ret instanceof Undoable) {
+        this.undoHandler.append((Undoable) ret);
+      }
+      if (benchmark != null) {
+        ret.setTransactionBenchmark(benchmark.getBenchmark(ret.getClass()));
+      }
+      return ret;
+    } catch (final Exception e) {
+      throw new TransactionException(e);
+    }
+  }
+
+  protected UndoHandler getUndoHandler() {
+    return this.undoHandler;
+  }
+
+  @Override
+  public final void undo() {
+    this.undoHandler.undo();
+  }
+
+  @Override
+  public final void cleanUp() {
+    this.undoHandler.cleanUp();
+  }
+
+  boolean useCache() {
+    return this.access.useCache();
+  }
+
+  @Override
+  public String toString() {
+    return this.getClass().getSimpleName();
+  }
+
+  /** Set the benchmark object for this AbstractTransaction. */
+  public void setTransactionBenchmark(TransactionBenchmark b) {
+    this.benchmark = b;
+  }
+
+  public void addMeasurement(Object o, long time) {
+    if (this.benchmark != null) {
+      this.benchmark.addMeasurement(o, time);
+    }
+  }
+}
diff --git a/src/main/java/caosdb/server/database/CacheableBackendTransaction.java b/src/main/java/org/caosdb/server/database/CacheableBackendTransaction.java
similarity index 96%
rename from src/main/java/caosdb/server/database/CacheableBackendTransaction.java
rename to src/main/java/org/caosdb/server/database/CacheableBackendTransaction.java
index 0131b740d81cbd41d1b9263c5f42029e1af4539c..621fa31cd1603633fdb259591d29abf00c6312a4 100644
--- a/src/main/java/caosdb/server/database/CacheableBackendTransaction.java
+++ b/src/main/java/org/caosdb/server/database/CacheableBackendTransaction.java
@@ -22,11 +22,11 @@
  *
  * ** end header
  */
-package caosdb.server.database;
+package org.caosdb.server.database;
 
-import caosdb.server.database.exceptions.TransactionException;
 import java.io.Serializable;
 import org.apache.commons.jcs.access.behavior.ICacheAccess;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public abstract class CacheableBackendTransaction<K, V extends Serializable>
     extends BackendTransaction {
diff --git a/src/main/java/caosdb/server/database/ChainTransaction.java b/src/main/java/org/caosdb/server/database/ChainTransaction.java
similarity index 91%
rename from src/main/java/caosdb/server/database/ChainTransaction.java
rename to src/main/java/org/caosdb/server/database/ChainTransaction.java
index ccbd0e2b6751dbfd83a685ab687d3b0d044a9606..6adee64ade2b4633f33f4b0a5397628d63e05e7c 100644
--- a/src/main/java/caosdb/server/database/ChainTransaction.java
+++ b/src/main/java/org/caosdb/server/database/ChainTransaction.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database;
+package org.caosdb.server.database;
 
-import caosdb.server.database.backend.interfaces.BackendTransactionImpl;
 import java.util.LinkedList;
+import org.caosdb.server.database.backend.interfaces.BackendTransactionImpl;
 
 public class ChainTransaction<T extends BackendTransactionImpl> {
   private final LinkedList<T> chain = new LinkedList<T>();
diff --git a/src/main/java/caosdb/server/database/Database.java b/src/main/java/org/caosdb/server/database/Database.java
similarity index 97%
rename from src/main/java/caosdb/server/database/Database.java
rename to src/main/java/org/caosdb/server/database/Database.java
index d67acdff9d8fbacdbdefdfdeb5013c3838156461..797aadcced181febbc0539975ba1f46d8ee2d9de 100644
--- a/src/main/java/caosdb/server/database/Database.java
+++ b/src/main/java/org/caosdb/server/database/Database.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.database;
+package org.caosdb.server.database;
 
 public class Database {
 
diff --git a/src/main/java/caosdb/server/database/DatabaseMonitor.java b/src/main/java/org/caosdb/server/database/DatabaseMonitor.java
similarity index 90%
rename from src/main/java/caosdb/server/database/DatabaseMonitor.java
rename to src/main/java/org/caosdb/server/database/DatabaseMonitor.java
index 6efd782f0f02eef34fbed97c433a70464c9e4322..ed98d1d6d88e3e797ce022c0880640d9a9128a0d 100644
--- a/src/main/java/caosdb/server/database/DatabaseMonitor.java
+++ b/src/main/java/org/caosdb/server/database/DatabaseMonitor.java
@@ -20,26 +20,26 @@
  *
  * ** end header
  */
-package caosdb.server.database;
-
-import caosdb.server.database.access.Access;
-import caosdb.server.database.access.AccessControlAccess;
-import caosdb.server.database.access.InfoAccess;
-import caosdb.server.database.access.InitAccess;
-import caosdb.server.database.access.TransactionAccess;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.transaction.AccessControlTransaction;
-import caosdb.server.transaction.TransactionInterface;
-import caosdb.server.transaction.WriteTransaction;
-import caosdb.server.utils.Info;
-import caosdb.server.utils.Initialization;
-import caosdb.server.utils.Observable;
-import caosdb.server.utils.Observer;
-import caosdb.server.utils.Releasable;
+package org.caosdb.server.database;
+
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.locks.ReentrantLock;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.access.AccessControlAccess;
+import org.caosdb.server.database.access.InfoAccess;
+import org.caosdb.server.database.access.InitAccess;
+import org.caosdb.server.database.access.TransactionAccess;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.transaction.AccessControlTransaction;
+import org.caosdb.server.transaction.TransactionInterface;
+import org.caosdb.server.transaction.WriteTransaction;
+import org.caosdb.server.utils.Info;
+import org.caosdb.server.utils.Initialization;
+import org.caosdb.server.utils.Observable;
+import org.caosdb.server.utils.Observer;
+import org.caosdb.server.utils.Releasable;
 
 /**
  * Acquire and release weak access. DatabaseMonitor uses this class for managing access to entities
@@ -53,7 +53,7 @@ import java.util.concurrent.locks.ReentrantLock;
  */
 class WeakAccessSemaphore extends Semaphore implements Observable, Releasable {
 
-  private static final long serialVersionUID = 4999687434687029136L;
+  private static final long serialVersionUID = -262226321839837533L;
   private int acquired = 0; // how many thread have weak access
   Semaphore block = new Semaphore(1, true);
 
@@ -154,7 +154,7 @@ class WeakAccessSemaphore extends Semaphore implements Observable, Releasable {
  */
 class StrongAccessLock extends ReentrantLock implements Observable, Releasable {
 
-  private static final long serialVersionUID = 1918369324107546576L;
+  private static final long serialVersionUID = -262226321839837533L;
   private WeakAccessSemaphore wa = null;
   private Thread allocator = null;
   private Thread acquirer = null;
diff --git a/src/main/java/caosdb/server/database/DatabaseUtils.java b/src/main/java/org/caosdb/server/database/DatabaseUtils.java
similarity index 93%
rename from src/main/java/caosdb/server/database/DatabaseUtils.java
rename to src/main/java/org/caosdb/server/database/DatabaseUtils.java
index 9edc0347abf8b63de0ce76ead06fb1f6883332e1..c985c1b9bc62270ccf6c5904b1c7f0147bb20de0 100644
--- a/src/main/java/caosdb/server/database/DatabaseUtils.java
+++ b/src/main/java/org/caosdb/server/database/DatabaseUtils.java
@@ -20,30 +20,30 @@
  *
  * ** end header
  */
-package caosdb.server.database;
+package org.caosdb.server.database;
 
-import caosdb.server.database.proto.FlatProperty;
-import caosdb.server.database.proto.ProtoProperty;
-import caosdb.server.database.proto.SparseEntity;
-import caosdb.server.database.proto.VerySparseEntity;
-import caosdb.server.datatype.AbstractCollectionDatatype;
-import caosdb.server.datatype.CollectionValue;
-import caosdb.server.datatype.IndexedSingleValue;
-import caosdb.server.datatype.ReferenceValue;
-import caosdb.server.datatype.SingleValue;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.Role;
-import caosdb.server.entity.StatementStatus;
-import caosdb.server.entity.wrapper.Domain;
-import caosdb.server.entity.wrapper.Parent;
-import caosdb.server.entity.wrapper.Property;
 import com.google.common.base.Objects;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import org.caosdb.server.database.proto.FlatProperty;
+import org.caosdb.server.database.proto.ProtoProperty;
+import org.caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.database.proto.VerySparseEntity;
+import org.caosdb.server.datatype.AbstractCollectionDatatype;
+import org.caosdb.server.datatype.CollectionValue;
+import org.caosdb.server.datatype.IndexedSingleValue;
+import org.caosdb.server.datatype.ReferenceValue;
+import org.caosdb.server.datatype.SingleValue;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.entity.StatementStatus;
+import org.caosdb.server.entity.wrapper.Domain;
+import org.caosdb.server.entity.wrapper.Parent;
+import org.caosdb.server.entity.wrapper.Property;
 
 public class DatabaseUtils {
 
diff --git a/src/main/java/caosdb/server/database/access/AbstractAccess.java b/src/main/java/org/caosdb/server/database/access/AbstractAccess.java
similarity index 92%
rename from src/main/java/caosdb/server/database/access/AbstractAccess.java
rename to src/main/java/org/caosdb/server/database/access/AbstractAccess.java
index 8013c609577236761123c0902c35606be0017567..9d00a876e8db21446b88b6ab00dfeb12ee043c0d 100644
--- a/src/main/java/caosdb/server/database/access/AbstractAccess.java
+++ b/src/main/java/org/caosdb/server/database/access/AbstractAccess.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.access;
+package org.caosdb.server.database.access;
 
-import caosdb.server.database.misc.DBHelper;
-import caosdb.server.database.misc.RollBackHandler;
-import caosdb.server.transaction.TransactionInterface;
 import java.util.HashMap;
+import org.caosdb.server.database.misc.DBHelper;
+import org.caosdb.server.database.misc.RollBackHandler;
+import org.caosdb.server.transaction.TransactionInterface;
 
 public abstract class AbstractAccess<T extends TransactionInterface> implements Access {
 
diff --git a/src/main/java/caosdb/server/database/access/Access.java b/src/main/java/org/caosdb/server/database/access/Access.java
similarity index 92%
rename from src/main/java/caosdb/server/database/access/Access.java
rename to src/main/java/org/caosdb/server/database/access/Access.java
index 0114f6723ab283f7f14094954e26001535203975..228e8e004aea7454a287bccd898794c2bb4f1b9c 100644
--- a/src/main/java/caosdb/server/database/access/Access.java
+++ b/src/main/java/org/caosdb/server/database/access/Access.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.database.access;
+package org.caosdb.server.database.access;
 
-import caosdb.server.database.misc.DBHelper;
+import org.caosdb.server.database.misc.DBHelper;
 
 public interface Access {
 
diff --git a/src/main/java/caosdb/server/database/access/AccessControlAccess.java b/src/main/java/org/caosdb/server/database/access/AccessControlAccess.java
similarity index 91%
rename from src/main/java/caosdb/server/database/access/AccessControlAccess.java
rename to src/main/java/org/caosdb/server/database/access/AccessControlAccess.java
index 14e32a3d62d92077844779d07f5b282a74b5b0aa..450f0c61310e5706c450ad793c7485073393d4c9 100644
--- a/src/main/java/caosdb/server/database/access/AccessControlAccess.java
+++ b/src/main/java/org/caosdb/server/database/access/AccessControlAccess.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.database.access;
+package org.caosdb.server.database.access;
 
-import caosdb.server.transaction.AccessControlTransaction;
+import org.caosdb.server.transaction.AccessControlTransaction;
 
 public class AccessControlAccess extends AbstractAccess<AccessControlTransaction> {
 
diff --git a/src/main/java/caosdb/server/database/access/InfoAccess.java b/src/main/java/org/caosdb/server/database/access/InfoAccess.java
similarity index 93%
rename from src/main/java/caosdb/server/database/access/InfoAccess.java
rename to src/main/java/org/caosdb/server/database/access/InfoAccess.java
index e26d7de1b868ca80d2cd1fd77f6ec06f2ba58bd9..3d66e67a2d243d753c98e6934688eb34e1e94c0e 100644
--- a/src/main/java/caosdb/server/database/access/InfoAccess.java
+++ b/src/main/java/org/caosdb/server/database/access/InfoAccess.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.access;
+package org.caosdb.server.database.access;
 
-import caosdb.server.utils.Info;
 import java.sql.SQLException;
+import org.caosdb.server.utils.Info;
 
 public class InfoAccess extends AbstractAccess<Info> {
 
diff --git a/src/main/java/caosdb/server/database/access/InitAccess.java b/src/main/java/org/caosdb/server/database/access/InitAccess.java
similarity index 92%
rename from src/main/java/caosdb/server/database/access/InitAccess.java
rename to src/main/java/org/caosdb/server/database/access/InitAccess.java
index b5b24d835f34ceaeb7b042b3e813859b71807133..1a6108cc62d4dd421d40128a5346ee2d216f6b9c 100644
--- a/src/main/java/caosdb/server/database/access/InitAccess.java
+++ b/src/main/java/org/caosdb/server/database/access/InitAccess.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.access;
+package org.caosdb.server.database.access;
 
-import caosdb.server.utils.Initialization;
 import java.sql.SQLException;
+import org.caosdb.server.utils.Initialization;
 
 public class InitAccess extends AbstractAccess<Initialization> {
 
diff --git a/src/main/java/caosdb/server/database/access/TransactionAccess.java b/src/main/java/org/caosdb/server/database/access/TransactionAccess.java
similarity index 89%
rename from src/main/java/caosdb/server/database/access/TransactionAccess.java
rename to src/main/java/org/caosdb/server/database/access/TransactionAccess.java
index 84f422afa9e13f532a33439a7eddd9dc02644b24..406d0fb6577f89c6d1c49627802e39a4514f6cfd 100644
--- a/src/main/java/caosdb/server/database/access/TransactionAccess.java
+++ b/src/main/java/org/caosdb/server/database/access/TransactionAccess.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.access;
+package org.caosdb.server.database.access;
 
-import caosdb.server.transaction.TransactionInterface;
-import caosdb.server.utils.Releasable;
+import org.caosdb.server.transaction.TransactionInterface;
+import org.caosdb.server.utils.Releasable;
 
 public class TransactionAccess extends AbstractAccess<TransactionInterface> {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/ConnectionException.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/ConnectionException.java
similarity index 88%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/ConnectionException.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/ConnectionException.java
index 6e688f9ad5993f352f9de6047ef2a20ec3d8c3c7..83c334ac21fb929606144f84960966acde59df42 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/ConnectionException.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/ConnectionException.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
 public class ConnectionException extends Exception {
-  private static final long serialVersionUID = 3581951559636079126L;
+  private static final long serialVersionUID = 6119424337789255870L;
 
   public ConnectionException(final Throwable t) {
     super(t);
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/DatabaseConnectionPool.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/DatabaseConnectionPool.java
similarity index 97%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/DatabaseConnectionPool.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/DatabaseConnectionPool.java
index fc17dd1066cfa57660d44dbb6a521d3177e5fc72..f77f810a93428a66247b6559e2bef2ac344cd5d9 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/DatabaseConnectionPool.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/DatabaseConnectionPool.java
@@ -20,11 +20,8 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
 import com.google.common.base.Objects;
 import java.sql.CallableStatement;
 import java.sql.Connection;
@@ -32,6 +29,9 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import snaq.db.ConnectionPool;
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteEntityProperties.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteEntityProperties.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteEntityProperties.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteEntityProperties.java
index 989291a6342dcd5d7319cb3963127587d9cac5f8..28285ae9a2890e6fc6d69b63e620810867035f50 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteEntityProperties.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteEntityProperties.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.DeleteEntityPropertiesImpl;
-import caosdb.server.database.exceptions.IntegrityException;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.SQLIntegrityConstraintViolationException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.DeleteEntityPropertiesImpl;
+import org.caosdb.server.database.exceptions.IntegrityException;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLDeleteEntityProperties extends MySQLTransaction
     implements DeleteEntityPropertiesImpl {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeletePassword.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeletePassword.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeletePassword.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeletePassword.java
index da3c083a8b21e56338436b4156ae8f33eb3bda01..2569226e271b55a1785da7b548eeae93fbd4c262 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeletePassword.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeletePassword.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.DeletePasswordImpl;
-import caosdb.server.database.exceptions.IntegrityException;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.sql.SQLIntegrityConstraintViolationException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.DeletePasswordImpl;
+import org.caosdb.server.database.exceptions.IntegrityException;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLDeletePassword extends MySQLTransaction implements DeletePasswordImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteRole.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteRole.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteRole.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteRole.java
index 6e5c278cf0581936285f1346508682b7304b17cb..8fd8d35fda6b99f7d79b245a10ace4ed9521e0ce 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteRole.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteRole.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.DeleteRoleImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.DeleteRoleImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLDeleteRole extends MySQLTransaction implements DeleteRoleImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteSparseEntity.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteSparseEntity.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteSparseEntity.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteSparseEntity.java
index 8293754dcacef49b5ef28bdaba38632ed0771700..9f504f3f2690a6415179761b5a647b2a13bb95d0 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteSparseEntity.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteSparseEntity.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.DeleteSparseEntityImpl;
-import caosdb.server.database.exceptions.IntegrityException;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.SQLIntegrityConstraintViolationException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.DeleteSparseEntityImpl;
+import org.caosdb.server.database.exceptions.IntegrityException;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLDeleteSparseEntity extends MySQLTransaction implements DeleteSparseEntityImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteUser.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteUser.java
similarity index 88%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteUser.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteUser.java
index c037b390fcbd116e6cde1dce7bff654e84c9c7e5..88b20e4a0186844cecce2cc2f5fd14423f5bf4c1 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteUser.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLDeleteUser.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.DeleteUserImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.DeleteUserImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLDeleteUser extends MySQLTransaction implements DeleteUserImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetAllNames.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetAllNames.java
similarity index 80%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetAllNames.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetAllNames.java
index 060cf9b8a77ad15e430b34f06e2b17737dd27cc2..09cae6886c2daa94d93ab76539a3e1343f5aecbe 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetAllNames.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetAllNames.java
@@ -1,15 +1,15 @@
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.DatabaseUtils;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.GetAllNamesImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.List;
+import org.caosdb.server.database.DatabaseUtils;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.GetAllNamesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
 
 /** Retrieve name, role and acl of all entities from the MySQL backend. */
 public class MySQLGetAllNames extends MySQLTransaction implements GetAllNamesImpl {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetChildren.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetChildren.java
similarity index 88%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetChildren.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetChildren.java
index b230efae23cdc7769678a09f008c11cc5dd4851b..d63de2d530d0f32bf3d068e7d1351cfb9609ce79 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetChildren.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetChildren.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.GetChildrenImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.util.ArrayList;
 import java.util.List;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.GetChildrenImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLGetChildren extends MySQLTransaction implements GetChildrenImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetDependentEntities.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetDependentEntities.java
similarity index 87%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetDependentEntities.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetDependentEntities.java
index 2ef8208363d7ad2681f8b0690c09f863723f8f2f..7875ced0d89fd11ed14cf668bb9110f643c053c9 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetDependentEntities.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetDependentEntities.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.GetDependentEntitiesImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.util.ArrayList;
 import java.util.List;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.GetDependentEntitiesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLGetDependentEntities extends MySQLTransaction
     implements GetDependentEntitiesImpl {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetFileRecordByPath.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetFileRecordByPath.java
similarity index 87%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetFileRecordByPath.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetFileRecordByPath.java
index b929c923ba44c50d02fd4afd78645c20748c225c..9b147d289b337f63dd359ce604719d9e00a149be 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetFileRecordByPath.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetFileRecordByPath.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.GetFileRecordByPathImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.GetFileRecordByPathImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
 
 public class MySQLGetFileRecordByPath extends MySQLTransaction implements GetFileRecordByPathImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetIDByName.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetIDByName.java
similarity index 91%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetIDByName.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetIDByName.java
index e9797640d98b6e9f2afb2b95ff3ea5103b623070..5a546ae1ae16c606a9b367cce94e1ceddf073239 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetIDByName.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetIDByName.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.GetIDByNameImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.util.ArrayList;
 import java.util.List;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.GetIDByNameImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLGetIDByName extends MySQLTransaction implements GetIDByNameImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetInfo.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetInfo.java
similarity index 87%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetInfo.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetInfo.java
index 5032f1855aab3d68d7b6670fb794d6e9dccc9336..2e7a110c6f42ffe2b489525509d742810119e187 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetInfo.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetInfo.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.GetInfoImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoInfo;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.GetInfoImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoInfo;
 
 public class MySQLGetInfo extends MySQLTransaction implements GetInfoImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetUpdateableChecksums.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetUpdateableChecksums.java
similarity index 87%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetUpdateableChecksums.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetUpdateableChecksums.java
index 534c6ad25df267395770db07ababa6dd9004ef04..cf4e0aa7816b7f119f610ad7a602abfbe01432e4 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLGetUpdateableChecksums.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetUpdateableChecksums.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.GetUpdateableChecksumsImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.GetUpdateableChecksumsImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLGetUpdateableChecksums extends MySQLTransaction
     implements GetUpdateableChecksumsImpl {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLHelper.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLHelper.java
similarity index 94%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLHelper.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLHelper.java
index b443c54507e415ed4171fcf0ac99c3da762fb506..2ad36235bd16e1cecde9908d334f643ebc127e54 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLHelper.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLHelper.java
@@ -22,13 +22,8 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.accessControl.Principal;
-import caosdb.server.database.misc.DBHelper;
-import caosdb.server.transaction.ChecksumUpdater;
-import caosdb.server.transaction.TransactionInterface;
-import caosdb.server.transaction.WriteTransaction;
 import java.io.UnsupportedEncodingException;
 import java.sql.CallableStatement;
 import java.sql.Connection;
@@ -36,6 +31,11 @@ import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.HashMap;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.database.misc.DBHelper;
+import org.caosdb.server.transaction.ChecksumUpdater;
+import org.caosdb.server.transaction.TransactionInterface;
+import org.caosdb.server.transaction.WriteTransaction;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertEntityDatatype.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertEntityDatatype.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertEntityDatatype.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertEntityDatatype.java
index 47671864570c1a041b8b164a0f045fbf70b47987..c4cb7cf98e5da51f98d71b4c5f6fc91e6961892e 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertEntityDatatype.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertEntityDatatype.java
@@ -1,12 +1,12 @@
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.InsertEntityDatatypeImpl;
-import caosdb.server.database.exceptions.IntegrityException;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
 import java.sql.PreparedStatement;
 import java.sql.SQLIntegrityConstraintViolationException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.InsertEntityDatatypeImpl;
+import org.caosdb.server.database.exceptions.IntegrityException;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
 
 public class MySQLInsertEntityDatatype extends MySQLTransaction
     implements InsertEntityDatatypeImpl {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertEntityProperties.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertEntityProperties.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertEntityProperties.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertEntityProperties.java
index cbc01eb3572b2b8dad47e54eea3e430ac853ecd1..d4243d7712cc3982221e1e815cdbdaaa4561a205 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertEntityProperties.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertEntityProperties.java
@@ -20,19 +20,19 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
 import static java.sql.Types.BIGINT;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.InsertEntityPropertiesImpl;
-import caosdb.server.database.exceptions.IntegrityException;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.FlatProperty;
-import caosdb.server.datatype.AbstractDatatype.Table;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.sql.SQLIntegrityConstraintViolationException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.InsertEntityPropertiesImpl;
+import org.caosdb.server.database.exceptions.IntegrityException;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.FlatProperty;
+import org.caosdb.server.datatype.AbstractDatatype.Table;
 
 public class MySQLInsertEntityProperties extends MySQLTransaction
     implements InsertEntityPropertiesImpl {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertLinCon.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertLinCon.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertLinCon.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertLinCon.java
index e286212c1d2e365ecab24452be53a602e6f2c21e..b8ea787292e375fcda8b99caa4464bfdf32c3fd7 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertLinCon.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertLinCon.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.InsertLinConImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.LinCon;
 import java.sql.PreparedStatement;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.InsertLinConImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.LinCon;
 
 public class MySQLInsertLinCon extends MySQLTransaction implements InsertLinConImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertLogRecord.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertLogRecord.java
similarity index 88%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertLogRecord.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertLogRecord.java
index 054d13e575e9d4d45329f8626756934ac2cf50cf..6807808d18fb6ba9ce0a4ed9287ea21612cc2d2c 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertLogRecord.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertLogRecord.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.InsertLogRecordImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.util.List;
 import java.util.logging.LogRecord;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.InsertLogRecordImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLInsertLogRecord extends MySQLTransaction implements InsertLogRecordImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertParents.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertParents.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertParents.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertParents.java
index 87493cebfc2c6b7043427be2b490d5203f383ec9..a37bf066aa1573e67390f88bfe18bbed0d6dbb3b 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertParents.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertParents.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.InsertParentsImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.InsertParentsImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLInsertParents extends MySQLTransaction implements InsertParentsImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertRole.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertRole.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertRole.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertRole.java
index 796270973abeea2d247c6d12e12b7bfdcc41a622..66f5a888dd8aa7f429dbd1698ff8245e3efb021a 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertRole.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertRole.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.accessControl.Role;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.InsertRoleImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
+import org.caosdb.server.accessControl.Role;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.InsertRoleImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLInsertRole extends MySQLTransaction implements InsertRoleImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertSparseEntity.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertSparseEntity.java
similarity index 87%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertSparseEntity.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertSparseEntity.java
index 97cfde68b1b9097152aca3ea68705e6cdfddfaad..1f1f32c69a260d374ea930ba4e1be63e34cf9ca9 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertSparseEntity.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertSparseEntity.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.DatabaseUtils;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.InsertSparseEntityImpl;
-import caosdb.server.database.exceptions.IntegrityException;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLIntegrityConstraintViolationException;
 import java.sql.Types;
+import org.caosdb.server.database.DatabaseUtils;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.InsertSparseEntityImpl;
+import org.caosdb.server.database.exceptions.IntegrityException;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
 
 public class MySQLInsertSparseEntity extends MySQLTransaction implements InsertSparseEntityImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertTransactionHistory.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertTransactionHistory.java
similarity index 88%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertTransactionHistory.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertTransactionHistory.java
index f3563ce0881707677d9095b5787f99af9f7813d9..27b0f8a156ae6b5c936772bf03d0d8ed8da4e42e 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLInsertTransactionHistory.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLInsertTransactionHistory.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.InsertTransactionHistoryImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.InsertTransactionHistoryImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLInsertTransactionHistory extends MySQLTransaction
     implements InsertTransactionHistoryImpl {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLIsSubType.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLIsSubType.java
similarity index 88%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLIsSubType.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLIsSubType.java
index 5a9b1a3e8b06d003229b3265c2777d046abcb6ef..bb847de7bf86e6e8a49414a52933a7bb87cf8d60 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLIsSubType.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLIsSubType.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.IsSubTypeImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.IsSubTypeImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLIsSubType extends MySQLTransaction implements IsSubTypeImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRegisterSubDomain.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRegisterSubDomain.java
similarity index 88%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRegisterSubDomain.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRegisterSubDomain.java
index 055177a879d5ebad2e63cc3b77d56864c7bda437..ca4997281c76ec18e54dd1c165ca082eee5e0893 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRegisterSubDomain.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRegisterSubDomain.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RegisterSubDomainImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayDeque;
 import java.util.Deque;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RegisterSubDomainImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLRegisterSubDomain extends MySQLTransaction implements RegisterSubDomainImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveAll.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveAll.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveAll.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveAll.java
index 7ae921315f55e94994a2868d5b0a9b8d8406542b..ec0c0c1b0a067d529ecb72309d7fe83a8b37f819 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveAll.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveAll.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrieveAllImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.Role;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.List;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrieveAllImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.Role;
 
 public class MySQLRetrieveAll extends MySQLTransaction implements RetrieveAllImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveAllUncheckedFiles.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveAllUncheckedFiles.java
similarity index 91%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveAllUncheckedFiles.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveAllUncheckedFiles.java
index 0e557da58074729b9c3635453dd4b84b657599bb..09a4e7c2edabea49617224fdb9159116f2cd742b 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveAllUncheckedFiles.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveAllUncheckedFiles.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrieveAllUncheckedFilesImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.Iterator;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrieveAllUncheckedFilesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
 
 public class MySQLRetrieveAllUncheckedFiles extends MySQLTransaction
     implements RetrieveAllUncheckedFilesImpl {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveDatatypes.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveDatatypes.java
similarity index 87%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveDatatypes.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveDatatypes.java
index a8e12672cf21592c23d8cea0aa22629b4b68855c..e085f0510a5c0a95f1e0a3bc2f702b4e345d706e 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveDatatypes.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveDatatypes.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.DatabaseUtils;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrieveDatatypesImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.VerySparseEntity;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
+import org.caosdb.server.database.DatabaseUtils;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrieveDatatypesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.VerySparseEntity;
 
 public class MySQLRetrieveDatatypes extends MySQLTransaction implements RetrieveDatatypesImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveLogRecord.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveLogRecord.java
similarity index 93%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveLogRecord.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveLogRecord.java
index b675b967dda169ad57c8e721dbb82d10eb0563d4..bba36d2eb9de29fee40f023b9b97602d5b94b8a3 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveLogRecord.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveLogRecord.java
@@ -20,11 +20,8 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrieveLogRecordImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -35,6 +32,9 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.LogRecord;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrieveLogRecordImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLRetrieveLogRecord extends MySQLTransaction implements RetrieveLogRecordImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveParents.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveParents.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveParents.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveParents.java
index 721ba566ed389732456342aab78691c171b33922..7b8c0d48db3c84183c16b449822065e0c8d798b9 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveParents.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveParents.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.DatabaseUtils;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrieveParentsImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.VerySparseEntity;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Types;
 import java.util.ArrayList;
+import org.caosdb.server.database.DatabaseUtils;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrieveParentsImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.VerySparseEntity;
 
 public class MySQLRetrieveParents extends MySQLTransaction implements RetrieveParentsImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrievePasswordValidator.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrievePasswordValidator.java
similarity index 82%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrievePasswordValidator.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrievePasswordValidator.java
index 9b951cba69f9b637e333bfb93f3459fc9a0366a4..1ff7dd7afd0b468a90d9e3b82faca1adc5cae84f 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrievePasswordValidator.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrievePasswordValidator.java
@@ -20,19 +20,19 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import static caosdb.server.database.DatabaseUtils.bytes2UTF8;
+import static org.caosdb.server.database.DatabaseUtils.bytes2UTF8;
 
-import caosdb.server.accessControl.CredentialsValidator;
-import caosdb.server.accessControl.HashPasswordValidator;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrievePasswordValidatorImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import org.caosdb.server.accessControl.CredentialsValidator;
+import org.caosdb.server.accessControl.HashPasswordValidator;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrievePasswordValidatorImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLRetrievePasswordValidator extends MySQLTransaction
     implements RetrievePasswordValidatorImpl {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrievePermissionRules.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrievePermissionRules.java
similarity index 88%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrievePermissionRules.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrievePermissionRules.java
index 7428157e45156e18e0ce1819f731dd4729faee99..40767db34c2ba318637c87ebc7b21ba278c2c574 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrievePermissionRules.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrievePermissionRules.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrievePermissionRulesImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.permissions.PermissionRule;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.HashSet;
 import java.util.Map;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrievePermissionRulesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.permissions.PermissionRule;
 import org.eclipse.jetty.util.ajax.JSON;
 
 public class MySQLRetrievePermissionRules extends MySQLTransaction
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveProperties.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveProperties.java
similarity index 91%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveProperties.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveProperties.java
index 9b6704c4cb3e6395c5b8239a3aefc34bb818e937..39de8692a48fb57b9ad22d0054bcd5bc3541e632 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveProperties.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveProperties.java
@@ -20,20 +20,20 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
-
-import caosdb.server.database.DatabaseUtils;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrievePropertiesImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.FlatProperty;
-import caosdb.server.database.proto.ProtoProperty;
+package org.caosdb.server.database.backend.implementation.MySQL;
+
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Types;
 import java.util.ArrayList;
 import java.util.List;
+import org.caosdb.server.database.DatabaseUtils;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrievePropertiesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.FlatProperty;
+import org.caosdb.server.database.proto.ProtoProperty;
 
 public class MySQLRetrieveProperties extends MySQLTransaction implements RetrievePropertiesImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveQueryTemplateDefinition.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveQueryTemplateDefinition.java
similarity index 88%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveQueryTemplateDefinition.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveQueryTemplateDefinition.java
index c6d88ec9f8fca1651318456161ed2c0347a47f21..fd0efb8e8756cfb7bec596382356e1ea951ad484 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveQueryTemplateDefinition.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveQueryTemplateDefinition.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrieveQueryTemplateDefinitionImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Types;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrieveQueryTemplateDefinitionImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLRetrieveQueryTemplateDefinition extends MySQLTransaction
     implements RetrieveQueryTemplateDefinitionImpl {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveRole.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveRole.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveRole.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveRole.java
index 04cad3e9ad677e4e1d473ead7af06858b0e2a429..f0219040c47bc09fe2052d8e95a3ea83637e6aae 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveRole.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveRole.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.accessControl.Role;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import org.caosdb.server.accessControl.Role;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLRetrieveRole extends MySQLTransaction implements RetrieveRoleImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveSparseEntity.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveSparseEntity.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveSparseEntity.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveSparseEntity.java
index 097961974b0c599480e8186f170665838e7d046e..3775c1dd4f0b87eb36f43084776d58c0f14f5f80 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveSparseEntity.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveSparseEntity.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.DatabaseUtils;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrieveSparseEntityImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Types;
+import org.caosdb.server.database.DatabaseUtils;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrieveSparseEntityImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
 
 /**
  * Retrieve a single SparseEntity by id.
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveTransactionHistory.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveTransactionHistory.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveTransactionHistory.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveTransactionHistory.java
index 43785187d6293c601f1d5b49ac12a7980df218da..3273f49aa85776c4fd323ed4c027f4d1fcd3fbb0 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveTransactionHistory.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveTransactionHistory.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import static caosdb.server.database.DatabaseUtils.bytes2UTF8;
+import static org.caosdb.server.database.DatabaseUtils.bytes2UTF8;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrieveTransactionHistoryImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoTransactionLogMessage;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrieveTransactionHistoryImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoTransactionLogMessage;
 
 public class MySQLRetrieveTransactionHistory extends MySQLTransaction
     implements RetrieveTransactionHistoryImpl {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveUser.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveUser.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveUser.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveUser.java
index 97ef5084da95ccd56d760ae4e04aacab60c97665..bde1878db5d49b2da201b7d589c1ee8b8d73f656 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveUser.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveUser.java
@@ -20,20 +20,20 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import static caosdb.server.database.DatabaseUtils.bytes2UTF8;
+import static org.caosdb.server.database.DatabaseUtils.bytes2UTF8;
 
-import caosdb.server.accessControl.Principal;
-import caosdb.server.accessControl.UserStatus;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrieveUserImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoUser;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.HashSet;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.accessControl.UserStatus;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrieveUserImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoUser;
 
 public class MySQLRetrieveUser extends MySQLTransaction implements RetrieveUserImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveVersionHistory.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveVersionHistory.java
similarity index 87%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveVersionHistory.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveVersionHistory.java
index 22ac0c2e30c0f48fbc884f40593bac2dc45d7b7d..a3c87ae6e97d3b26a99126b61d1d29db1ef6206a 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveVersionHistory.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRetrieveVersionHistory.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.DatabaseUtils;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrieveVersionHistoryImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.VersionHistoryItem;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.HashMap;
 import java.util.LinkedList;
+import org.caosdb.server.database.DatabaseUtils;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrieveVersionHistoryImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.VersionHistoryItem;
 
 /**
  * Transaction to retrieve all versions of an entity.
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRuleLoader.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRuleLoader.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRuleLoader.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRuleLoader.java
index a240a7dec99e881c73912e638bc13314c10b68af..525c3973e5267d336727e723a383aff575dd8493 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLRuleLoader.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLRuleLoader.java
@@ -20,19 +20,19 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import static caosdb.server.database.DatabaseUtils.bytes2UTF8;
+import static org.caosdb.server.database.DatabaseUtils.bytes2UTF8;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RuleLoaderImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.Rule;
-import caosdb.server.jobs.core.Mode;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RuleLoaderImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.Rule;
+import org.caosdb.server.jobs.core.Mode;
 
 public class MySQLRuleLoader extends MySQLTransaction implements RuleLoaderImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSetFileCheckedTimestampImpl.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetFileCheckedTimestampImpl.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSetFileCheckedTimestampImpl.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetFileCheckedTimestampImpl.java
index 14214077dfb3fb6ae3e5d589e15e17929810cd3e..fa4c60ad1a688fa13ee8e1f82ee6a8a1649d6d4f 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSetFileCheckedTimestampImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetFileCheckedTimestampImpl.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.SetFileCheckedTimestampImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.SetFileCheckedTimestampImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLSetFileCheckedTimestampImpl extends MySQLTransaction
     implements SetFileCheckedTimestampImpl {
diff --git a/src/main/java/caosdb/server/database/MySQLSetFileChecksum.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetFileChecksum.java
similarity index 64%
rename from src/main/java/caosdb/server/database/MySQLSetFileChecksum.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetFileChecksum.java
index a74843b65c12a49c05d77cb5df180b8b3317c3df..960457cb09d1e68ca64260bb30416c2716edd6fa 100644
--- a/src/main/java/caosdb/server/database/MySQLSetFileChecksum.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetFileChecksum.java
@@ -1,12 +1,10 @@
-package caosdb.server.database;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.database.backend.implementation.MySQL.MySQLTransaction;
-import caosdb.server.database.backend.interfaces.SetFileChecksumImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.SetFileChecksumImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLSetFileChecksum extends MySQLTransaction implements SetFileChecksumImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSetPassword.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetPassword.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSetPassword.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetPassword.java
index cacbdb4dc7d88338691f3f70890a1caeb677d246..9972c3af019f092087158a9f85659af9cdd2b6dc 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSetPassword.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetPassword.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.SetPasswordImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.utils.Utils;
 import java.math.BigInteger;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.security.SecureRandom;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.SetPasswordImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.utils.Utils;
 
 public class MySQLSetPassword extends MySQLTransaction implements SetPasswordImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSetPermissionRules.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetPermissionRules.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSetPermissionRules.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetPermissionRules.java
index c4691e8a01540b7f0557a1c219970d411aa87cae..1569cd494c44eed6ebc083b8e5046ea6649f7ad1 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSetPermissionRules.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetPermissionRules.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.SetPermissionRulesImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.permissions.PermissionRule;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.SetPermissionRulesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.permissions.PermissionRule;
 import org.eclipse.jetty.util.ajax.JSON;
 
 public class MySQLSetPermissionRules extends MySQLTransaction implements SetPermissionRulesImpl {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSetQueryTemplateDefinition.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetQueryTemplateDefinition.java
similarity index 87%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSetQueryTemplateDefinition.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetQueryTemplateDefinition.java
index 29f87a3f399209f440b88bb04d545816fc0958b2..e938010ca56f85d7ad574e51d1b8ef7d88b6c5ad 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSetQueryTemplateDefinition.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSetQueryTemplateDefinition.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.SetQueryTemplateDefinitionImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.SetQueryTemplateDefinitionImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLSetQueryTemplateDefinition extends MySQLTransaction
     implements SetQueryTemplateDefinitionImpl {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSyncStats.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSyncStats.java
similarity index 94%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSyncStats.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSyncStats.java
index 4cae9e41560cfddf05c1d7e015e38b7af419a55f..c874f21b14e15889cb0345303318ecf3504b7c05 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLSyncStats.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLSyncStats.java
@@ -20,12 +20,8 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.SyncStatsImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.utils.ServerStat;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -36,6 +32,10 @@ import java.io.ObjectOutputStream;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.SyncStatsImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.utils.ServerStat;
 
 public class MySQLSyncStats extends MySQLTransaction implements SyncStatsImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLTransaction.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLTransaction.java
similarity index 87%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLTransaction.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLTransaction.java
index f116a136c1b3e1942ddc2400139db3c82210fac8..5b46579efeac34078fa176f03eb94206dc72f0e0 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLTransaction.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLTransaction.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.BackendTransactionImpl;
-import caosdb.server.database.misc.DBHelper;
-import caosdb.server.database.misc.TransactionBenchmark;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.BackendTransactionImpl;
+import org.caosdb.server.database.misc.DBHelper;
+import org.caosdb.server.database.misc.TransactionBenchmark;
 
 public class MySQLTransaction implements BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateSparseEntity.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateSparseEntity.java
similarity index 88%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateSparseEntity.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateSparseEntity.java
index 73c589fade317586cc1b5bfb4b796578f9e819ba..18b59ef9121bd2f488efcb657a3bf158b6e14308 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateSparseEntity.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateSparseEntity.java
@@ -20,19 +20,19 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.DatabaseUtils;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.UpdateSparseEntityImpl;
-import caosdb.server.database.exceptions.IntegrityException;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.SQLIntegrityConstraintViolationException;
 import java.sql.Types;
+import org.caosdb.server.database.DatabaseUtils;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.UpdateSparseEntityImpl;
+import org.caosdb.server.database.exceptions.IntegrityException;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
 
 public class MySQLUpdateSparseEntity extends MySQLTransaction implements UpdateSparseEntityImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateUser.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateUser.java
similarity index 88%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateUser.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateUser.java
index 4d35ac31d0ab9ff5fc42ce6ac7da988e283f9899..bd368698956163a8473ead7507aac0ba2b83d552 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateUser.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateUser.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.UpdateUserImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoUser;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.sql.Types;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.UpdateUserImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoUser;
 
 public class MySQLUpdateUser extends MySQLTransaction implements UpdateUserImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateUserRoles.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateUserRoles.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateUserRoles.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateUserRoles.java
index 96b759a3a4e986da177a21e218bbad853b5e0ca5..62cb68bf58fc8269cc365fa167929ff79726499b 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateUserRoles.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLUpdateUserRoles.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.MySQL;
+package org.caosdb.server.database.backend.implementation.MySQL;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.UpdateUserRolesImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.util.HashSet;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.UpdateUserRolesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class MySQLUpdateUserRoles extends MySQLTransaction implements UpdateUserRolesImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemCheckHash.java b/src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemCheckHash.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemCheckHash.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemCheckHash.java
index 84a195b324ff456dde97271c22e3b14c17bf6131..e6b95a9925bbd560b9ccf80cdb6883efc2098f49 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemCheckHash.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemCheckHash.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.UnixFileSystem;
+package org.caosdb.server.database.backend.implementation.UnixFileSystem;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.FileCheckHash;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.Message;
-import caosdb.server.utils.Hasher;
 import java.io.File;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.FileCheckHash;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.utils.Hasher;
 
 public class UnixFileSystemCheckHash extends UnixFileSystemTransaction implements FileCheckHash {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemCheckSize.java b/src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemCheckSize.java
similarity index 82%
rename from src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemCheckSize.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemCheckSize.java
index 019b3925efd9ce22da8c945a3adcd4b586aa0d1a..c695ff58ec9ca0b41f7aaa1ce5513a5ec657d9a6 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemCheckSize.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemCheckSize.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.UnixFileSystem;
+package org.caosdb.server.database.backend.implementation.UnixFileSystem;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.FileCheckSize;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.Message;
 import java.io.File;
 import java.io.IOException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.FileCheckSize;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.Message;
 
 public class UnixFileSystemCheckSize extends UnixFileSystemTransaction implements FileCheckSize {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemFileExists.java b/src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemFileExists.java
similarity index 82%
rename from src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemFileExists.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemFileExists.java
index cc163c7faede75fb216be2c99f532568a36b1f22..908d917c1b858eb7d6da77bfe90fae7e4f6c6289 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemFileExists.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemFileExists.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.UnixFileSystem;
+package org.caosdb.server.database.backend.implementation.UnixFileSystem;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.FileExists;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.Message;
 import java.io.File;
 import java.io.IOException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.FileExists;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.Message;
 
 public class UnixFileSystemFileExists extends UnixFileSystemTransaction implements FileExists {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemFileWasModifiedAfter.java b/src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemFileWasModifiedAfter.java
similarity index 82%
rename from src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemFileWasModifiedAfter.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemFileWasModifiedAfter.java
index 6b98d37d2911e9853caa5c29e05e4392e433d17d..70c97fecd67af94aa153fa6e0c6b0c8154cc936d 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemFileWasModifiedAfter.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemFileWasModifiedAfter.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.UnixFileSystem;
+package org.caosdb.server.database.backend.implementation.UnixFileSystem;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.FileWasModifiedAfter;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.Message;
 import java.io.File;
 import java.io.IOException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.FileWasModifiedAfter;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.Message;
 
 public class UnixFileSystemFileWasModifiedAfter extends UnixFileSystemTransaction
     implements FileWasModifiedAfter {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemGetFileIterator.java b/src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemGetFileIterator.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemGetFileIterator.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemGetFileIterator.java
index 5bd6cd56fa40dc8696a8471e33381f1ab2584639..89c275dd6d1fdd324f86f6cce6de179f795c7915 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemGetFileIterator.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemGetFileIterator.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.UnixFileSystem;
+package org.caosdb.server.database.backend.implementation.UnixFileSystem;
 
-import caosdb.server.FileSystem;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.GetFileIteratorImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.Message;
 import java.io.File;
 import java.util.Arrays;
 import java.util.Iterator;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.GetFileIteratorImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.Message;
 
 public class UnixFileSystemGetFileIterator extends UnixFileSystemTransaction
     implements GetFileIteratorImpl {
diff --git a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemHelper.java b/src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemHelper.java
similarity index 87%
rename from src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemHelper.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemHelper.java
index 5b197f3d4e6268e604aa27447f43a98857a5fec7..260a401fa6609dbfae363023a3ceb8b717bb87c7 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemHelper.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemHelper.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.UnixFileSystem;
+package org.caosdb.server.database.backend.implementation.UnixFileSystem;
 
-import caosdb.server.database.misc.DBHelper;
-import caosdb.server.transaction.TransactionInterface;
+import org.caosdb.server.database.misc.DBHelper;
+import org.caosdb.server.transaction.TransactionInterface;
 
 public class UnixFileSystemHelper implements DBHelper {
 
diff --git a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemTransaction.java b/src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemTransaction.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemTransaction.java
rename to src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemTransaction.java
index 63e87d6a4f968d3d4833111f9ca9875daf18d9cc..ccf137448ee445f86594017ffc28a09d24158bcb 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemTransaction.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemTransaction.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.implementation.UnixFileSystem;
+package org.caosdb.server.database.backend.implementation.UnixFileSystem;
 
-import caosdb.server.FileSystem;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.BackendTransactionImpl;
-import caosdb.server.database.misc.DBHelper;
-import caosdb.server.database.misc.TransactionBenchmark;
-import caosdb.server.entity.Message;
 import java.io.File;
 import java.io.IOException;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.BackendTransactionImpl;
+import org.caosdb.server.database.misc.DBHelper;
+import org.caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.entity.Message;
 
 public abstract class UnixFileSystemTransaction implements BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/BackendTransactionImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/BackendTransactionImpl.java
similarity index 90%
rename from src/main/java/caosdb/server/database/backend/interfaces/BackendTransactionImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/BackendTransactionImpl.java
index d4751f94cda0b0bdea703d5f207527ea756681f3..8a2dbb0cc67776e68cf6dd9a437754f233ae6190 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/BackendTransactionImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/BackendTransactionImpl.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.database.misc.TransactionBenchmark;
 
 public interface BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/DeleteEntityPropertiesImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/DeleteEntityPropertiesImpl.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/interfaces/DeleteEntityPropertiesImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/DeleteEntityPropertiesImpl.java
index d53bb92eaa64dfba603430351489d702d5d10d93..93b7023bf10fd1b035b8d8483bc328cfef5aa5c4 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/DeleteEntityPropertiesImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/DeleteEntityPropertiesImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.utils.Undoable;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.utils.Undoable;
 
 public interface DeleteEntityPropertiesImpl extends BackendTransactionImpl, Undoable {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/DeletePasswordImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/DeletePasswordImpl.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/DeletePasswordImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/DeletePasswordImpl.java
index 9def6b6326203df923a384ac3b58d89df9eda0d5..32c485a97776b0b24efaf32b8719f85b2a770cab 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/DeletePasswordImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/DeletePasswordImpl.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface DeletePasswordImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/DeleteRoleImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/DeleteRoleImpl.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/DeleteRoleImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/DeleteRoleImpl.java
index 230b3c04f4b11eefde2a4335c66a5ebcc1242219..0bd6c5c71921961032fa33741c35210ffb455915 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/DeleteRoleImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/DeleteRoleImpl.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface DeleteRoleImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/DeleteSparseEntityImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/DeleteSparseEntityImpl.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/interfaces/DeleteSparseEntityImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/DeleteSparseEntityImpl.java
index 4c05ac0daabc7a23c2bfa85c9ca115ec85b5b1f9..30ee60609065c0ac02b5b40a143c0643d37b5667 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/DeleteSparseEntityImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/DeleteSparseEntityImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.utils.Undoable;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.utils.Undoable;
 
 public interface DeleteSparseEntityImpl extends BackendTransactionImpl, Undoable {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/DeleteUserImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/DeleteUserImpl.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/DeleteUserImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/DeleteUserImpl.java
index 4f717f738845886d0779d47e19003e64ef323461..3ee0a1e4f7cea5ee00810149b2da589217e8dfe7 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/DeleteUserImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/DeleteUserImpl.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface DeleteUserImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/FileCheckHash.java b/src/main/java/org/caosdb/server/database/backend/interfaces/FileCheckHash.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/interfaces/FileCheckHash.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/FileCheckHash.java
index 11bc5cba2dc606ae02b1627b027a6c266fe43f67..edd0718c41d17f045009c1c84f1fe31260ac225f 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/FileCheckHash.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/FileCheckHash.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.utils.Hasher;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.utils.Hasher;
 
 public interface FileCheckHash extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/FileCheckSize.java b/src/main/java/org/caosdb/server/database/backend/interfaces/FileCheckSize.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/FileCheckSize.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/FileCheckSize.java
index 36baac7422a73068ec9e37cb7636489ce6c4312d..bce3249865e8c9373ee26e59496a568a494b2021 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/FileCheckSize.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/FileCheckSize.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface FileCheckSize extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/FileExists.java b/src/main/java/org/caosdb/server/database/backend/interfaces/FileExists.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/FileExists.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/FileExists.java
index 546b6a9decef489b128813dd944f3c7aa66dc281..9a5ab664547113477a1f3ae0175d7a6f37311d10 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/FileExists.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/FileExists.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface FileExists extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/FileWasModifiedAfter.java b/src/main/java/org/caosdb/server/database/backend/interfaces/FileWasModifiedAfter.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/FileWasModifiedAfter.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/FileWasModifiedAfter.java
index 318a15a48c29f8e479ddb192ec24a7750ca1dbcd..08fccc584e1ae653b478abf22a34d4b57b6c4c89 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/FileWasModifiedAfter.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/FileWasModifiedAfter.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface FileWasModifiedAfter extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/GetAllNamesImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/GetAllNamesImpl.java
similarity index 73%
rename from src/main/java/caosdb/server/database/backend/interfaces/GetAllNamesImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/GetAllNamesImpl.java
index 3a89e579d2713457c72ec2df73e1c1c936d50db2..9ca7a04052eef00c3202fa5b3375b3abe6d7fb54 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/GetAllNamesImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/GetAllNamesImpl.java
@@ -1,7 +1,7 @@
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.proto.SparseEntity;
 import java.util.List;
+import org.caosdb.server.database.proto.SparseEntity;
 
 /**
  * Interface for the retrieval of all known names from the backend.
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/GetChildrenImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/GetChildrenImpl.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/GetChildrenImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/GetChildrenImpl.java
index 7f7f7450934787e7abae2ed3b1dbc27b3501e6fd..a58579feb9de5982a09629dfe018e564c4e62b55 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/GetChildrenImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/GetChildrenImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.List;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface GetChildrenImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/GetDependentEntitiesImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/GetDependentEntitiesImpl.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/GetDependentEntitiesImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/GetDependentEntitiesImpl.java
index 1ed4cf5ffe6ebb5966bd942e6cbd37bacd369f40..ca63fac685ce97f75954b996ba9ee74013ae5b46 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/GetDependentEntitiesImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/GetDependentEntitiesImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.List;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface GetDependentEntitiesImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/GetFileIteratorImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/GetFileIteratorImpl.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/GetFileIteratorImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/GetFileIteratorImpl.java
index 5288689936c67648de98de130c8249f92ec1b8f2..0b7e45707d66c945380a6398dea8f5f1a36cc604 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/GetFileIteratorImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/GetFileIteratorImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.Iterator;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface GetFileIteratorImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/GetFileRecordByPathImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/GetFileRecordByPathImpl.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/interfaces/GetFileRecordByPathImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/GetFileRecordByPathImpl.java
index d0dd185aff415ad8ed156b27e8d22e792b896916..e7f6966709cf34518e37ec42143f1dc8794ed5ff 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/GetFileRecordByPathImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/GetFileRecordByPathImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
 
 public interface GetFileRecordByPathImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/GetIDByNameImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/GetIDByNameImpl.java
similarity index 90%
rename from src/main/java/caosdb/server/database/backend/interfaces/GetIDByNameImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/GetIDByNameImpl.java
index 23a06a1dd4a4388cf43a83ecf237c23f0f9ed482..d788a3570ebd045549420456814786b5e0b15b42 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/GetIDByNameImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/GetIDByNameImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.List;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface GetIDByNameImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/GetInfoImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/GetInfoImpl.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/interfaces/GetInfoImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/GetInfoImpl.java
index 5281242461f39f9449a136ae44f5235b8dc167fa..d2bb1326e591d912a0562664ec2d26c0008827f9 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/GetInfoImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/GetInfoImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoInfo;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoInfo;
 
 public interface GetInfoImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/GetUpdateableChecksumsImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/GetUpdateableChecksumsImpl.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/GetUpdateableChecksumsImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/GetUpdateableChecksumsImpl.java
index d7d3b142474f1e1398f9bc109fefad7b62e1c0c2..53aac4905a331a9f1e5fc71708cef9fdfa20efa5 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/GetUpdateableChecksumsImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/GetUpdateableChecksumsImpl.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface GetUpdateableChecksumsImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/org/caosdb/server/database/backend/interfaces/InsertEntityDatatypeImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertEntityDatatypeImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..6da8d5cf9a7534e58cfbe634ad4594da2b2b466c
--- /dev/null
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertEntityDatatypeImpl.java
@@ -0,0 +1,8 @@
+package org.caosdb.server.database.backend.interfaces;
+
+import org.caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.utils.Undoable;
+
+public interface InsertEntityDatatypeImpl extends BackendTransactionImpl, Undoable {
+  public abstract void execute(SparseEntity entity);
+}
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/InsertEntityPropertiesImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertEntityPropertiesImpl.java
similarity index 80%
rename from src/main/java/caosdb/server/database/backend/interfaces/InsertEntityPropertiesImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/InsertEntityPropertiesImpl.java
index 14c76afaa6cf6372b8b35977b70ce1a18c276464..e45fe9ead23f963c3010577de61be02e7c00042f 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/InsertEntityPropertiesImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertEntityPropertiesImpl.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.FlatProperty;
-import caosdb.server.datatype.AbstractDatatype.Table;
-import caosdb.server.utils.Undoable;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.FlatProperty;
+import org.caosdb.server.datatype.AbstractDatatype.Table;
+import org.caosdb.server.utils.Undoable;
 
 public interface InsertEntityPropertiesImpl extends BackendTransactionImpl, Undoable {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/InsertLinConImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertLinConImpl.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/interfaces/InsertLinConImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/InsertLinConImpl.java
index 679f682441c0f5647d009874ef596a3df719acba..98ba022ecf7fb061a6d95190bc3b6f1007cf51ac 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/InsertLinConImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertLinConImpl.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.LinCon;
-import caosdb.server.utils.Undoable;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.LinCon;
+import org.caosdb.server.utils.Undoable;
 
 public interface InsertLinConImpl extends BackendTransactionImpl, Undoable {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/InsertLogRecordImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertLogRecordImpl.java
similarity index 90%
rename from src/main/java/caosdb/server/database/backend/interfaces/InsertLogRecordImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/InsertLogRecordImpl.java
index 511e0ed4b1ffdb645b45a4db96283e0059b6726f..78bab8e251ff6e151963f1be8caf5e73211cc8e3 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/InsertLogRecordImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertLogRecordImpl.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.List;
 import java.util.logging.LogRecord;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface InsertLogRecordImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/InsertParentsImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertParentsImpl.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/interfaces/InsertParentsImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/InsertParentsImpl.java
index f83aa32e633c113379926ddc5e3c9b6c9e4b7ae5..aa65abe60be758197c761be3d728437c53fefcf3 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/InsertParentsImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertParentsImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.utils.Undoable;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.utils.Undoable;
 
 public interface InsertParentsImpl extends BackendTransactionImpl, Undoable {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/InsertRoleImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertRoleImpl.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/interfaces/InsertRoleImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/InsertRoleImpl.java
index 3ee2746cc93f8a47dbca675839360ea5297309e1..ff305cab73f58928774cfdbdba95dbc61dad3077 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/InsertRoleImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertRoleImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.accessControl.Role;
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.accessControl.Role;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface InsertRoleImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/InsertSparseEntityImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertSparseEntityImpl.java
similarity index 87%
rename from src/main/java/caosdb/server/database/backend/interfaces/InsertSparseEntityImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/InsertSparseEntityImpl.java
index 8ad9a9f7ac0608c4e1e51ba4783a985d0e20d985..33f46e97872bcd6a519d6980234b201639aa5e1e 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/InsertSparseEntityImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertSparseEntityImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.proto.SparseEntity;
-import caosdb.server.utils.Undoable;
+import org.caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.utils.Undoable;
 
 public interface InsertSparseEntityImpl extends BackendTransactionImpl, Undoable {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/InsertTransactionHistoryImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertTransactionHistoryImpl.java
similarity index 87%
rename from src/main/java/caosdb/server/database/backend/interfaces/InsertTransactionHistoryImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/InsertTransactionHistoryImpl.java
index 0ccb5d1548670eca923bd0f845f68b00e7ce6df9..a0b7db433ef24c515946e3b4fb1556f2aa2a7c16 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/InsertTransactionHistoryImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/InsertTransactionHistoryImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.utils.Undoable;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.utils.Undoable;
 
 public interface InsertTransactionHistoryImpl extends BackendTransactionImpl, Undoable {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/IsSubTypeImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/IsSubTypeImpl.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/IsSubTypeImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/IsSubTypeImpl.java
index 7a4f9717d01817aa6e0ae3bde5a9b7df56a923d0..2e61c5fb1331ebd102e1e2034bc0ef6a47dcf5dc 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/IsSubTypeImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/IsSubTypeImpl.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface IsSubTypeImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RegisterSubDomainImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RegisterSubDomainImpl.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/RegisterSubDomainImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RegisterSubDomainImpl.java
index d5e0c7d1437376d5096d0b248613fcee304457e0..e9df6f8897b4753a273be9877c8a5fa49b106932 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RegisterSubDomainImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RegisterSubDomainImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.Deque;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface RegisterSubDomainImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveAllImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveAllImpl.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrieveAllImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveAllImpl.java
index 54f8755e6a96ccac44bb471fecfa41fe0b1a6e9f..0aaa9707136ab1fc3cb498c80e2a1ad33771b746 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveAllImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveAllImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.List;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface RetrieveAllImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveAllUncheckedFilesImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveAllUncheckedFilesImpl.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrieveAllUncheckedFilesImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveAllUncheckedFilesImpl.java
index 5d49a0e4a552e6faad4eeb6c9c9f8eb147b8fa65..031bfbf9a4566a6f5c1f7c017f86dcba81ed07ff 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveAllUncheckedFilesImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveAllUncheckedFilesImpl.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
 import java.util.Iterator;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
 
 public interface RetrieveAllUncheckedFilesImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveDatatypesImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveDatatypesImpl.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrieveDatatypesImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveDatatypesImpl.java
index aa20a3ce8ad3aa599bf719c433128faf285f12ff..91c68dc56a31fe520d6b29c4b6780afe433f9039 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveDatatypesImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveDatatypesImpl.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.VerySparseEntity;
 import java.util.ArrayList;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.VerySparseEntity;
 
 public interface RetrieveDatatypesImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveLogRecordImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveLogRecordImpl.java
similarity index 90%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrieveLogRecordImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveLogRecordImpl.java
index 8fa00a0dc722213d264576b06679ac855484545f..b6646d269123d70a3b6d06a381c7a83792e1b659 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveLogRecordImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveLogRecordImpl.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.LogRecord;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface RetrieveLogRecordImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveParentsImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveParentsImpl.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrieveParentsImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveParentsImpl.java
index 9dfb8cf57c260c7fe154c25f095886ca6a3c2698..1948be05dbb69cb0259184bf03413edd6c61dbb1 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveParentsImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveParentsImpl.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.VerySparseEntity;
 import java.util.ArrayList;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.VerySparseEntity;
 
 public interface RetrieveParentsImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrievePasswordValidatorImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrievePasswordValidatorImpl.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrievePasswordValidatorImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RetrievePasswordValidatorImpl.java
index 9eaee5f0fdc80356047aadc9d5ae6787228de6c7..3b3c285181416b484e3d0636828f6ef422f921c3 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrievePasswordValidatorImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrievePasswordValidatorImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.accessControl.CredentialsValidator;
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.accessControl.CredentialsValidator;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface RetrievePasswordValidatorImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrievePermissionRulesImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrievePermissionRulesImpl.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrievePermissionRulesImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RetrievePermissionRulesImpl.java
index 01d2c20d4fdfece4e1f57281dcaf20ee635642ce..cdbb5eb994cba45762c64244b9a4c1a4b2f40c33 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrievePermissionRulesImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrievePermissionRulesImpl.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.permissions.PermissionRule;
 import java.util.HashSet;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.permissions.PermissionRule;
 
 public interface RetrievePermissionRulesImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrievePropertiesImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrievePropertiesImpl.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrievePropertiesImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RetrievePropertiesImpl.java
index b9a15a526b857b9674432a96733c6f2fd8e5d4ea..54dba75e7b84dcae38d33a8bbd0245288dba65ee 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrievePropertiesImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrievePropertiesImpl.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoProperty;
 import java.util.ArrayList;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoProperty;
 
 public interface RetrievePropertiesImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveQueryTemplateDefinitionImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveQueryTemplateDefinitionImpl.java
similarity index 94%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrieveQueryTemplateDefinitionImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveQueryTemplateDefinitionImpl.java
index cda336044de4bd0d37a3d67da140c744f2699f32..df144c796b9349699432945c861ac42c44045db0 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveQueryTemplateDefinitionImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveQueryTemplateDefinitionImpl.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
 public interface RetrieveQueryTemplateDefinitionImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveRoleImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveRoleImpl.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrieveRoleImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveRoleImpl.java
index 518cac1abb030d4cb0cafbb21f53a88e6e2b94c2..92fde36b07d205b59cbf5000da403d936f03fe35 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveRoleImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveRoleImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.accessControl.Role;
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.accessControl.Role;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface RetrieveRoleImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveSparseEntityImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveSparseEntityImpl.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrieveSparseEntityImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveSparseEntityImpl.java
index 5b6978f8f456bf978c3ca60ae0da479eaf54ed0a..8bb790c98e2c45d788f7f1bd8ede6c7c4a2faa03 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveSparseEntityImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveSparseEntityImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
 
 public interface RetrieveSparseEntityImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveTransactionHistoryImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveTransactionHistoryImpl.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrieveTransactionHistoryImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveTransactionHistoryImpl.java
index 217ec61c71f01d6c3ef7f0641b135f9a55900702..b02e4d9347e572941ab31e3a1a371470e1d8ee5c 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveTransactionHistoryImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveTransactionHistoryImpl.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoTransactionLogMessage;
 import java.util.ArrayList;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoTransactionLogMessage;
 
 public interface RetrieveTransactionHistoryImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveUserImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveUserImpl.java
similarity index 82%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrieveUserImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveUserImpl.java
index ffb1f16a7227c845c8b4c51f5dd0e97ac5f33f4e..2ff8286331add6143d76d18562935d795ba85cff 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveUserImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveUserImpl.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.accessControl.Principal;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoUser;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoUser;
 
 public interface RetrieveUserImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveVersionHistoryImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveVersionHistoryImpl.java
similarity index 61%
rename from src/main/java/caosdb/server/database/backend/interfaces/RetrieveVersionHistoryImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveVersionHistoryImpl.java
index 118e783d816ce45d1a43738bf8959e4a94740d3c..50b6e13ca8eeb4b6b404ba3e9deb776111e5011e 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RetrieveVersionHistoryImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveVersionHistoryImpl.java
@@ -1,7 +1,7 @@
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.proto.VersionHistoryItem;
 import java.util.HashMap;
+import org.caosdb.server.database.proto.VersionHistoryItem;
 
 public interface RetrieveVersionHistoryImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/RuleLoaderImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RuleLoaderImpl.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/interfaces/RuleLoaderImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/RuleLoaderImpl.java
index c1e84dd3f97ab9fc1f2b9e477a2df120119c9356..151e3d9d21d02d953cffeec8a55b4e01377fc023 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/RuleLoaderImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RuleLoaderImpl.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.Rule;
 import java.util.ArrayList;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.Rule;
 
 public interface RuleLoaderImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/SetFileCheckedTimestampImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/SetFileCheckedTimestampImpl.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/SetFileCheckedTimestampImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/SetFileCheckedTimestampImpl.java
index eab362764d5fd6fe4392c375a2bb324d26ba895d..a398353978b430bbc655ad78b1cadbfcc91f1d9e 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/SetFileCheckedTimestampImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/SetFileCheckedTimestampImpl.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface SetFileCheckedTimestampImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/SetFileChecksumImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/SetFileChecksumImpl.java
similarity index 68%
rename from src/main/java/caosdb/server/database/backend/interfaces/SetFileChecksumImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/SetFileChecksumImpl.java
index be73b33ecfa646dc7f19b2db3d38a8a464065f09..ca33df8987aa4f82051feaaff936ea29455198a4 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/SetFileChecksumImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/SetFileChecksumImpl.java
@@ -1,4 +1,4 @@
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
 public interface SetFileChecksumImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/SetPasswordImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/SetPasswordImpl.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/interfaces/SetPasswordImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/SetPasswordImpl.java
index 6e4c951feb55d27b61f60a699f315d18e2662a3e..e60f578879ae1dde60c257e7b7dadd523319daa1 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/SetPasswordImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/SetPasswordImpl.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface SetPasswordImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/SetPermissionRulesImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/SetPermissionRulesImpl.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/interfaces/SetPermissionRulesImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/SetPermissionRulesImpl.java
index 29a28415012b7fee4eb2a1219729e293db6f78cf..89ab9bd13acfc67e8d500b3645ffc1770b183c55 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/SetPermissionRulesImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/SetPermissionRulesImpl.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.permissions.PermissionRule;
 import java.util.Set;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.permissions.PermissionRule;
 
 public interface SetPermissionRulesImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/SetQueryTemplateDefinitionImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/SetQueryTemplateDefinitionImpl.java
similarity index 94%
rename from src/main/java/caosdb/server/database/backend/interfaces/SetQueryTemplateDefinitionImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/SetQueryTemplateDefinitionImpl.java
index 4d6695fe5d8fe574c44ad39a1342cf43a2628d33..aee26c5e53117028a9de91911cf9710a4164b6a7 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/SetQueryTemplateDefinitionImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/SetQueryTemplateDefinitionImpl.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
 public interface SetQueryTemplateDefinitionImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/SyncStatsImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/SyncStatsImpl.java
similarity index 87%
rename from src/main/java/caosdb/server/database/backend/interfaces/SyncStatsImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/SyncStatsImpl.java
index 6a4d1d39cf607f79295bc3e761fe40912e5f5c31..d5a15f0e88cdc4be6e3b726a559f766e053bda2e 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/SyncStatsImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/SyncStatsImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.utils.ServerStat;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.utils.ServerStat;
 
 public interface SyncStatsImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/UpdateSparseEntityImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/UpdateSparseEntityImpl.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/interfaces/UpdateSparseEntityImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/UpdateSparseEntityImpl.java
index f35832097bfb2b1738c343fceb51c8b259e10f4a..e7cb2612d1f90c826004fc168b355c1537574e00 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/UpdateSparseEntityImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/UpdateSparseEntityImpl.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
-import caosdb.server.utils.Undoable;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.utils.Undoable;
 
 public interface UpdateSparseEntityImpl extends BackendTransactionImpl, Undoable {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/UpdateUserImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/UpdateUserImpl.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/interfaces/UpdateUserImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/UpdateUserImpl.java
index 5479c13fd1fdf4cb59996816a778494328f03cfa..eb26002c1163295d9dd00c32bd8d092ad26b2b55 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/UpdateUserImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/UpdateUserImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoUser;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoUser;
 
 public interface UpdateUserImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/interfaces/UpdateUserRolesImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/UpdateUserRolesImpl.java
similarity index 90%
rename from src/main/java/caosdb/server/database/backend/interfaces/UpdateUserRolesImpl.java
rename to src/main/java/org/caosdb/server/database/backend/interfaces/UpdateUserRolesImpl.java
index 5d1763b6c74ba8b5ca55b317bf708c1bfd2bbda9..f2abfbe3cb7846f16e21d8f9a719ad708884841c 100644
--- a/src/main/java/caosdb/server/database/backend/interfaces/UpdateUserRolesImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/UpdateUserRolesImpl.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.interfaces;
+package org.caosdb.server.database.backend.interfaces;
 
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.HashSet;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public interface UpdateUserRolesImpl extends BackendTransactionImpl {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/DeleteEntity.java b/src/main/java/org/caosdb/server/database/backend/transaction/DeleteEntity.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/transaction/DeleteEntity.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/DeleteEntity.java
index e94d90e6e8430d7aace3fa84ea22f6f458cbc41a..7f3d3435e1d4913d99ea0c9b7b064da85e12ac02 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/DeleteEntity.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/DeleteEntity.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.container.TransactionContainer;
 
 public class DeleteEntity extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/DeleteEntityProperties.java b/src/main/java/org/caosdb/server/database/backend/transaction/DeleteEntityProperties.java
similarity index 80%
rename from src/main/java/caosdb/server/database/backend/transaction/DeleteEntityProperties.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/DeleteEntityProperties.java
index 984ca5eb853e356814aafb69ebd9860bee4fe8a1..7b02fbf003e49c18bc14a602f7e2f781b495c682 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/DeleteEntityProperties.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/DeleteEntityProperties.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import static caosdb.server.transaction.Transaction.ERROR_INTEGRITY_VIOLATION;
+import static org.caosdb.server.transaction.Transaction.ERROR_INTEGRITY_VIOLATION;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.DeleteEntityPropertiesImpl;
-import caosdb.server.database.exceptions.IntegrityException;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.utils.EntityStatus;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.DeleteEntityPropertiesImpl;
+import org.caosdb.server.database.exceptions.IntegrityException;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.utils.EntityStatus;
 
 public class DeleteEntityProperties extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/DeleteFile.java b/src/main/java/org/caosdb/server/database/backend/transaction/DeleteFile.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/transaction/DeleteFile.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/DeleteFile.java
index 82c022bef0f321f5a1be81e5f58207c9d06cd427..254e4e70d27518d676ada2d73d28a750148c8871 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/DeleteFile.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/DeleteFile.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
 import java.io.IOException;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
 
 public class DeleteFile extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/DeletePassword.java b/src/main/java/org/caosdb/server/database/backend/transaction/DeletePassword.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/transaction/DeletePassword.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/DeletePassword.java
index a467ae18367c91f02dd2cccefb4a336fe61c1210..402726a945d606091cd83505c69631f28d3ec455 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/DeletePassword.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/DeletePassword.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.DeletePasswordImpl;
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.DeletePasswordImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class DeletePassword extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/DeleteRole.java b/src/main/java/org/caosdb/server/database/backend/transaction/DeleteRole.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/transaction/DeleteRole.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/DeleteRole.java
index 1c80d1b99ccc234b51db93a59b73da508fc35982..eab8f6f3d5a8bf8153d1855de653f840a41bb302 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/DeleteRole.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/DeleteRole.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.DeleteRoleImpl;
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.DeleteRoleImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class DeleteRole extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/DeleteSparseEntity.java b/src/main/java/org/caosdb/server/database/backend/transaction/DeleteSparseEntity.java
similarity index 80%
rename from src/main/java/caosdb/server/database/backend/transaction/DeleteSparseEntity.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/DeleteSparseEntity.java
index a2e4de6482d78053ab01c70ea3634c3f8af232a3..55989d219ad738d5a866e0ef6f322368c8fc559b 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/DeleteSparseEntity.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/DeleteSparseEntity.java
@@ -22,15 +22,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import static caosdb.server.transaction.Transaction.ERROR_INTEGRITY_VIOLATION;
+import static org.caosdb.server.transaction.Transaction.ERROR_INTEGRITY_VIOLATION;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.DeleteSparseEntityImpl;
-import caosdb.server.database.exceptions.IntegrityException;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.utils.EntityStatus;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.DeleteSparseEntityImpl;
+import org.caosdb.server.database.exceptions.IntegrityException;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.utils.EntityStatus;
 
 public class DeleteSparseEntity extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/DeleteUser.java b/src/main/java/org/caosdb/server/database/backend/transaction/DeleteUser.java
similarity index 82%
rename from src/main/java/caosdb/server/database/backend/transaction/DeleteUser.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/DeleteUser.java
index 90f2d02e8cbfc2d37aba745cf5601f075ad75e06..13ea87446a8d8e786629ec6d7d9ffd032c0f58d0 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/DeleteUser.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/DeleteUser.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.accessControl.Principal;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.DeleteUserImpl;
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.DeleteUserImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class DeleteUser extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/FileConsistencyCheck.java b/src/main/java/org/caosdb/server/database/backend/transaction/FileConsistencyCheck.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/transaction/FileConsistencyCheck.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/FileConsistencyCheck.java
index 5238ec7494abc15baa42e9b8f9d4f659ccd9af99..5cece246538219266537613aec31da24962e1910 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/FileConsistencyCheck.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/FileConsistencyCheck.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.FileCheckHash;
-import caosdb.server.database.backend.interfaces.FileCheckSize;
-import caosdb.server.database.backend.interfaces.FileExists;
-import caosdb.server.database.backend.interfaces.FileWasModifiedAfter;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.utils.Hasher;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.FileCheckHash;
+import org.caosdb.server.database.backend.interfaces.FileCheckSize;
+import org.caosdb.server.database.backend.interfaces.FileExists;
+import org.caosdb.server.database.backend.interfaces.FileWasModifiedAfter;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.utils.Hasher;
 
 public class FileConsistencyCheck extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/GetAllNames.java b/src/main/java/org/caosdb/server/database/backend/transaction/GetAllNames.java
similarity index 61%
rename from src/main/java/caosdb/server/database/backend/transaction/GetAllNames.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/GetAllNames.java
index f30ec5b2b33de6ba7341b26f4e94244f6501255c..f45f5104283d7d27771a3e2a9b0a38772d4cccf0 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/GetAllNames.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/GetAllNames.java
@@ -1,12 +1,12 @@
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.GetAllNamesImpl;
-import caosdb.server.database.proto.SparseEntity;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
 import java.util.ArrayList;
 import java.util.List;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.GetAllNamesImpl;
+import org.caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
 
 public class GetAllNames extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/GetChildren.java b/src/main/java/org/caosdb/server/database/backend/transaction/GetChildren.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/transaction/GetChildren.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/GetChildren.java
index d476345c2e05cf75d5bcfdf333edf760ff991e3a..32bf8883b9f2662207352c8b80356b95f97d7d76 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/GetChildren.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/GetChildren.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.GetChildrenImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.List;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.GetChildrenImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class GetChildren extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/GetDependentEntities.java b/src/main/java/org/caosdb/server/database/backend/transaction/GetDependentEntities.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/transaction/GetDependentEntities.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/GetDependentEntities.java
index e4e6e96f999d5ceb3402d1235de04ae6f32e358b..067a422fd509b0987e0e5c8b69da1ee081c258a0 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/GetDependentEntities.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/GetDependentEntities.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.GetDependentEntitiesImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.List;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.GetDependentEntitiesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class GetDependentEntities extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/GetFileIterator.java b/src/main/java/org/caosdb/server/database/backend/transaction/GetFileIterator.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/transaction/GetFileIterator.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/GetFileIterator.java
index 7e28ff243575f75ea577ec80029507cfa1d49d17..c5db6bef59ddf18c95218f442556b6ee6b27ad8a 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/GetFileIterator.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/GetFileIterator.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.GetFileIteratorImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.Iterator;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.GetFileIteratorImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class GetFileIterator extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/GetFileRecordByPath.java b/src/main/java/org/caosdb/server/database/backend/transaction/GetFileRecordByPath.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/transaction/GetFileRecordByPath.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/GetFileRecordByPath.java
index 6366bd2884aca38a0d54eca4a926fcc7e8b9cda4..1a7fa8635366cce858c35f54378090ebad72fb8f 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/GetFileRecordByPath.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/GetFileRecordByPath.java
@@ -22,15 +22,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.caching.Cache;
-import caosdb.server.database.CacheableBackendTransaction;
-import caosdb.server.database.backend.interfaces.GetFileRecordByPathImpl;
-import caosdb.server.database.exceptions.EntityDoesNotExistException;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
 import org.apache.commons.jcs.access.behavior.ICacheAccess;
+import org.caosdb.server.caching.Cache;
+import org.caosdb.server.database.CacheableBackendTransaction;
+import org.caosdb.server.database.backend.interfaces.GetFileRecordByPathImpl;
+import org.caosdb.server.database.exceptions.EntityDoesNotExistException;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
 
 public class GetFileRecordByPath extends CacheableBackendTransaction<String, SparseEntity> {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/GetIDByName.java b/src/main/java/org/caosdb/server/database/backend/transaction/GetIDByName.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/transaction/GetIDByName.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/GetIDByName.java
index 895cd707b57d70693ec6a80396b26bce391027af..b43db0010eeeb3179bb91333d854872f5e8ab18a 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/GetIDByName.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/GetIDByName.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.GetIDByNameImpl;
-import caosdb.server.database.exceptions.EntityDoesNotExistException;
-import caosdb.server.database.exceptions.EntityWasNotUniqueException;
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.List;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.GetIDByNameImpl;
+import org.caosdb.server.database.exceptions.EntityDoesNotExistException;
+import org.caosdb.server.database.exceptions.EntityWasNotUniqueException;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class GetIDByName extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/GetInfo.java b/src/main/java/org/caosdb/server/database/backend/transaction/GetInfo.java
similarity index 80%
rename from src/main/java/caosdb/server/database/backend/transaction/GetInfo.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/GetInfo.java
index dd7cfc5a6dd40e2075ecfe0987536b089aea7ef5..a1662ec03f8f5dc2fe424ba10f26e9ba4803b72c 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/GetInfo.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/GetInfo.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.GetInfoImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoInfo;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.GetInfoImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoInfo;
 
 public class GetInfo extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/GetUpdateableChecksums.java b/src/main/java/org/caosdb/server/database/backend/transaction/GetUpdateableChecksums.java
similarity index 82%
rename from src/main/java/caosdb/server/database/backend/transaction/GetUpdateableChecksums.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/GetUpdateableChecksums.java
index b70c1918942a4ff376e57c5649ce5436cf7c9140..eade9ea62168710e8928e52d1dc9176e366e0300 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/GetUpdateableChecksums.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/GetUpdateableChecksums.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.GetUpdateableChecksumsImpl;
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.GetUpdateableChecksumsImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class GetUpdateableChecksums extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/InsertEntity.java b/src/main/java/org/caosdb/server/database/backend/transaction/InsertEntity.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/transaction/InsertEntity.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/InsertEntity.java
index e258504908b44c8054a56315fa26e8dacae8b023..42439aa54e06e2556cb7b814f1c9056afb35f9d7 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/InsertEntity.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/InsertEntity.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.utils.EntityStatus;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.utils.EntityStatus;
 
 public class InsertEntity extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/InsertEntityDatatype.java b/src/main/java/org/caosdb/server/database/backend/transaction/InsertEntityDatatype.java
similarity index 56%
rename from src/main/java/caosdb/server/database/backend/transaction/InsertEntityDatatype.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/InsertEntityDatatype.java
index 58aa4d88498e7493466cde844d241336b29e3896..182874d1f1e30ed8f5249e609dbbc42a724d94af 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/InsertEntityDatatype.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/InsertEntityDatatype.java
@@ -1,12 +1,12 @@
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import static caosdb.server.transaction.Transaction.ERROR_INTEGRITY_VIOLATION;
+import static org.caosdb.server.transaction.Transaction.ERROR_INTEGRITY_VIOLATION;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.InsertEntityDatatypeImpl;
-import caosdb.server.database.exceptions.IntegrityException;
-import caosdb.server.database.proto.SparseEntity;
-import caosdb.server.entity.EntityInterface;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.InsertEntityDatatypeImpl;
+import org.caosdb.server.database.exceptions.IntegrityException;
+import org.caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.entity.EntityInterface;
 
 public class InsertEntityDatatype extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/InsertEntityProperties.java b/src/main/java/org/caosdb/server/database/backend/transaction/InsertEntityProperties.java
similarity index 87%
rename from src/main/java/caosdb/server/database/backend/transaction/InsertEntityProperties.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/InsertEntityProperties.java
index a777d4206c4dc0822a4f27912a3ec708c03edd56..bd5bf63a5eb7b194e119c56293e756ff0c4b6a20 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/InsertEntityProperties.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/InsertEntityProperties.java
@@ -20,26 +20,26 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
-
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.DatabaseUtils;
-import caosdb.server.database.backend.interfaces.InsertEntityPropertiesImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.FlatProperty;
-import caosdb.server.datatype.AbstractCollectionDatatype;
-import caosdb.server.datatype.AbstractDatatype.Table;
-import caosdb.server.datatype.CollectionValue;
-import caosdb.server.datatype.IndexedSingleValue;
-import caosdb.server.datatype.SingleValue;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Role;
-import caosdb.server.entity.StatementStatus;
-import caosdb.server.entity.wrapper.Property;
+package org.caosdb.server.database.backend.transaction;
+
 import java.util.ArrayList;
 import java.util.Deque;
 import java.util.Iterator;
 import java.util.List;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.DatabaseUtils;
+import org.caosdb.server.database.backend.interfaces.InsertEntityPropertiesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.FlatProperty;
+import org.caosdb.server.datatype.AbstractCollectionDatatype;
+import org.caosdb.server.datatype.AbstractDatatype.Table;
+import org.caosdb.server.datatype.CollectionValue;
+import org.caosdb.server.datatype.IndexedSingleValue;
+import org.caosdb.server.datatype.SingleValue;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.entity.StatementStatus;
+import org.caosdb.server.entity.wrapper.Property;
 
 public class InsertEntityProperties extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/InsertEntityValue.java b/src/main/java/org/caosdb/server/database/backend/transaction/InsertEntityValue.java
similarity index 79%
rename from src/main/java/caosdb/server/database/backend/transaction/InsertEntityValue.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/InsertEntityValue.java
index 56ace8d9d2ff6cac5c611ca43424a3bdd8ecbb54..8ec6b0d1fab731d3d51b3a6793c69293575e6462 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/InsertEntityValue.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/InsertEntityValue.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.InsertEntityPropertiesImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.FlatProperty;
-import caosdb.server.datatype.SingleValue;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.StatementStatus;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.InsertEntityPropertiesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.FlatProperty;
+import org.caosdb.server.datatype.SingleValue;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.StatementStatus;
 
 public class InsertEntityValue extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/InsertFile.java b/src/main/java/org/caosdb/server/database/backend/transaction/InsertFile.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/transaction/InsertFile.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/InsertFile.java
index fe9b930e7a51391e3379f76b6393081edbcc0583..f92dc62bb131fcfe6af2cf51c1c6abeaee7c4dda 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/InsertFile.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/InsertFile.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.utils.EntityStatus;
 import java.io.IOException;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.utils.EntityStatus;
 
 public class InsertFile extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/InsertLinCon.java b/src/main/java/org/caosdb/server/database/backend/transaction/InsertLinCon.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/transaction/InsertLinCon.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/InsertLinCon.java
index 279f9f1f93329e03098401a6fc25fd6e2c2fd386..68555010031cc8f8bfe48afcf2c4d5e310bed3d8 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/InsertLinCon.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/InsertLinCon.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.InsertLinConImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.LinCon;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.InsertLinConImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.LinCon;
 
 public class InsertLinCon extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/InsertLogRecord.java b/src/main/java/org/caosdb/server/database/backend/transaction/InsertLogRecord.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/transaction/InsertLogRecord.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/InsertLogRecord.java
index 43a21d481d954d34dba66a2f9b824acfaac2aabd..3ce27add49761737c0a8365410c979665a3f16a9 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/InsertLogRecord.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/InsertLogRecord.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.InsertLogRecordImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.List;
 import java.util.logging.LogRecord;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.InsertLogRecordImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class InsertLogRecord extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/InsertParents.java b/src/main/java/org/caosdb/server/database/backend/transaction/InsertParents.java
similarity index 81%
rename from src/main/java/caosdb/server/database/backend/transaction/InsertParents.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/InsertParents.java
index 439b9f58a6b463a6a7bfe731b54b6690ea17ce96..d71fec922477d664c8c8eff98800164b3a691513 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/InsertParents.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/InsertParents.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.InsertParentsImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.utils.EntityStatus;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.InsertParentsImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.utils.EntityStatus;
 
 public class InsertParents extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/InsertRole.java b/src/main/java/org/caosdb/server/database/backend/transaction/InsertRole.java
similarity index 80%
rename from src/main/java/caosdb/server/database/backend/transaction/InsertRole.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/InsertRole.java
index e44820d24c19b9215a1730e9b4f848f7578598b1..4ffa7d68f6ff8b2e328a22978803941b310c58a7 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/InsertRole.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/InsertRole.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.accessControl.Role;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.InsertRoleImpl;
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.accessControl.Role;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.InsertRoleImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class InsertRole extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/InsertSparseEntity.java b/src/main/java/org/caosdb/server/database/backend/transaction/InsertSparseEntity.java
similarity index 76%
rename from src/main/java/caosdb/server/database/backend/transaction/InsertSparseEntity.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/InsertSparseEntity.java
index c8e20895711e16c40c75c89c9776e8ad55851117..1800168ebd2cd6ef4180e23046f95066597086e5 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/InsertSparseEntity.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/InsertSparseEntity.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import static caosdb.server.transaction.Transaction.ERROR_INTEGRITY_VIOLATION;
+import static org.caosdb.server.transaction.Transaction.ERROR_INTEGRITY_VIOLATION;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.InsertSparseEntityImpl;
-import caosdb.server.database.exceptions.IntegrityException;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Version;
-import caosdb.server.utils.Undoable;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.InsertSparseEntityImpl;
+import org.caosdb.server.database.exceptions.IntegrityException;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Version;
+import org.caosdb.server.utils.Undoable;
 
 public class InsertSparseEntity extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/InsertTransactionHistory.java b/src/main/java/org/caosdb/server/database/backend/transaction/InsertTransactionHistory.java
similarity index 81%
rename from src/main/java/caosdb/server/database/backend/transaction/InsertTransactionHistory.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/InsertTransactionHistory.java
index 242eec2969b622a1f66cda5defd1d2b9d5dc5ead..db7393b04f0afe3c15622dfb750cf31d42050521 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/InsertTransactionHistory.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/InsertTransactionHistory.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.datetime.UTCDateTime;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.InsertTransactionHistoryImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.utils.EntityStatus;
+import org.caosdb.datetime.UTCDateTime;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.InsertTransactionHistoryImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.utils.EntityStatus;
 
 public class InsertTransactionHistory extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/IsSubType.java b/src/main/java/org/caosdb/server/database/backend/transaction/IsSubType.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/transaction/IsSubType.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/IsSubType.java
index ed91f761cabde5029b376e6a3132fc9dd93537eb..d75fb2c2453613c50915678d81f53f696589afd4 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/IsSubType.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/IsSubType.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.IsSubTypeImpl;
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.IsSubTypeImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class IsSubType extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RegisterSubDomain.java b/src/main/java/org/caosdb/server/database/backend/transaction/RegisterSubDomain.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/transaction/RegisterSubDomain.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RegisterSubDomain.java
index 08b999d0e0c1e36d108c89a0cf9eed513d3290e4..ecae501d40d4e6ed9ae54e44e12d37a7628699fd 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RegisterSubDomain.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RegisterSubDomain.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.RegisterSubDomainImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.Deque;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.RegisterSubDomainImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class RegisterSubDomain extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveAll.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveAll.java
similarity index 80%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrieveAll.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrieveAll.java
index 5820547c853247245b398778fab97bd854a5a126..7b6173ede59720234c58c6ca882e69e4dda9e6b2 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveAll.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveAll.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.RetrieveAllImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.RetrieveEntity;
-import caosdb.server.entity.container.TransactionContainer;
 import java.util.List;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.RetrieveAllImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.RetrieveEntity;
+import org.caosdb.server.entity.container.TransactionContainer;
 
 public class RetrieveAll extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveAllUncheckedFiles.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveAllUncheckedFiles.java
similarity index 82%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrieveAllUncheckedFiles.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrieveAllUncheckedFiles.java
index b99694243d9b6571c1c96ac4ce3114543380c434..655e47b8312c3a9772ae3e9055bc73494236a0ec 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveAllUncheckedFiles.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveAllUncheckedFiles.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.RetrieveAllUncheckedFilesImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
 import java.util.Iterator;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.RetrieveAllUncheckedFilesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
 
 public class RetrieveAllUncheckedFiles extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveDatatypes.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveDatatypes.java
similarity index 76%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrieveDatatypes.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrieveDatatypes.java
index 44f8427aeb2911c0483be3824a1e3fe831350cb5..56efbdd3864c5997758417ad02a97b663dfce6e5 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveDatatypes.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveDatatypes.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.RetrieveDatatypesImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.VerySparseEntity;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.RetrieveEntity;
-import caosdb.server.entity.container.Container;
 import java.util.ArrayList;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.RetrieveDatatypesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.VerySparseEntity;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.RetrieveEntity;
+import org.caosdb.server.entity.container.Container;
 
 public class RetrieveDatatypes extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveFullEntity.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveFullEntity.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrieveFullEntity.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrieveFullEntity.java
index ad0d39e94b56904def08a04a8a42a89627a7b4d6..2601367b7312331a981d2b352040962ac3a98a43 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveFullEntity.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveFullEntity.java
@@ -22,22 +22,22 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
-
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.datatype.ReferenceDatatype;
-import caosdb.server.datatype.ReferenceValue;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.RetrieveEntity;
-import caosdb.server.entity.Role;
-import caosdb.server.entity.container.Container;
-import caosdb.server.entity.wrapper.Property;
-import caosdb.server.query.Query;
-import caosdb.server.query.Query.Selection;
-import caosdb.server.utils.EntityStatus;
+package org.caosdb.server.database.backend.transaction;
+
 import java.util.LinkedList;
 import java.util.List;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.datatype.ReferenceDatatype;
+import org.caosdb.server.datatype.ReferenceValue;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.RetrieveEntity;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.entity.container.Container;
+import org.caosdb.server.entity.wrapper.Property;
+import org.caosdb.server.query.Query;
+import org.caosdb.server.query.Query.Selection;
+import org.caosdb.server.utils.EntityStatus;
 
 /**
  * Retrieve the full entity from the backend - with all parents, properties, file properties and so
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveLogRecord.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveLogRecord.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrieveLogRecord.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrieveLogRecord.java
index 42211d4312af6370c0f0335dd823f6129719dafd..eae8a96589aab3558a1978890c85bdd18bc161dc 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveLogRecord.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveLogRecord.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.RetrieveLogRecordImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.LogRecord;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.RetrieveLogRecordImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class RetrieveLogRecord extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveParents.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveParents.java
similarity index 86%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrieveParents.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrieveParents.java
index d33d5e96d978fe86d6eb965113726eb79bb60d40..b551430a26ed6a254789258aca688521f5a57ae4 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveParents.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveParents.java
@@ -22,17 +22,17 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.caching.Cache;
-import caosdb.server.database.CacheableBackendTransaction;
-import caosdb.server.database.DatabaseUtils;
-import caosdb.server.database.backend.interfaces.RetrieveParentsImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.VerySparseEntity;
-import caosdb.server.entity.EntityInterface;
 import java.util.ArrayList;
 import org.apache.commons.jcs.access.behavior.ICacheAccess;
+import org.caosdb.server.caching.Cache;
+import org.caosdb.server.database.CacheableBackendTransaction;
+import org.caosdb.server.database.DatabaseUtils;
+import org.caosdb.server.database.backend.interfaces.RetrieveParentsImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.VerySparseEntity;
+import org.caosdb.server.entity.EntityInterface;
 
 // TODO Problem with the caching.
 // When an old entity version has a parent which is deleted, the name is
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrievePasswordValidator.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrievePasswordValidator.java
similarity index 81%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrievePasswordValidator.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrievePasswordValidator.java
index 36ce2c946388fdbee1caabe331355e8032684e8f..d8ea908dbfb0a7f4ae83830b050f976ac383aa6f 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrievePasswordValidator.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrievePasswordValidator.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.accessControl.CredentialsValidator;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.RetrievePasswordValidatorImpl;
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.accessControl.CredentialsValidator;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.RetrievePasswordValidatorImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class RetrievePasswordValidator extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrievePermissionRules.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrievePermissionRules.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrievePermissionRules.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrievePermissionRules.java
index 7e9925777c21a6d041759cfdade7682b85458566..0ec6756194342341b64f9dc131b7b912f112a1dc 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrievePermissionRules.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrievePermissionRules.java
@@ -22,15 +22,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.caching.Cache;
-import caosdb.server.database.CacheableBackendTransaction;
-import caosdb.server.database.backend.interfaces.RetrievePermissionRulesImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.permissions.PermissionRule;
 import java.util.HashSet;
 import org.apache.commons.jcs.access.behavior.ICacheAccess;
+import org.caosdb.server.caching.Cache;
+import org.caosdb.server.database.CacheableBackendTransaction;
+import org.caosdb.server.database.backend.interfaces.RetrievePermissionRulesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.permissions.PermissionRule;
 
 public class RetrievePermissionRules
     extends CacheableBackendTransaction<String, HashSet<PermissionRule>> {
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveProperties.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveProperties.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrieveProperties.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrieveProperties.java
index 822f57fd49e54d7517578592acf09100924fe81b..726382f28c59a45a647098c3d227288fa1fabff6 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveProperties.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveProperties.java
@@ -22,19 +22,19 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.caching.Cache;
-import caosdb.server.database.CacheableBackendTransaction;
-import caosdb.server.database.DatabaseUtils;
-import caosdb.server.database.backend.interfaces.RetrievePropertiesImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoProperty;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Role;
-import caosdb.server.entity.wrapper.Property;
 import java.util.ArrayList;
 import org.apache.commons.jcs.access.behavior.ICacheAccess;
+import org.caosdb.server.caching.Cache;
+import org.caosdb.server.database.CacheableBackendTransaction;
+import org.caosdb.server.database.DatabaseUtils;
+import org.caosdb.server.database.backend.interfaces.RetrievePropertiesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoProperty;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.entity.wrapper.Property;
 
 public class RetrieveProperties
     extends CacheableBackendTransaction<String, ArrayList<ProtoProperty>> {
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveQueryTemplateDefinition.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveQueryTemplateDefinition.java
similarity index 81%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrieveQueryTemplateDefinition.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrieveQueryTemplateDefinition.java
index 0c96c72cb0be41aaf368c22009526914994bc8ec..90a8ac27d264731b5d714fdc0ada116795fd0ee2 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveQueryTemplateDefinition.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveQueryTemplateDefinition.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.RetrieveQueryTemplateDefinitionImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.EntityInterface;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.RetrieveQueryTemplateDefinitionImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.EntityInterface;
 
 public class RetrieveQueryTemplateDefinition extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveRole.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveRole.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrieveRole.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrieveRole.java
index 5bb6150a8640f45997a4a3432ad4ac27196cd15c..1e855663590d85610860fcee246a4f1ed78a31b2 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveRole.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveRole.java
@@ -22,14 +22,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.accessControl.Role;
-import caosdb.server.caching.Cache;
-import caosdb.server.database.CacheableBackendTransaction;
-import caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import org.apache.commons.jcs.access.behavior.ICacheAccess;
+import org.caosdb.server.accessControl.Role;
+import org.caosdb.server.caching.Cache;
+import org.caosdb.server.database.CacheableBackendTransaction;
+import org.caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class RetrieveRole extends CacheableBackendTransaction<String, Role> {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveSparseEntity.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveSparseEntity.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrieveSparseEntity.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrieveSparseEntity.java
index 7843f57957d392c4bbf65f01a60d559cff11c6c8..db35c45d52f40e5e6083770878dda4baed61a5a6 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveSparseEntity.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveSparseEntity.java
@@ -22,18 +22,18 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.caching.Cache;
-import caosdb.server.database.CacheableBackendTransaction;
-import caosdb.server.database.DatabaseUtils;
-import caosdb.server.database.backend.interfaces.RetrieveSparseEntityImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.utils.EntityStatus;
 import org.apache.commons.jcs.access.behavior.ICacheAccess;
+import org.caosdb.server.caching.Cache;
+import org.caosdb.server.database.CacheableBackendTransaction;
+import org.caosdb.server.database.DatabaseUtils;
+import org.caosdb.server.database.backend.interfaces.RetrieveSparseEntityImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.utils.EntityStatus;
 
 public class RetrieveSparseEntity extends CacheableBackendTransaction<String, SparseEntity> {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveTransactionHistory.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveTransactionHistory.java
similarity index 79%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrieveTransactionHistory.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrieveTransactionHistory.java
index 72bc1e5b1ec3a3509cc5cbba23e38b908d4e969f..632ce20cfe71d0e116bbe3987a60c45b11085eec 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveTransactionHistory.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveTransactionHistory.java
@@ -22,16 +22,16 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.datetime.UTCDateTime;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.RetrieveTransactionHistoryImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoTransactionLogMessage;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.utils.TransactionLogMessage;
 import java.util.ArrayList;
+import org.caosdb.datetime.UTCDateTime;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.RetrieveTransactionHistoryImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoTransactionLogMessage;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.utils.TransactionLogMessage;
 
 public class RetrieveTransactionHistory extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveUser.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveUser.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrieveUser.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrieveUser.java
index 9f27152030f5c953ee7bd4ecfff8c83d3cbc8a73..3ffdee13fe2eac0b2078e44ecfdb1f1101fe137a 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveUser.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveUser.java
@@ -22,15 +22,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.accessControl.Principal;
-import caosdb.server.caching.Cache;
-import caosdb.server.database.CacheableBackendTransaction;
-import caosdb.server.database.backend.interfaces.RetrieveUserImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoUser;
 import org.apache.commons.jcs.access.behavior.ICacheAccess;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.caching.Cache;
+import org.caosdb.server.database.CacheableBackendTransaction;
+import org.caosdb.server.database.backend.interfaces.RetrieveUserImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoUser;
 
 public class RetrieveUser extends CacheableBackendTransaction<Principal, ProtoUser> {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveVersionHistory.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveVersionHistory.java
similarity index 85%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrieveVersionHistory.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrieveVersionHistory.java
index 20be2f8fb60ce54877fdb2fd85d27a6944a71d86..6077d6491fda93b96262b48783092578af37f4f8 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveVersionHistory.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveVersionHistory.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.CacheableBackendTransaction;
-import caosdb.server.database.backend.interfaces.RetrieveVersionHistoryImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.VersionHistoryItem;
-import caosdb.server.entity.EntityInterface;
 import java.util.Collection;
 import java.util.HashMap;
+import org.caosdb.server.database.CacheableBackendTransaction;
+import org.caosdb.server.database.backend.interfaces.RetrieveVersionHistoryImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.VersionHistoryItem;
+import org.caosdb.server.entity.EntityInterface;
 
 public abstract class RetrieveVersionHistory
     extends CacheableBackendTransaction<Integer, HashMap<String, VersionHistoryItem>> {
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RetrieveVersionInfo.java b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveVersionInfo.java
similarity index 89%
rename from src/main/java/caosdb/server/database/backend/transaction/RetrieveVersionInfo.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RetrieveVersionInfo.java
index 1daab0504cafbd05e9e03dff78b2c230a0438ccd..7d9fe5fd7ea42cf3d6aa29a127a7f82f7ec1764c 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RetrieveVersionInfo.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RetrieveVersionInfo.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.datetime.UTCDateTime;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.VersionHistoryItem;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Version;
 import java.util.HashMap;
 import java.util.LinkedList;
+import org.caosdb.datetime.UTCDateTime;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.VersionHistoryItem;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Version;
 
 public class RetrieveVersionInfo extends RetrieveVersionHistory {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/RuleLoader.java b/src/main/java/org/caosdb/server/database/backend/transaction/RuleLoader.java
similarity index 82%
rename from src/main/java/caosdb/server/database/backend/transaction/RuleLoader.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/RuleLoader.java
index 303029b42179a697c939767e2caf4d490a803a69..2bc6a92a2449a8ba2d42119c0ba743129bcee2ac 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/RuleLoader.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/RuleLoader.java
@@ -22,19 +22,19 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.caching.Cache;
-import caosdb.server.database.CacheableBackendTransaction;
-import caosdb.server.database.backend.interfaces.RuleLoaderImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.Rule;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.jobs.Job;
-import caosdb.server.transaction.Transaction;
 import java.util.ArrayList;
 import org.apache.commons.jcs.access.behavior.ICacheAccess;
+import org.caosdb.server.caching.Cache;
+import org.caosdb.server.database.CacheableBackendTransaction;
+import org.caosdb.server.database.backend.interfaces.RuleLoaderImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.Rule;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.jobs.Job;
+import org.caosdb.server.transaction.Transaction;
 
 public class RuleLoader extends CacheableBackendTransaction<String, ArrayList<Rule>> {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/SetFileCheckedTimestamp.java b/src/main/java/org/caosdb/server/database/backend/transaction/SetFileCheckedTimestamp.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/transaction/SetFileCheckedTimestamp.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/SetFileCheckedTimestamp.java
index 1dd20a83a2fc27547a67eb6fce0d532ac24f442c..f7bf76c3d1cdcde7e712dd6d1ebe022c7300bea8 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/SetFileCheckedTimestamp.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/SetFileCheckedTimestamp.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.SetFileCheckedTimestampImpl;
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.SetFileCheckedTimestampImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class SetFileCheckedTimestamp extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/SetFileChecksum.java b/src/main/java/org/caosdb/server/database/backend/transaction/SetFileChecksum.java
similarity index 71%
rename from src/main/java/caosdb/server/database/backend/transaction/SetFileChecksum.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/SetFileChecksum.java
index b19bceabef39d48cdd778835f3d2840bbec29297..afca8be4afa72ac755be595ae4345bfe134ca0ca 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/SetFileChecksum.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/SetFileChecksum.java
@@ -1,8 +1,8 @@
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.SetFileChecksumImpl;
-import caosdb.server.entity.EntityInterface;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.SetFileChecksumImpl;
+import org.caosdb.server.entity.EntityInterface;
 
 public class SetFileChecksum extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/SetPassword.java b/src/main/java/org/caosdb/server/database/backend/transaction/SetPassword.java
similarity index 84%
rename from src/main/java/caosdb/server/database/backend/transaction/SetPassword.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/SetPassword.java
index 1f6c1e5501cd6d810b85b243fd6c3274c0598feb..a22815ab9ddb09080c34a519454db53c18aeda92 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/SetPassword.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/SetPassword.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.SetPasswordImpl;
-import caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.SetPasswordImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class SetPassword extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/SetPermissionRules.java b/src/main/java/org/caosdb/server/database/backend/transaction/SetPermissionRules.java
similarity index 82%
rename from src/main/java/caosdb/server/database/backend/transaction/SetPermissionRules.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/SetPermissionRules.java
index a632f299e223d2b46105b81f9b6b784b0cd58204..30986303b11eba2fb63b00d17029b81855277791 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/SetPermissionRules.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/SetPermissionRules.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.SetPermissionRulesImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.permissions.PermissionRule;
 import java.util.Set;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.SetPermissionRulesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.permissions.PermissionRule;
 
 public class SetPermissionRules extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/SetQueryTemplateDefinition.java b/src/main/java/org/caosdb/server/database/backend/transaction/SetQueryTemplateDefinition.java
similarity index 81%
rename from src/main/java/caosdb/server/database/backend/transaction/SetQueryTemplateDefinition.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/SetQueryTemplateDefinition.java
index 10618ff04e8f00c18c60c796e873f7b3ae370d45..b697b04fa2be50c52c7cc565e31a58c3b2a4a3c2 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/SetQueryTemplateDefinition.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/SetQueryTemplateDefinition.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.SetQueryTemplateDefinitionImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.EntityInterface;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.SetQueryTemplateDefinitionImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.EntityInterface;
 
 public class SetQueryTemplateDefinition extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/SyncStats.java b/src/main/java/org/caosdb/server/database/backend/transaction/SyncStats.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/transaction/SyncStats.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/SyncStats.java
index 8d82c1884d23f7a6bb1af5dafc7d5bb5d8945c56..d2650affcc956b82b8aed76b716221a6d43d5dc8 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/SyncStats.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/SyncStats.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.SyncStatsImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.utils.ServerStat;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.SyncStatsImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.utils.ServerStat;
 
 public class SyncStats extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/UpdateEntity.java b/src/main/java/org/caosdb/server/database/backend/transaction/UpdateEntity.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/transaction/UpdateEntity.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/UpdateEntity.java
index a7c9ba43f32b1ef97a6a09544041b39a2cd5c71a..9c20cb1d2d112e8d64ce5be2cfa8a7f8da20fe10 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/UpdateEntity.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/UpdateEntity.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.utils.EntityStatus;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.utils.EntityStatus;
 
 public class UpdateEntity extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/UpdateSparseEntity.java b/src/main/java/org/caosdb/server/database/backend/transaction/UpdateSparseEntity.java
similarity index 80%
rename from src/main/java/caosdb/server/database/backend/transaction/UpdateSparseEntity.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/UpdateSparseEntity.java
index 309ff9cbde0131f4b90cc89301a2338a8b92971f..2385ec843a3d499d1184b58eca06f8ae05cbe4f8 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/UpdateSparseEntity.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/UpdateSparseEntity.java
@@ -22,14 +22,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
-
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.UpdateSparseEntityImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.SparseEntity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Version;
+package org.caosdb.server.database.backend.transaction;
+
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.UpdateSparseEntityImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Version;
 
 public class UpdateSparseEntity extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/UpdateUser.java b/src/main/java/org/caosdb/server/database/backend/transaction/UpdateUser.java
similarity index 78%
rename from src/main/java/caosdb/server/database/backend/transaction/UpdateUser.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/UpdateUser.java
index 4f2c2776e936f7f5dd56edcaf2b55c97e8f430bb..07740f88f3fe7f301ffd24ec85a330c8b0afdce7 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/UpdateUser.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/UpdateUser.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.accessControl.Principal;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.UpdateUserImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoUser;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.UpdateUserImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoUser;
 
 public class UpdateUser extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/backend/transaction/UpdateUserRoles.java b/src/main/java/org/caosdb/server/database/backend/transaction/UpdateUserRoles.java
similarity index 83%
rename from src/main/java/caosdb/server/database/backend/transaction/UpdateUserRoles.java
rename to src/main/java/org/caosdb/server/database/backend/transaction/UpdateUserRoles.java
index 359bbb3a3efa35e37d38b733c204ff8ca2840028..66b3cb8e6f03c3abde0ccaa051a1228057d973f7 100644
--- a/src/main/java/caosdb/server/database/backend/transaction/UpdateUserRoles.java
+++ b/src/main/java/org/caosdb/server/database/backend/transaction/UpdateUserRoles.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
-import caosdb.server.accessControl.Principal;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.UpdateUserRolesImpl;
-import caosdb.server.database.exceptions.TransactionException;
 import java.util.HashSet;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.UpdateUserRolesImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
 
 public class UpdateUserRoles extends BackendTransaction {
 
diff --git a/src/main/java/caosdb/server/database/exceptions/EntityDoesNotExistException.java b/src/main/java/org/caosdb/server/database/exceptions/EntityDoesNotExistException.java
similarity index 89%
rename from src/main/java/caosdb/server/database/exceptions/EntityDoesNotExistException.java
rename to src/main/java/org/caosdb/server/database/exceptions/EntityDoesNotExistException.java
index 29bd175f826fbad3a386b63201561cd50d60921b..f282a355d64b583482512e550c7b4de6e6ed84ec 100644
--- a/src/main/java/caosdb/server/database/exceptions/EntityDoesNotExistException.java
+++ b/src/main/java/org/caosdb/server/database/exceptions/EntityDoesNotExistException.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.database.exceptions;
+package org.caosdb.server.database.exceptions;
 
 public class EntityDoesNotExistException extends TransactionException {
 
@@ -28,5 +28,5 @@ public class EntityDoesNotExistException extends TransactionException {
     super((String) null);
   }
 
-  private static final long serialVersionUID = -3514226960430855290L;
+  private static final long serialVersionUID = -6674784560815319076L;
 }
diff --git a/src/main/java/caosdb/server/database/exceptions/EntityWasNotUniqueException.java b/src/main/java/org/caosdb/server/database/exceptions/EntityWasNotUniqueException.java
similarity index 89%
rename from src/main/java/caosdb/server/database/exceptions/EntityWasNotUniqueException.java
rename to src/main/java/org/caosdb/server/database/exceptions/EntityWasNotUniqueException.java
index 8a5ab28687b79bfc1a23c8d754b5ca6254155b62..b792cd45905133ff6a21c744b83781248a818b7f 100644
--- a/src/main/java/caosdb/server/database/exceptions/EntityWasNotUniqueException.java
+++ b/src/main/java/org/caosdb/server/database/exceptions/EntityWasNotUniqueException.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.exceptions;
+package org.caosdb.server.database.exceptions;
 
 public class EntityWasNotUniqueException extends TransactionException {
-  private static final long serialVersionUID = -6520827199072001991L;
+  private static final long serialVersionUID = 5181653214330392866L;
 
   public EntityWasNotUniqueException() {
     super((String) null);
diff --git a/src/main/java/caosdb/server/database/exceptions/IntegrityException.java b/src/main/java/org/caosdb/server/database/exceptions/IntegrityException.java
similarity index 90%
rename from src/main/java/caosdb/server/database/exceptions/IntegrityException.java
rename to src/main/java/org/caosdb/server/database/exceptions/IntegrityException.java
index e3632fe390ac660d3a7c4354cace0fd2afb61dbd..440c1e574289285313416ba39f4fbe403d9febfe 100644
--- a/src/main/java/caosdb/server/database/exceptions/IntegrityException.java
+++ b/src/main/java/org/caosdb/server/database/exceptions/IntegrityException.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.database.exceptions;
+package org.caosdb.server.database.exceptions;
 
 public class IntegrityException extends TransactionException {
 
@@ -32,5 +32,5 @@ public class IntegrityException extends TransactionException {
     super(t);
   }
 
-  private static final long serialVersionUID = 2897982417503972644L;
+  private static final long serialVersionUID = 8589937458368069183L;
 }
diff --git a/src/main/java/caosdb/server/database/exceptions/RolledBackException.java b/src/main/java/org/caosdb/server/database/exceptions/RolledBackException.java
similarity index 89%
rename from src/main/java/caosdb/server/database/exceptions/RolledBackException.java
rename to src/main/java/org/caosdb/server/database/exceptions/RolledBackException.java
index 0b371d77bb5dc6cb5df057f6ff46f42c0bd879ef..c99fcbbdd9b1043bf3477b552365943e0aae1a5c 100644
--- a/src/main/java/caosdb/server/database/exceptions/RolledBackException.java
+++ b/src/main/java/org/caosdb/server/database/exceptions/RolledBackException.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.database.exceptions;
+package org.caosdb.server.database.exceptions;
 
 public class RolledBackException extends TransactionException {
 
@@ -28,5 +28,5 @@ public class RolledBackException extends TransactionException {
     super(t);
   }
 
-  private static final long serialVersionUID = -5448737641962261951L;
+  private static final long serialVersionUID = 8452626730418231001L;
 }
diff --git a/src/main/java/caosdb/server/database/exceptions/TransactionException.java b/src/main/java/org/caosdb/server/database/exceptions/TransactionException.java
similarity index 90%
rename from src/main/java/caosdb/server/database/exceptions/TransactionException.java
rename to src/main/java/org/caosdb/server/database/exceptions/TransactionException.java
index 13d306a80fda36ea9310039d2c4fb755c1b7819a..ac76fe76afe9a29532071978efe47d132cb4aa9d 100644
--- a/src/main/java/caosdb/server/database/exceptions/TransactionException.java
+++ b/src/main/java/org/caosdb/server/database/exceptions/TransactionException.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.database.exceptions;
+package org.caosdb.server.database.exceptions;
 
 public class TransactionException extends RuntimeException {
 
-  private static final long serialVersionUID = -8623817359165387081L;
+  private static final long serialVersionUID = -187878233305807610L;
 
   public TransactionException(final String string) {
     super(string);
diff --git a/src/main/java/caosdb/server/database/misc/DBHelper.java b/src/main/java/org/caosdb/server/database/misc/DBHelper.java
similarity index 91%
rename from src/main/java/caosdb/server/database/misc/DBHelper.java
rename to src/main/java/org/caosdb/server/database/misc/DBHelper.java
index a9b3ea8930cbb874d09ec41e00dbbd2d5fc1d8a0..27bd1d089543d905416a471b6103f9b3be6e3c5b 100644
--- a/src/main/java/caosdb/server/database/misc/DBHelper.java
+++ b/src/main/java/org/caosdb/server/database/misc/DBHelper.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.database.misc;
+package org.caosdb.server.database.misc;
 
-import caosdb.server.transaction.TransactionInterface;
+import org.caosdb.server.transaction.TransactionInterface;
 
 public interface DBHelper {
 
diff --git a/src/main/java/caosdb/server/database/misc/RollBackHandler.java b/src/main/java/org/caosdb/server/database/misc/RollBackHandler.java
similarity index 88%
rename from src/main/java/caosdb/server/database/misc/RollBackHandler.java
rename to src/main/java/org/caosdb/server/database/misc/RollBackHandler.java
index 38bf00af75d290d9d276beb64a74f03950758734..1591d858aaf9a35ca4851e4627ef6f0b6fc5bb41 100644
--- a/src/main/java/caosdb/server/database/misc/RollBackHandler.java
+++ b/src/main/java/org/caosdb/server/database/misc/RollBackHandler.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.database.misc;
+package org.caosdb.server.database.misc;
 
-import caosdb.server.transaction.TransactionInterface;
-import caosdb.server.utils.UndoHandler;
+import org.caosdb.server.transaction.TransactionInterface;
+import org.caosdb.server.utils.UndoHandler;
 
 public class RollBackHandler extends UndoHandler implements DBHelper {
 
diff --git a/src/main/java/caosdb/server/database/misc/TransactionBenchmark.java b/src/main/java/org/caosdb/server/database/misc/TransactionBenchmark.java
similarity index 94%
rename from src/main/java/caosdb/server/database/misc/TransactionBenchmark.java
rename to src/main/java/org/caosdb/server/database/misc/TransactionBenchmark.java
index 2d263df490a5d54abd35bef1005b2980c66f1bae..397a1f52201727d17b057dc92567893798b63cf5 100644
--- a/src/main/java/caosdb/server/database/misc/TransactionBenchmark.java
+++ b/src/main/java/org/caosdb/server/database/misc/TransactionBenchmark.java
@@ -20,13 +20,8 @@
  *
  * ** end header
  */
-package caosdb.server.database.misc;
+package org.caosdb.server.database.misc;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.utils.CronJob;
-import caosdb.server.utils.Info;
-import caosdb.server.utils.ServerStat;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -38,10 +33,15 @@ import java.util.Map;
 import java.util.Map.Entry;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.utils.CronJob;
+import org.caosdb.server.utils.Info;
+import org.caosdb.server.utils.ServerStat;
 import org.jdom2.Element;
 
 class Counter implements Serializable {
-  private static final long serialVersionUID = 8679355597595634790L;
+  private static final long serialVersionUID = -95212746021180579L;
   private int c;
 
   public Counter(int initial) {
@@ -58,7 +58,7 @@ class Counter implements Serializable {
 }
 
 class Timer implements Serializable {
-  private static final long serialVersionUID = 7895352555775799409L;
+  private static final long serialVersionUID = -95212746021180579L;
   private long c;
 
   public Timer(long initial) {
@@ -80,7 +80,7 @@ class Timer implements Serializable {
  * Measurement object knows nothing about other Measurement objects.
  */
 class Measurement implements Serializable {
-  private static final long serialVersionUID = -2429348657382168470L;
+  private static final long serialVersionUID = -95212746021180579L;
   private final Timer timer;
   private final Counter counter;
   private final String name;
@@ -130,7 +130,7 @@ class Measurement implements Serializable {
 
 class RootBenchmark extends TransactionBenchmark implements ServerStat {
 
-  private static final long serialVersionUID = 8070554107783826603L;
+  private static final long serialVersionUID = -95212746021180579L;
   private transient boolean synced = false;
   /**
    * Fetch old data (from before last shutdown) and fill it into this instance.
@@ -208,7 +208,7 @@ class RootBenchmark extends TransactionBenchmark implements ServerStat {
 
 class SubBenchmark extends TransactionBenchmark {
 
-  private static final long serialVersionUID = 323147917189195974L;
+  private static final long serialVersionUID = -95212746021180579L;
   private final String name;
 
   public SubBenchmark(String name) {
@@ -270,7 +270,7 @@ class JdomConverter {
  */
 public abstract class TransactionBenchmark implements Serializable {
 
-  private static final long serialVersionUID = -8916163825450491068L;
+  private static final long serialVersionUID = -95212746021180579L;
   private static final TransactionBenchmark rootService = new RootBenchmark().init();
   public final transient Logger logger = LogManager.getLogger(getClass());
   protected static final transient boolean isActive =
@@ -459,8 +459,8 @@ public abstract class TransactionBenchmark implements Serializable {
   /**
    * Return a nice String for the StackTraceElement.
    *
-   * <p>The String is composed like this: CLASS::METHOD [LINE_NUMBER], with "caosdb.server." removed
-   * from the class name.
+   * <p>The String is composed like this: CLASS::METHOD [LINE_NUMBER], with "org.caosdb.server."
+   * removed from the class name.
    */
   private static String prettifyStackTraceElement(final StackTraceElement ste) {
     return ste.getClassName().replaceFirst("caosdb\\.server\\.", "")
diff --git a/src/main/java/caosdb/server/database/proto/FlatProperty.java b/src/main/java/org/caosdb/server/database/proto/FlatProperty.java
similarity index 91%
rename from src/main/java/caosdb/server/database/proto/FlatProperty.java
rename to src/main/java/org/caosdb/server/database/proto/FlatProperty.java
index a413b461305093671c57acf72a104e631ae81643..b92d3def38d26f0f5f6cd6a0455d472b8f4f3ccb 100644
--- a/src/main/java/caosdb/server/database/proto/FlatProperty.java
+++ b/src/main/java/org/caosdb/server/database/proto/FlatProperty.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.database.proto;
+package org.caosdb.server.database.proto;
 
 import java.io.Serializable;
 
 public class FlatProperty implements Serializable {
 
-  private static final long serialVersionUID = -9154427080823222776L;
+  private static final long serialVersionUID = 6039288034435124195L;
   public Integer id = null;
   public String value = null;
   public String status = null;
diff --git a/src/main/java/caosdb/server/database/proto/LinCon.java b/src/main/java/org/caosdb/server/database/proto/LinCon.java
similarity index 97%
rename from src/main/java/caosdb/server/database/proto/LinCon.java
rename to src/main/java/org/caosdb/server/database/proto/LinCon.java
index ba75d3c5a584f9eec6e7525835155bf2ced72ed8..719e760215cd8ec5b45bc30c5b154dca64e3b740 100644
--- a/src/main/java/caosdb/server/database/proto/LinCon.java
+++ b/src/main/java/org/caosdb/server/database/proto/LinCon.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.database.proto;
+package org.caosdb.server.database.proto;
 
 public class LinCon {
   public final long signature_from;
diff --git a/src/main/java/caosdb/server/database/proto/ProtoGroup.java b/src/main/java/org/caosdb/server/database/proto/ProtoGroup.java
similarity index 91%
rename from src/main/java/caosdb/server/database/proto/ProtoGroup.java
rename to src/main/java/org/caosdb/server/database/proto/ProtoGroup.java
index 990be2ff4e884ef8981fb10388a094a1a7949b1c..31d589862cfd353a176880ea33e76327ec32ba6e 100644
--- a/src/main/java/caosdb/server/database/proto/ProtoGroup.java
+++ b/src/main/java/org/caosdb/server/database/proto/ProtoGroup.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.proto;
+package org.caosdb.server.database.proto;
 
 import java.io.Serializable;
 import java.util.HashSet;
 
 public class ProtoGroup implements Serializable {
 
-  private static final long serialVersionUID = 1659901727564921926L;
+  private static final long serialVersionUID = 7647402460488051845L;
   public String name = null;
   public String description = null;
   public HashSet<String> users = null;
diff --git a/src/main/java/caosdb/server/database/proto/ProtoInfo.java b/src/main/java/org/caosdb/server/database/proto/ProtoInfo.java
similarity index 96%
rename from src/main/java/caosdb/server/database/proto/ProtoInfo.java
rename to src/main/java/org/caosdb/server/database/proto/ProtoInfo.java
index 36470495680beaa336c86e94598d096b196dc5e3..e8486e2f0ec7e1d92818bea2793f37dc34405da3 100644
--- a/src/main/java/caosdb/server/database/proto/ProtoInfo.java
+++ b/src/main/java/org/caosdb/server/database/proto/ProtoInfo.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.database.proto;
+package org.caosdb.server.database.proto;
 
 public class ProtoInfo {
   public Integer recordsCount = null;
diff --git a/src/main/java/caosdb/server/database/proto/ProtoProperty.java b/src/main/java/org/caosdb/server/database/proto/ProtoProperty.java
similarity index 90%
rename from src/main/java/caosdb/server/database/proto/ProtoProperty.java
rename to src/main/java/org/caosdb/server/database/proto/ProtoProperty.java
index 6e13836322e52715d2afdb1d6ecbac946e290212..44acaa024513d3f4b8d89c3f59bda9baf9de3044 100644
--- a/src/main/java/caosdb/server/database/proto/ProtoProperty.java
+++ b/src/main/java/org/caosdb/server/database/proto/ProtoProperty.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.proto;
+package org.caosdb.server.database.proto;
 
 import java.io.Serializable;
 import java.util.List;
 
 public class ProtoProperty implements Serializable {
 
-  private static final long serialVersionUID = 6797170359746385913L;
+  private static final long serialVersionUID = 7731301985162924975L;
   public List<FlatProperty> subProperties = null;
   public FlatProperty property = null;
 }
diff --git a/src/main/java/caosdb/server/database/proto/ProtoTransactionLogMessage.java b/src/main/java/org/caosdb/server/database/proto/ProtoTransactionLogMessage.java
similarity index 93%
rename from src/main/java/caosdb/server/database/proto/ProtoTransactionLogMessage.java
rename to src/main/java/org/caosdb/server/database/proto/ProtoTransactionLogMessage.java
index a34d962854852409fd9e14c2125de56ce61326f5..dd5cdbebcda7dd2c5c7f9ca93be69972ecef0e2c 100644
--- a/src/main/java/caosdb/server/database/proto/ProtoTransactionLogMessage.java
+++ b/src/main/java/org/caosdb/server/database/proto/ProtoTransactionLogMessage.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.database.proto;
+package org.caosdb.server.database.proto;
 
 import java.io.Serializable;
 
@@ -41,7 +41,7 @@ public class ProtoTransactionLogMessage implements Serializable {
 
   public ProtoTransactionLogMessage() {}
 
-  private static final long serialVersionUID = 452072581780180334L;
+  private static final long serialVersionUID = -5856887517281480754L;
   public String transaction = null;
   public String realm;
   public String username = null;
diff --git a/src/main/java/caosdb/server/database/proto/ProtoUser.java b/src/main/java/org/caosdb/server/database/proto/ProtoUser.java
similarity index 88%
rename from src/main/java/caosdb/server/database/proto/ProtoUser.java
rename to src/main/java/org/caosdb/server/database/proto/ProtoUser.java
index 40f8f490dc9e4453525be9e75697df5acc514e97..cafa32d2580c8a09a97e1cd3ee48c2ec59a454cf 100644
--- a/src/main/java/caosdb/server/database/proto/ProtoUser.java
+++ b/src/main/java/org/caosdb/server/database/proto/ProtoUser.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.database.proto;
+package org.caosdb.server.database.proto;
 
-import caosdb.server.accessControl.UserStatus;
 import java.io.Serializable;
 import java.util.Set;
+import org.caosdb.server.accessControl.UserStatus;
 
 public class ProtoUser implements Serializable {
 
   public ProtoUser() {}
 
-  private static final long serialVersionUID = 248172393585577797L;
+  private static final long serialVersionUID = -2704114543883567439L;
 
   public UserStatus status = null;
   public String name = null;
diff --git a/src/main/java/caosdb/server/database/proto/Rule.java b/src/main/java/org/caosdb/server/database/proto/Rule.java
similarity index 87%
rename from src/main/java/caosdb/server/database/proto/Rule.java
rename to src/main/java/org/caosdb/server/database/proto/Rule.java
index 1bda3f437b54546ff3a5010b44f737a49dac900d..3d25f7662052b5b59f45255218c1191cf011761e 100644
--- a/src/main/java/caosdb/server/database/proto/Rule.java
+++ b/src/main/java/org/caosdb/server/database/proto/Rule.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.database.proto;
+package org.caosdb.server.database.proto;
 
-import caosdb.server.jobs.core.Mode;
 import java.io.Serializable;
+import org.caosdb.server.jobs.core.Mode;
 
 public class Rule implements Serializable {
 
-  private static final long serialVersionUID = 7648532019937680150L;
+  private static final long serialVersionUID = 1122097540596265945L;
 
   public int domain = 0;
   public int entity = 0;
diff --git a/src/main/java/caosdb/server/database/proto/SparseEntity.java b/src/main/java/org/caosdb/server/database/proto/SparseEntity.java
similarity index 94%
rename from src/main/java/caosdb/server/database/proto/SparseEntity.java
rename to src/main/java/org/caosdb/server/database/proto/SparseEntity.java
index d70d4ae026eb72d8c782b763ae3fc21d03a73064..3d5a29c9c4a69670d49347864b7ed885e758192f 100644
--- a/src/main/java/caosdb/server/database/proto/SparseEntity.java
+++ b/src/main/java/org/caosdb/server/database/proto/SparseEntity.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.database.proto;
+package org.caosdb.server.database.proto;
 
 /**
  * Rather abstract representation of a sparse Entity used by the data base abstraction layer.
@@ -30,7 +30,7 @@ package caosdb.server.database.proto;
  */
 public class SparseEntity extends VerySparseEntity {
 
-  private static final long serialVersionUID = 2603892933659461049L;
+  private static final long serialVersionUID = -560259468853956476L;
 
   public String collection = null;
   public String datatype = null;
diff --git a/src/main/java/caosdb/server/database/proto/VersionHistoryItem.java b/src/main/java/org/caosdb/server/database/proto/VersionHistoryItem.java
similarity index 69%
rename from src/main/java/caosdb/server/database/proto/VersionHistoryItem.java
rename to src/main/java/org/caosdb/server/database/proto/VersionHistoryItem.java
index e671950f39f40c0b93069d031f636ad964560508..26109760ecde53ea20405bd02095cd951818677d 100644
--- a/src/main/java/caosdb/server/database/proto/VersionHistoryItem.java
+++ b/src/main/java/org/caosdb/server/database/proto/VersionHistoryItem.java
@@ -1,11 +1,11 @@
-package caosdb.server.database.proto;
+package org.caosdb.server.database.proto;
 
 import java.io.Serializable;
 import java.util.LinkedList;
 
 public class VersionHistoryItem implements Serializable {
 
-  private static final long serialVersionUID = 7855704308135158698L;
+  private static final long serialVersionUID = 6319362462701459355L;
   public String id = null;
   public LinkedList<String> parents = null;
   public Long seconds = null;
diff --git a/src/main/java/caosdb/server/database/proto/VerySparseEntity.java b/src/main/java/org/caosdb/server/database/proto/VerySparseEntity.java
similarity index 92%
rename from src/main/java/caosdb/server/database/proto/VerySparseEntity.java
rename to src/main/java/org/caosdb/server/database/proto/VerySparseEntity.java
index ae341830f7b2ba20a04d902fd8c7068ce3527260..8f32bf52038a00275568688b016b830b19fba5f0 100644
--- a/src/main/java/caosdb/server/database/proto/VerySparseEntity.java
+++ b/src/main/java/org/caosdb/server/database/proto/VerySparseEntity.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.database.proto;
+package org.caosdb.server.database.proto;
 
 import java.io.Serializable;
 
@@ -33,7 +33,7 @@ import java.io.Serializable;
  */
 public class VerySparseEntity implements Serializable {
 
-  private static final long serialVersionUID = -5950583518110327486L;
+  private static final long serialVersionUID = 7370925076064714740L;
 
   public Integer id = null;
   public String name = null;
diff --git a/src/main/java/caosdb/server/datatype/AbstractCollectionDatatype.java b/src/main/java/org/caosdb/server/datatype/AbstractCollectionDatatype.java
similarity index 98%
rename from src/main/java/caosdb/server/datatype/AbstractCollectionDatatype.java
rename to src/main/java/org/caosdb/server/datatype/AbstractCollectionDatatype.java
index 5f07bbe9a2880f5b7fd62fdb66c708e0a2739ab3..cbd822ee10a24127483fae9adff440404a243771 100644
--- a/src/main/java/caosdb/server/datatype/AbstractCollectionDatatype.java
+++ b/src/main/java/org/caosdb/server/datatype/AbstractCollectionDatatype.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
 import java.util.HashMap;
 import java.util.regex.Matcher;
diff --git a/src/main/java/caosdb/server/datatype/AbstractDatatype.java b/src/main/java/org/caosdb/server/datatype/AbstractDatatype.java
similarity index 92%
rename from src/main/java/caosdb/server/datatype/AbstractDatatype.java
rename to src/main/java/org/caosdb/server/datatype/AbstractDatatype.java
index 0cde534aa74a05e33591d5e8d719316e7f1704f6..8dd9c22df4441db8b0fe882f613eb742106c983b 100644
--- a/src/main/java/caosdb/server/datatype/AbstractDatatype.java
+++ b/src/main/java/org/caosdb/server/datatype/AbstractDatatype.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.container.Container;
 import java.util.HashMap;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.container.Container;
 import org.reflections.Reflections;
 
 public abstract class AbstractDatatype {
@@ -86,7 +86,7 @@ public abstract class AbstractDatatype {
   }
 
   private static void loadClasses() throws Exception {
-    final Reflections datatypePackage = new Reflections("caosdb.server.datatype");
+    final Reflections datatypePackage = new Reflections("org.caosdb.server.datatype");
     for (final Class<? extends AbstractDatatype> c :
         datatypePackage.getSubTypesOf(AbstractDatatype.class)) {
       if (c.isAnnotationPresent(DatatypeDefinition.class)) {
diff --git a/src/main/java/caosdb/server/datatype/AbstractEnumValue.java b/src/main/java/org/caosdb/server/datatype/AbstractEnumValue.java
similarity index 94%
rename from src/main/java/caosdb/server/datatype/AbstractEnumValue.java
rename to src/main/java/org/caosdb/server/datatype/AbstractEnumValue.java
index 33303f22eccbca7fcffafdb9737d4e0880dd98ca..06216c822c705fa6fbaef949386966af15ff6b13 100644
--- a/src/main/java/caosdb/server/datatype/AbstractEnumValue.java
+++ b/src/main/java/org/caosdb/server/datatype/AbstractEnumValue.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
-import caosdb.server.datatype.AbstractDatatype.Table;
 import com.google.common.base.Objects;
+import org.caosdb.server.datatype.AbstractDatatype.Table;
 import org.jdom2.Element;
 
 public abstract class AbstractEnumValue implements SingleValue {
diff --git a/src/main/java/caosdb/server/datatype/BooleanDatatype.java b/src/main/java/org/caosdb/server/datatype/BooleanDatatype.java
similarity index 92%
rename from src/main/java/caosdb/server/datatype/BooleanDatatype.java
rename to src/main/java/org/caosdb/server/datatype/BooleanDatatype.java
index c5ddafb32fac059f49416b0926b9f532e38a3cd3..92c3440aeab6ef1cc86426c4e5d2356aef6720aa 100644
--- a/src/main/java/caosdb/server/datatype/BooleanDatatype.java
+++ b/src/main/java/org/caosdb/server/datatype/BooleanDatatype.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
-import caosdb.server.entity.Message;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.utils.ServerMessages;
 
 @DatatypeDefinition(name = "Boolean")
 public class BooleanDatatype extends AbstractDatatype {
diff --git a/src/main/java/caosdb/server/datatype/BooleanValue.java b/src/main/java/org/caosdb/server/datatype/BooleanValue.java
similarity index 97%
rename from src/main/java/caosdb/server/datatype/BooleanValue.java
rename to src/main/java/org/caosdb/server/datatype/BooleanValue.java
index f06cd4e5516fceeee459909bfde9ce60747834ea..0abfa0c917f21d246854cabcfe437fe48cb3d59e 100644
--- a/src/main/java/caosdb/server/datatype/BooleanValue.java
+++ b/src/main/java/org/caosdb/server/datatype/BooleanValue.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
 public class BooleanValue extends AbstractEnumValue {
 
diff --git a/src/main/java/caosdb/server/datatype/CaosEnum.java b/src/main/java/org/caosdb/server/datatype/CaosEnum.java
similarity index 98%
rename from src/main/java/caosdb/server/datatype/CaosEnum.java
rename to src/main/java/org/caosdb/server/datatype/CaosEnum.java
index 17615b2381c495a3b23b28ad9a2307f1e07bccb7..1040ab9a8114544dfd8a0d5a0a75660be4de5f07 100644
--- a/src/main/java/caosdb/server/datatype/CaosEnum.java
+++ b/src/main/java/org/caosdb/server/datatype/CaosEnum.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
 import com.google.common.base.Objects;
 import java.util.TreeSet;
diff --git a/src/main/java/caosdb/server/datatype/CollectionDatatypeFactory.java b/src/main/java/org/caosdb/server/datatype/CollectionDatatypeFactory.java
similarity index 96%
rename from src/main/java/caosdb/server/datatype/CollectionDatatypeFactory.java
rename to src/main/java/org/caosdb/server/datatype/CollectionDatatypeFactory.java
index 2ecd11549672cf23108d650aaadd61331903c322..1f80d937a8730891ace6a561d32f0a5bd3ce9a56 100644
--- a/src/main/java/caosdb/server/datatype/CollectionDatatypeFactory.java
+++ b/src/main/java/org/caosdb/server/datatype/CollectionDatatypeFactory.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
 public interface CollectionDatatypeFactory {
 
diff --git a/src/main/java/caosdb/server/datatype/CollectionValue.java b/src/main/java/org/caosdb/server/datatype/CollectionValue.java
similarity index 98%
rename from src/main/java/caosdb/server/datatype/CollectionValue.java
rename to src/main/java/org/caosdb/server/datatype/CollectionValue.java
index 3e70de7322af17cf27232446c1e4c984e73ae73a..55cbf0489c3f965e19784c80439d291930d89841 100644
--- a/src/main/java/caosdb/server/datatype/CollectionValue.java
+++ b/src/main/java/org/caosdb/server/datatype/CollectionValue.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
 import java.util.ArrayList;
 import java.util.Collections;
diff --git a/src/main/java/caosdb/server/datatype/DatatypeDefinition.java b/src/main/java/org/caosdb/server/datatype/DatatypeDefinition.java
similarity index 96%
rename from src/main/java/caosdb/server/datatype/DatatypeDefinition.java
rename to src/main/java/org/caosdb/server/datatype/DatatypeDefinition.java
index 3728a57b9c56f474548c882a7a558ad2cbcb6a73..b28ce312d6c5e4252efcdfdd0476d8307b09f021 100644
--- a/src/main/java/caosdb/server/datatype/DatatypeDefinition.java
+++ b/src/main/java/org/caosdb/server/datatype/DatatypeDefinition.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
diff --git a/src/main/java/caosdb/server/datatype/DateTimeDatatype.java b/src/main/java/org/caosdb/server/datatype/DateTimeDatatype.java
similarity index 84%
rename from src/main/java/caosdb/server/datatype/DateTimeDatatype.java
rename to src/main/java/org/caosdb/server/datatype/DateTimeDatatype.java
index 833a1502d8aecff798cb1c8aa9d0364e7d613ac4..574e40cb96097544a19cf46c4ad700e9ce442208 100644
--- a/src/main/java/caosdb/server/datatype/DateTimeDatatype.java
+++ b/src/main/java/org/caosdb/server/datatype/DateTimeDatatype.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
-import caosdb.datetime.Date;
-import caosdb.datetime.DateTimeFactory2;
-import caosdb.datetime.DateTimeInterface;
-import caosdb.datetime.UTCDateTime;
-import caosdb.server.entity.Message;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.datetime.Date;
+import org.caosdb.datetime.DateTimeFactory2;
+import org.caosdb.datetime.DateTimeInterface;
+import org.caosdb.datetime.UTCDateTime;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.utils.ServerMessages;
 
 @DatatypeDefinition(name = "DateTime")
 public class DateTimeDatatype extends AbstractDatatype {
diff --git a/src/main/java/caosdb/server/datatype/DoubleDatatype.java b/src/main/java/org/caosdb/server/datatype/DoubleDatatype.java
similarity index 92%
rename from src/main/java/caosdb/server/datatype/DoubleDatatype.java
rename to src/main/java/org/caosdb/server/datatype/DoubleDatatype.java
index c7daacdc00bf4895433a3d4c0fc67c025dc6220f..f2f8d2823e4483c59945c168f5e83d029bc6da6a 100644
--- a/src/main/java/caosdb/server/datatype/DoubleDatatype.java
+++ b/src/main/java/org/caosdb/server/datatype/DoubleDatatype.java
@@ -21,10 +21,10 @@
  * ** end header
  */
 // Copyright (c) 2019 Daniel Hornung
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
-import caosdb.server.entity.Message;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.utils.ServerMessages;
 
 @DatatypeDefinition(name = "Double")
 public class DoubleDatatype extends AbstractDatatype {
diff --git a/src/main/java/caosdb/server/datatype/FileDatatype.java b/src/main/java/org/caosdb/server/datatype/FileDatatype.java
similarity index 96%
rename from src/main/java/caosdb/server/datatype/FileDatatype.java
rename to src/main/java/org/caosdb/server/datatype/FileDatatype.java
index 62c838ca71ada9277944b09862342c46b94bead2..febc317dbd430181784b2312ff6d6162193f4100 100644
--- a/src/main/java/caosdb/server/datatype/FileDatatype.java
+++ b/src/main/java/org/caosdb/server/datatype/FileDatatype.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
 @DatatypeDefinition(name = "File")
 public class FileDatatype extends ReferenceDatatype {}
diff --git a/src/main/java/caosdb/server/datatype/GenericValue.java b/src/main/java/org/caosdb/server/datatype/GenericValue.java
similarity index 96%
rename from src/main/java/caosdb/server/datatype/GenericValue.java
rename to src/main/java/org/caosdb/server/datatype/GenericValue.java
index cffd62bbcbbb2dfffab2a7c55b2b7861b2bd9aae..e21841ee782a2ff86d2d993bbb0b9901a7835667 100644
--- a/src/main/java/caosdb/server/datatype/GenericValue.java
+++ b/src/main/java/org/caosdb/server/datatype/GenericValue.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
-import caosdb.server.datatype.AbstractDatatype.Table;
 import com.google.common.base.Objects;
+import org.caosdb.server.datatype.AbstractDatatype.Table;
 import org.jdom2.Element;
 
 public class GenericValue implements SingleValue {
diff --git a/src/main/java/caosdb/server/datatype/IndexedSingleValue.java b/src/main/java/org/caosdb/server/datatype/IndexedSingleValue.java
similarity index 95%
rename from src/main/java/caosdb/server/datatype/IndexedSingleValue.java
rename to src/main/java/org/caosdb/server/datatype/IndexedSingleValue.java
index f33db43ef0ca8aa50bc9fcca54a232965e98f29a..a9ed584b3ee858e6de2bbb84ad4a43da820cedb0 100644
--- a/src/main/java/caosdb/server/datatype/IndexedSingleValue.java
+++ b/src/main/java/org/caosdb/server/datatype/IndexedSingleValue.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
-import caosdb.server.datatype.AbstractDatatype.Table;
+import org.caosdb.server.datatype.AbstractDatatype.Table;
 import org.jdom2.Element;
 
 public class IndexedSingleValue implements SingleValue, Comparable<IndexedSingleValue> {
diff --git a/src/main/java/caosdb/server/datatype/IntegerDatatype.java b/src/main/java/org/caosdb/server/datatype/IntegerDatatype.java
similarity index 91%
rename from src/main/java/caosdb/server/datatype/IntegerDatatype.java
rename to src/main/java/org/caosdb/server/datatype/IntegerDatatype.java
index 4ab8d94dc97d0060335b99f2c91dd05f05e1dc55..b5ac2d971c7edd1eaf3947eacf1d1f94f967d808 100644
--- a/src/main/java/caosdb/server/datatype/IntegerDatatype.java
+++ b/src/main/java/org/caosdb/server/datatype/IntegerDatatype.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
-import caosdb.server.entity.Message;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.utils.ServerMessages;
 
 @DatatypeDefinition(name = "Integer")
 public class IntegerDatatype extends AbstractDatatype {
diff --git a/src/main/java/caosdb/server/datatype/ListDatatype.java b/src/main/java/org/caosdb/server/datatype/ListDatatype.java
similarity index 96%
rename from src/main/java/caosdb/server/datatype/ListDatatype.java
rename to src/main/java/org/caosdb/server/datatype/ListDatatype.java
index 877901458dcf94fee17a9f5ac8c69f1026609322..bdf148e66638757ba5ccc315a7eac557774d8f63 100644
--- a/src/main/java/caosdb/server/datatype/ListDatatype.java
+++ b/src/main/java/org/caosdb/server/datatype/ListDatatype.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
-import caosdb.server.entity.Message;
+import org.caosdb.server.entity.Message;
 
 public class ListDatatype extends AbstractCollectionDatatype {
 
diff --git a/src/main/java/caosdb/server/datatype/ListDatatypeFactory.java b/src/main/java/org/caosdb/server/datatype/ListDatatypeFactory.java
similarity index 96%
rename from src/main/java/caosdb/server/datatype/ListDatatypeFactory.java
rename to src/main/java/org/caosdb/server/datatype/ListDatatypeFactory.java
index 9faf9cafba914a67bd474af9f5f7cf66a2456767..d1999f13c794a496657139dfeef78b0584784082 100644
--- a/src/main/java/caosdb/server/datatype/ListDatatypeFactory.java
+++ b/src/main/java/org/caosdb/server/datatype/ListDatatypeFactory.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
 public class ListDatatypeFactory implements CollectionDatatypeFactory {
 
diff --git a/src/main/java/caosdb/server/datatype/ReferenceDatatype.java b/src/main/java/org/caosdb/server/datatype/ReferenceDatatype.java
similarity index 94%
rename from src/main/java/caosdb/server/datatype/ReferenceDatatype.java
rename to src/main/java/org/caosdb/server/datatype/ReferenceDatatype.java
index 1675f028987516ae8e6cadc8aaaa2e6807f35221..42f60cebc116d23137d359c11015a2978233234e 100644
--- a/src/main/java/caosdb/server/datatype/ReferenceDatatype.java
+++ b/src/main/java/org/caosdb/server/datatype/ReferenceDatatype.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
-import caosdb.server.entity.Message;
+import org.caosdb.server.entity.Message;
 
 @DatatypeDefinition(name = "Reference")
 public class ReferenceDatatype extends AbstractDatatype {
diff --git a/src/main/java/caosdb/server/datatype/ReferenceDatatype2.java b/src/main/java/org/caosdb/server/datatype/ReferenceDatatype2.java
similarity index 93%
rename from src/main/java/caosdb/server/datatype/ReferenceDatatype2.java
rename to src/main/java/org/caosdb/server/datatype/ReferenceDatatype2.java
index 87c17079b0facdc193ea79dd6005598f7fe151b6..6d96d6deaae43d4d854875424129b7558d0fddf0 100644
--- a/src/main/java/caosdb/server/datatype/ReferenceDatatype2.java
+++ b/src/main/java/org/caosdb/server/datatype/ReferenceDatatype2.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
 
 public class ReferenceDatatype2 extends ReferenceDatatype {
 
diff --git a/src/main/java/caosdb/server/datatype/ReferenceValue.java b/src/main/java/org/caosdb/server/datatype/ReferenceValue.java
similarity index 96%
rename from src/main/java/caosdb/server/datatype/ReferenceValue.java
rename to src/main/java/org/caosdb/server/datatype/ReferenceValue.java
index 77f7aa8c56d97b8dc5abf914c0b6c88749683d69..89601b50a46cbf838a995a222b0d4c43150f8a19 100644
--- a/src/main/java/caosdb/server/datatype/ReferenceValue.java
+++ b/src/main/java/org/caosdb/server/datatype/ReferenceValue.java
@@ -22,13 +22,13 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
-import caosdb.server.datatype.AbstractDatatype.Table;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.utils.ServerMessages;
 import java.util.Objects;
+import org.caosdb.server.datatype.AbstractDatatype.Table;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Element;
 
 /**
diff --git a/src/main/java/caosdb/server/datatype/SingleValue.java b/src/main/java/org/caosdb/server/datatype/SingleValue.java
similarity index 96%
rename from src/main/java/caosdb/server/datatype/SingleValue.java
rename to src/main/java/org/caosdb/server/datatype/SingleValue.java
index 2ae17a6122035387f31466a74c0468d9fde80e36..cfe2b6404119265c9cccc74349553557467cff56 100644
--- a/src/main/java/caosdb/server/datatype/SingleValue.java
+++ b/src/main/java/org/caosdb/server/datatype/SingleValue.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
 public interface SingleValue extends Value {
 
diff --git a/src/main/java/caosdb/server/datatype/TextDatatype.java b/src/main/java/org/caosdb/server/datatype/TextDatatype.java
similarity index 93%
rename from src/main/java/caosdb/server/datatype/TextDatatype.java
rename to src/main/java/org/caosdb/server/datatype/TextDatatype.java
index f173243f1414bbcf02a0880b3b442eb70823a334..af06ed6de1f0f49b481b2a706f529037e555785e 100644
--- a/src/main/java/caosdb/server/datatype/TextDatatype.java
+++ b/src/main/java/org/caosdb/server/datatype/TextDatatype.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
-import caosdb.server.entity.Message;
+import org.caosdb.server.entity.Message;
 
 @DatatypeDefinition(name = "Text")
 public class TextDatatype extends AbstractDatatype {
diff --git a/src/main/java/caosdb/server/datatype/Value.java b/src/main/java/org/caosdb/server/datatype/Value.java
similarity index 96%
rename from src/main/java/caosdb/server/datatype/Value.java
rename to src/main/java/org/caosdb/server/datatype/Value.java
index 6030880dcf6cbcb50a43633c1317c6cae70fef05..540e6bc52b72744c4d7c1c651c40924d1da57c6d 100644
--- a/src/main/java/caosdb/server/datatype/Value.java
+++ b/src/main/java/org/caosdb/server/datatype/Value.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
 import org.jdom2.Element;
 
diff --git a/src/main/java/caosdb/server/entity/Affiliation.java b/src/main/java/org/caosdb/server/entity/Affiliation.java
similarity index 96%
rename from src/main/java/caosdb/server/entity/Affiliation.java
rename to src/main/java/org/caosdb/server/entity/Affiliation.java
index c51a9a279cfe2722d85124b3bde57fe08fd0baf3..f3e5ec73561760b889657ba20134d16aabf3e35a 100644
--- a/src/main/java/caosdb/server/entity/Affiliation.java
+++ b/src/main/java/org/caosdb/server/entity/Affiliation.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
 public enum Affiliation {
   INSTANTIATION, // RECORD is-a RECORD TYPE
diff --git a/src/main/java/caosdb/server/entity/DeleteEntity.java b/src/main/java/org/caosdb/server/entity/DeleteEntity.java
similarity index 97%
rename from src/main/java/caosdb/server/entity/DeleteEntity.java
rename to src/main/java/org/caosdb/server/entity/DeleteEntity.java
index b27ab3a7745a9b4909dac642a9fccbaf035f52f7..37377534f721a3d93455473b7a8a58fb7d50f287 100644
--- a/src/main/java/caosdb/server/entity/DeleteEntity.java
+++ b/src/main/java/org/caosdb/server/entity/DeleteEntity.java
@@ -22,7 +22,7 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
 public class DeleteEntity extends Entity {
 
diff --git a/src/main/java/caosdb/server/entity/Entity.java b/src/main/java/org/caosdb/server/entity/Entity.java
similarity index 95%
rename from src/main/java/caosdb/server/entity/Entity.java
rename to src/main/java/org/caosdb/server/entity/Entity.java
index 16f4f508e2d97a4c0f58c1775e95db9efbf4ffba..28f42308e303c0315b432c017fd2147119c5b346 100644
--- a/src/main/java/caosdb/server/entity/Entity.java
+++ b/src/main/java/org/caosdb/server/entity/Entity.java
@@ -22,34 +22,8 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
-
-import caosdb.datetime.UTCDateTime;
-import caosdb.server.CaosDBException;
-import caosdb.server.database.proto.SparseEntity;
-import caosdb.server.database.proto.VerySparseEntity;
-import caosdb.server.datatype.AbstractCollectionDatatype;
-import caosdb.server.datatype.AbstractDatatype;
-import caosdb.server.datatype.CollectionValue;
-import caosdb.server.datatype.GenericValue;
-import caosdb.server.datatype.Value;
-import caosdb.server.entity.Message.MessageType;
-import caosdb.server.entity.container.ParentContainer;
-import caosdb.server.entity.container.PropertyContainer;
-import caosdb.server.entity.wrapper.Domain;
-import caosdb.server.entity.wrapper.Parent;
-import caosdb.server.entity.wrapper.Property;
-import caosdb.server.entity.xml.EntityToElementStrategy;
-import caosdb.server.entity.xml.SetFieldStrategy;
-import caosdb.server.entity.xml.ToElementStrategy;
-import caosdb.server.entity.xml.ToElementable;
-import caosdb.server.permissions.EntityACL;
-import caosdb.server.query.Query.Selection;
-import caosdb.server.utils.AbstractObservable;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
-import caosdb.server.utils.TransactionLogMessage;
-import caosdb.unit.Unit;
+package org.caosdb.server.entity;
+
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -60,6 +34,32 @@ import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authz.AuthorizationException;
 import org.apache.shiro.authz.Permission;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.datetime.UTCDateTime;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.database.proto.VerySparseEntity;
+import org.caosdb.server.datatype.AbstractCollectionDatatype;
+import org.caosdb.server.datatype.AbstractDatatype;
+import org.caosdb.server.datatype.CollectionValue;
+import org.caosdb.server.datatype.GenericValue;
+import org.caosdb.server.datatype.Value;
+import org.caosdb.server.entity.Message.MessageType;
+import org.caosdb.server.entity.container.ParentContainer;
+import org.caosdb.server.entity.container.PropertyContainer;
+import org.caosdb.server.entity.wrapper.Domain;
+import org.caosdb.server.entity.wrapper.Parent;
+import org.caosdb.server.entity.wrapper.Property;
+import org.caosdb.server.entity.xml.EntityToElementStrategy;
+import org.caosdb.server.entity.xml.SetFieldStrategy;
+import org.caosdb.server.entity.xml.ToElementStrategy;
+import org.caosdb.server.entity.xml.ToElementable;
+import org.caosdb.server.permissions.EntityACL;
+import org.caosdb.server.query.Query.Selection;
+import org.caosdb.server.utils.AbstractObservable;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
+import org.caosdb.server.utils.TransactionLogMessage;
+import org.caosdb.unit.Unit;
 import org.jdom2.Element;
 
 public class Entity extends AbstractObservable implements EntityInterface {
diff --git a/src/main/java/caosdb/server/entity/EntityInterface.java b/src/main/java/org/caosdb/server/entity/EntityInterface.java
similarity index 86%
rename from src/main/java/caosdb/server/entity/EntityInterface.java
rename to src/main/java/org/caosdb/server/entity/EntityInterface.java
index 4205111a58c30185d916c1d921acb7470d93f7a9..ef97630808536f367869851c5be06d05e6247ac2 100644
--- a/src/main/java/caosdb/server/entity/EntityInterface.java
+++ b/src/main/java/org/caosdb/server/entity/EntityInterface.java
@@ -20,27 +20,27 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
-
-import caosdb.server.database.proto.SparseEntity;
-import caosdb.server.database.proto.VerySparseEntity;
-import caosdb.server.datatype.AbstractDatatype;
-import caosdb.server.datatype.Value;
-import caosdb.server.entity.container.ParentContainer;
-import caosdb.server.entity.container.PropertyContainer;
-import caosdb.server.entity.wrapper.Domain;
-import caosdb.server.entity.wrapper.Parent;
-import caosdb.server.entity.wrapper.Property;
-import caosdb.server.entity.xml.SetFieldStrategy;
-import caosdb.server.entity.xml.ToElementable;
-import caosdb.server.jobs.JobTarget;
-import caosdb.server.permissions.EntityACL;
-import caosdb.server.utils.Observable;
-import caosdb.server.utils.TransactionLogMessage;
-import caosdb.unit.Unit;
+package org.caosdb.server.entity;
+
 import java.util.List;
 import org.apache.shiro.authz.Permission;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.database.proto.VerySparseEntity;
+import org.caosdb.server.datatype.AbstractDatatype;
+import org.caosdb.server.datatype.Value;
+import org.caosdb.server.entity.container.ParentContainer;
+import org.caosdb.server.entity.container.PropertyContainer;
+import org.caosdb.server.entity.wrapper.Domain;
+import org.caosdb.server.entity.wrapper.Parent;
+import org.caosdb.server.entity.wrapper.Property;
+import org.caosdb.server.entity.xml.SetFieldStrategy;
+import org.caosdb.server.entity.xml.ToElementable;
+import org.caosdb.server.jobs.JobTarget;
+import org.caosdb.server.permissions.EntityACL;
+import org.caosdb.server.utils.Observable;
+import org.caosdb.server.utils.TransactionLogMessage;
+import org.caosdb.unit.Unit;
 import org.jdom2.Element;
 
 public interface EntityInterface
diff --git a/src/main/java/caosdb/server/entity/FileProperties.java b/src/main/java/org/caosdb/server/entity/FileProperties.java
similarity index 96%
rename from src/main/java/caosdb/server/entity/FileProperties.java
rename to src/main/java/org/caosdb/server/entity/FileProperties.java
index c0fcaa468b8d2ff2ff353842d5c79c0fcf904f28..0c10288e0cbaa6a4f55a2959f72ac09db9d6f394 100644
--- a/src/main/java/caosdb/server/entity/FileProperties.java
+++ b/src/main/java/org/caosdb/server/entity/FileProperties.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
-
-import caosdb.server.CaosDBException;
-import caosdb.server.FileSystem;
-import caosdb.server.utils.FileUtils;
-import caosdb.server.utils.ServerMessages;
-import caosdb.server.utils.UndoHandler;
-import caosdb.server.utils.Undoable;
+package org.caosdb.server.entity;
+
 import java.io.File;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.utils.FileUtils;
+import org.caosdb.server.utils.ServerMessages;
+import org.caosdb.server.utils.UndoHandler;
+import org.caosdb.server.utils.Undoable;
 
 public class FileProperties {
   private File thumbnail = null;
diff --git a/src/main/java/caosdb/server/entity/InsertEntity.java b/src/main/java/org/caosdb/server/entity/InsertEntity.java
similarity index 96%
rename from src/main/java/caosdb/server/entity/InsertEntity.java
rename to src/main/java/org/caosdb/server/entity/InsertEntity.java
index 92f665e36cb0e0bce0243658e3148dd3b69b9ad4..56eeb12b1c2e7b9d5259a4d418e87c79e8068f51 100644
--- a/src/main/java/caosdb/server/entity/InsertEntity.java
+++ b/src/main/java/org/caosdb/server/entity/InsertEntity.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
 import org.jdom2.Element;
 
diff --git a/src/main/java/caosdb/server/entity/MagicTypes.java b/src/main/java/org/caosdb/server/entity/MagicTypes.java
similarity index 94%
rename from src/main/java/caosdb/server/entity/MagicTypes.java
rename to src/main/java/org/caosdb/server/entity/MagicTypes.java
index ddc57a58362f81c9f3c55a45dc2a069d4202c8af..cffdb0723588d3aaec31e24a39895e304aa2e18b 100644
--- a/src/main/java/caosdb/server/entity/MagicTypes.java
+++ b/src/main/java/org/caosdb/server/entity/MagicTypes.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
-import caosdb.server.entity.container.RetrieveContainer;
-import caosdb.server.transaction.Retrieve;
 import java.util.HashMap;
+import org.caosdb.server.entity.container.RetrieveContainer;
+import org.caosdb.server.transaction.Retrieve;
 
 public enum MagicTypes {
   UNIT,
diff --git a/src/main/java/caosdb/server/entity/Message.java b/src/main/java/org/caosdb/server/entity/Message.java
similarity index 96%
rename from src/main/java/caosdb/server/entity/Message.java
rename to src/main/java/org/caosdb/server/entity/Message.java
index 0ffedb4316fe372e09f3b69ca5824a72f98accaf..743a2b62fa87570e0dbca05a1f279e6764920f0b 100644
--- a/src/main/java/caosdb/server/entity/Message.java
+++ b/src/main/java/org/caosdb/server/entity/Message.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
-import caosdb.server.entity.xml.ToElementable;
+import org.caosdb.server.entity.xml.ToElementable;
 import org.jdom2.Element;
 
 public class Message extends Exception implements Comparable<Message>, ToElementable {
@@ -32,7 +32,7 @@ public class Message extends Exception implements Comparable<Message>, ToElement
   private final String description;
   private final String body;
 
-  private static final long serialVersionUID = -6527053191344766124L;
+  private static final long serialVersionUID = -3005017964769041935L;
 
   public enum MessageType {
     Warning,
diff --git a/src/main/java/caosdb/server/entity/NoSuchRoleException.java b/src/main/java/org/caosdb/server/entity/NoSuchRoleException.java
similarity index 90%
rename from src/main/java/caosdb/server/entity/NoSuchRoleException.java
rename to src/main/java/org/caosdb/server/entity/NoSuchRoleException.java
index 783c2752143e7d1099808cf6ef9f19825d1a2836..31d79a6de6e9932b680b89b133363134cbdef4ef 100644
--- a/src/main/java/caosdb/server/entity/NoSuchRoleException.java
+++ b/src/main/java/org/caosdb/server/entity/NoSuchRoleException.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
 public class NoSuchRoleException extends IllegalArgumentException {
 
@@ -29,5 +29,5 @@ public class NoSuchRoleException extends IllegalArgumentException {
   }
 
   /** */
-  private static final long serialVersionUID = 1L;
+  private static final long serialVersionUID = -5647651111944453390L;
 }
diff --git a/src/main/java/caosdb/server/entity/RetrieveEntity.java b/src/main/java/org/caosdb/server/entity/RetrieveEntity.java
similarity index 97%
rename from src/main/java/caosdb/server/entity/RetrieveEntity.java
rename to src/main/java/org/caosdb/server/entity/RetrieveEntity.java
index 7035232b5a66df77518c8c1b586b7bcb43b7a22b..35e34feda25c3ed7087c3c909a49a5833bce3698 100644
--- a/src/main/java/caosdb/server/entity/RetrieveEntity.java
+++ b/src/main/java/org/caosdb/server/entity/RetrieveEntity.java
@@ -22,7 +22,7 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
 public class RetrieveEntity extends Entity {
 
diff --git a/src/main/java/caosdb/server/entity/Role.java b/src/main/java/org/caosdb/server/entity/Role.java
similarity index 86%
rename from src/main/java/caosdb/server/entity/Role.java
rename to src/main/java/org/caosdb/server/entity/Role.java
index 79b6548f82f41568ec44c574c4ad35502379e58b..0ce45641b5280bca29a0d61b66a9435b9e3297e6 100644
--- a/src/main/java/caosdb/server/entity/Role.java
+++ b/src/main/java/org/caosdb/server/entity/Role.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.transaction.GetIDByName;
-import caosdb.server.entity.xml.EntityToElementStrategy;
-import caosdb.server.entity.xml.FileToElementStrategy;
-import caosdb.server.entity.xml.ToElementStrategy;
 import java.util.HashMap;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.transaction.GetIDByName;
+import org.caosdb.server.entity.xml.EntityToElementStrategy;
+import org.caosdb.server.entity.xml.FileToElementStrategy;
+import org.caosdb.server.entity.xml.ToElementStrategy;
 
 public enum Role {
   RecordType,
diff --git a/src/main/java/caosdb/server/entity/StatementStatus.java b/src/main/java/org/caosdb/server/entity/StatementStatus.java
similarity index 96%
rename from src/main/java/caosdb/server/entity/StatementStatus.java
rename to src/main/java/org/caosdb/server/entity/StatementStatus.java
index 122b31fccdf2682a3a1851a650ef116a7184ed49..ec6b0b8ec8cc33fc0fa2c41119e82b2b807aa89f 100644
--- a/src/main/java/caosdb/server/entity/StatementStatus.java
+++ b/src/main/java/org/caosdb/server/entity/StatementStatus.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
 public enum StatementStatus {
   OBLIGATORY,
diff --git a/src/main/java/caosdb/server/entity/TransactionEntity.java b/src/main/java/org/caosdb/server/entity/TransactionEntity.java
similarity index 90%
rename from src/main/java/caosdb/server/entity/TransactionEntity.java
rename to src/main/java/org/caosdb/server/entity/TransactionEntity.java
index 458a1031cf7039c66b3db228813c9a552d6cc53c..2883c076f437520581037219a724020b47893424 100644
--- a/src/main/java/caosdb/server/entity/TransactionEntity.java
+++ b/src/main/java/org/caosdb/server/entity/TransactionEntity.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
-import caosdb.server.entity.xml.ToElementStrategy;
-import caosdb.server.entity.xml.ToElementable;
-import caosdb.server.query.Query.Selection;
-import caosdb.server.utils.EntityStatus;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import org.caosdb.server.entity.xml.ToElementStrategy;
+import org.caosdb.server.entity.xml.ToElementable;
+import org.caosdb.server.query.Query.Selection;
+import org.caosdb.server.utils.EntityStatus;
 import org.jdom2.Element;
 
 public interface TransactionEntity {
diff --git a/src/main/java/caosdb/server/entity/UpdateEntity.java b/src/main/java/org/caosdb/server/entity/UpdateEntity.java
similarity index 93%
rename from src/main/java/caosdb/server/entity/UpdateEntity.java
rename to src/main/java/org/caosdb/server/entity/UpdateEntity.java
index 004eefaf5be7564329d9caba19536dbc54ab1f38..aa6d591602df66cc9317351cf6a1ea980bc53ea3 100644
--- a/src/main/java/caosdb/server/entity/UpdateEntity.java
+++ b/src/main/java/org/caosdb/server/entity/UpdateEntity.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
-import caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.EntityStatus;
 import org.jdom2.Element;
 
 public class UpdateEntity extends WritableEntity {
diff --git a/src/main/java/caosdb/server/entity/Version.java b/src/main/java/org/caosdb/server/entity/Version.java
similarity index 96%
rename from src/main/java/caosdb/server/entity/Version.java
rename to src/main/java/org/caosdb/server/entity/Version.java
index 07c7387e8c419f962e1174504a28ceceda5c30e3..3f9e148583686887fab39038aa427bccf1c69b25 100644
--- a/src/main/java/caosdb/server/entity/Version.java
+++ b/src/main/java/org/caosdb/server/entity/Version.java
@@ -18,10 +18,10 @@
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
  */
 
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
-import caosdb.datetime.UTCDateTime;
 import java.util.LinkedList;
+import org.caosdb.datetime.UTCDateTime;
 
 /**
  * Plain old java object (POJO) for an entity's version.
diff --git a/src/main/java/caosdb/server/entity/WritableEntity.java b/src/main/java/org/caosdb/server/entity/WritableEntity.java
similarity index 96%
rename from src/main/java/caosdb/server/entity/WritableEntity.java
rename to src/main/java/org/caosdb/server/entity/WritableEntity.java
index 6e1c21e27ffbb4ae76a31a6c0cd444c439325cb0..d9dc3edc4fc1fa886370bafb5c40ce0e732b3e4b 100644
--- a/src/main/java/caosdb/server/entity/WritableEntity.java
+++ b/src/main/java/org/caosdb/server/entity/WritableEntity.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
 import org.jdom2.Element;
 
diff --git a/src/main/java/caosdb/server/entity/WriteEntity.java b/src/main/java/org/caosdb/server/entity/WriteEntity.java
similarity index 96%
rename from src/main/java/caosdb/server/entity/WriteEntity.java
rename to src/main/java/org/caosdb/server/entity/WriteEntity.java
index b8c65596a86fdc3553d43f9ea04793c615df3fba..64cbbee8658148e81e09a623c3e235ea18555e5e 100644
--- a/src/main/java/caosdb/server/entity/WriteEntity.java
+++ b/src/main/java/org/caosdb/server/entity/WriteEntity.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
 import org.jdom2.Element;
 
diff --git a/src/main/java/caosdb/server/entity/container/Container.java b/src/main/java/org/caosdb/server/entity/container/Container.java
similarity index 89%
rename from src/main/java/caosdb/server/entity/container/Container.java
rename to src/main/java/org/caosdb/server/entity/container/Container.java
index de20b6a3965fc4fead82612193d061e075d5217d..dc38041abe24d5b5d2e55e7ae698e092848b34c2 100644
--- a/src/main/java/caosdb/server/entity/container/Container.java
+++ b/src/main/java/org/caosdb/server/entity/container/Container.java
@@ -22,14 +22,14 @@
  *
  * ** end header
  */
-package caosdb.server.entity.container;
+package org.caosdb.server.entity.container;
 
-import caosdb.server.entity.EntityInterface;
 import java.util.ArrayList;
+import org.caosdb.server.entity.EntityInterface;
 
 public class Container<T extends EntityInterface> extends ArrayList<T> {
 
-  private static final long serialVersionUID = 8519435849678175750L;
+  private static final long serialVersionUID = 3588262226883926066L;
 
   /**
    * Return the entity with the matching id, if it can be found inside this Container, else null.
diff --git a/src/main/java/caosdb/server/entity/container/DeleteContainer.java b/src/main/java/org/caosdb/server/entity/container/DeleteContainer.java
similarity index 89%
rename from src/main/java/caosdb/server/entity/container/DeleteContainer.java
rename to src/main/java/org/caosdb/server/entity/container/DeleteContainer.java
index c3d57bc656a7c9609dd8fb6ca4d031e0e82f63fa..b0c2f21ff3b0e0dd96e24f0ef042a29e843c54f0 100644
--- a/src/main/java/caosdb/server/entity/container/DeleteContainer.java
+++ b/src/main/java/org/caosdb/server/entity/container/DeleteContainer.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.entity.container;
+package org.caosdb.server.entity.container;
 
-import caosdb.server.entity.DeleteEntity;
 import java.util.HashMap;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.entity.DeleteEntity;
 
 public class DeleteContainer extends EntityByIdContainer {
 
-  private static final long serialVersionUID = 4113458285424498764L;
+  private static final long serialVersionUID = -1279198934417710461L;
 
   public DeleteContainer(
       final Subject user,
diff --git a/src/main/java/caosdb/server/entity/container/EntityByIdContainer.java b/src/main/java/org/caosdb/server/entity/container/EntityByIdContainer.java
similarity index 92%
rename from src/main/java/caosdb/server/entity/container/EntityByIdContainer.java
rename to src/main/java/org/caosdb/server/entity/container/EntityByIdContainer.java
index 29a0978b8acdc809b75c52de643ee131cd62b129..466a93091e1a55d7f9d59c7d3a941058e4204a2e 100644
--- a/src/main/java/caosdb/server/entity/container/EntityByIdContainer.java
+++ b/src/main/java/org/caosdb/server/entity/container/EntityByIdContainer.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.entity.container;
+package org.caosdb.server.entity.container;
 
 import java.util.HashMap;
 import org.apache.shiro.subject.Subject;
 
 public abstract class EntityByIdContainer extends TransactionContainer {
-  private static final long serialVersionUID = 5826139073962173660L;
+  private static final long serialVersionUID = 7997517210502207523L;
 
   public EntityByIdContainer(
       final Subject user,
diff --git a/src/main/java/caosdb/server/entity/container/InsertContainer.java b/src/main/java/org/caosdb/server/entity/container/InsertContainer.java
similarity index 89%
rename from src/main/java/caosdb/server/entity/container/InsertContainer.java
rename to src/main/java/org/caosdb/server/entity/container/InsertContainer.java
index 6810e053cc9234bb587ea35f2399e7ceaa04e408..99128a8a56758e67ce1529785de0151b1fe624d4 100644
--- a/src/main/java/caosdb/server/entity/container/InsertContainer.java
+++ b/src/main/java/org/caosdb/server/entity/container/InsertContainer.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.entity.container;
+package org.caosdb.server.entity.container;
 
-import caosdb.server.entity.InsertEntity;
 import java.util.HashMap;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.entity.InsertEntity;
 import org.jdom2.Element;
 
 public class InsertContainer extends WritableContainer {
@@ -37,7 +37,7 @@ public class InsertContainer extends WritableContainer {
     super(user, timestamp, srid, flags);
   }
 
-  private static final long serialVersionUID = -5264959991145009088L;
+  private static final long serialVersionUID = 8896630069350477274L;
 
   @Override
   public void add(final Element entity) {
diff --git a/src/main/java/caosdb/server/entity/container/ParentContainer.java b/src/main/java/org/caosdb/server/entity/container/ParentContainer.java
similarity index 83%
rename from src/main/java/caosdb/server/entity/container/ParentContainer.java
rename to src/main/java/org/caosdb/server/entity/container/ParentContainer.java
index 461760b8a2d37f293a6bb0756cc79ff757f0dbcf..90c6078a47471712ac51448ac4aac3d05794f5a6 100644
--- a/src/main/java/caosdb/server/entity/container/ParentContainer.java
+++ b/src/main/java/org/caosdb/server/entity/container/ParentContainer.java
@@ -20,25 +20,25 @@
  *
  * ** end header
  */
-package caosdb.server.entity.container;
+package org.caosdb.server.entity.container;
 
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.wrapper.Parent;
-import caosdb.server.entity.xml.ParentToElementStrategy;
-import caosdb.server.entity.xml.SetFieldStrategy;
-import caosdb.server.entity.xml.ToElementStrategy;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.Observable;
-import caosdb.server.utils.Observer;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.wrapper.Parent;
+import org.caosdb.server.entity.xml.ParentToElementStrategy;
+import org.caosdb.server.entity.xml.SetFieldStrategy;
+import org.caosdb.server.entity.xml.ToElementStrategy;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.Observable;
+import org.caosdb.server.utils.Observer;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Element;
 
 public class ParentContainer extends Container<Parent> {
 
   static ToElementStrategy s = new ParentToElementStrategy();
 
-  private static final long serialVersionUID = 4624224975178041002L;
+  private static final long serialVersionUID = 3334236170549992385L;
 
   private final EntityInterface child;
 
diff --git a/src/main/java/caosdb/server/entity/container/PropertyContainer.java b/src/main/java/org/caosdb/server/entity/container/PropertyContainer.java
similarity index 87%
rename from src/main/java/caosdb/server/entity/container/PropertyContainer.java
rename to src/main/java/org/caosdb/server/entity/container/PropertyContainer.java
index 80cf816156c0d4d81bca1e5b0e0de19c38fcb032..f5cce963fa4611bbdebfacdb11f98497c2a68544 100644
--- a/src/main/java/caosdb/server/entity/container/PropertyContainer.java
+++ b/src/main/java/org/caosdb/server/entity/container/PropertyContainer.java
@@ -22,28 +22,28 @@
  *
  * ** end header
  */
-package caosdb.server.entity.container;
+package org.caosdb.server.entity.container;
 
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.wrapper.Property;
-import caosdb.server.entity.xml.PropertyToElementStrategy;
-import caosdb.server.entity.xml.SetFieldStrategy;
-import caosdb.server.entity.xml.ToElementStrategy;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.Observable;
-import caosdb.server.utils.Observer;
-import caosdb.server.utils.ServerMessages;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.wrapper.Property;
+import org.caosdb.server.entity.xml.PropertyToElementStrategy;
+import org.caosdb.server.entity.xml.SetFieldStrategy;
+import org.caosdb.server.entity.xml.ToElementStrategy;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.Observable;
+import org.caosdb.server.utils.Observer;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Element;
 
 public class PropertyContainer extends Container<Property> {
 
   private final ToElementStrategy s;
 
-  private static final long serialVersionUID = 1L;
+  private static final long serialVersionUID = -8452118156168954326L;
 
   private final EntityInterface domain;
 
diff --git a/src/main/java/caosdb/server/entity/container/RetrieveContainer.java b/src/main/java/org/caosdb/server/entity/container/RetrieveContainer.java
similarity index 90%
rename from src/main/java/caosdb/server/entity/container/RetrieveContainer.java
rename to src/main/java/org/caosdb/server/entity/container/RetrieveContainer.java
index 5b205bc27f38e3d1a04b2ed3c5a7e874af229489..3b847f1af9d9d642c2606820dc2993f00911ed06 100644
--- a/src/main/java/caosdb/server/entity/container/RetrieveContainer.java
+++ b/src/main/java/org/caosdb/server/entity/container/RetrieveContainer.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.entity.container;
+package org.caosdb.server.entity.container;
 
-import caosdb.server.entity.RetrieveEntity;
 import java.util.HashMap;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.entity.RetrieveEntity;
 
 public class RetrieveContainer extends EntityByIdContainer {
 
-  private static final long serialVersionUID = 2962487090601702116L;
+  private static final long serialVersionUID = 4816050921531043503L;
 
   public RetrieveContainer(
       final Subject user,
diff --git a/src/main/java/caosdb/server/entity/container/TransactionContainer.java b/src/main/java/org/caosdb/server/entity/container/TransactionContainer.java
similarity index 91%
rename from src/main/java/caosdb/server/entity/container/TransactionContainer.java
rename to src/main/java/org/caosdb/server/entity/container/TransactionContainer.java
index f3a8a0f395838e6c8f5b2a4d8adf6f5b8627d06c..18a7837df27b39efa92abb2b16943a3476dca9ec 100644
--- a/src/main/java/caosdb/server/entity/container/TransactionContainer.java
+++ b/src/main/java/org/caosdb/server/entity/container/TransactionContainer.java
@@ -20,19 +20,19 @@
  *
  * ** end header
  */
-package caosdb.server.entity.container;
-
-import caosdb.server.CaosDBServer;
-import caosdb.server.database.misc.TransactionBenchmark;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.xml.ToElementable;
-import caosdb.server.jobs.JobTarget;
-import caosdb.server.utils.EntityStatus;
+package org.caosdb.server.entity.container;
+
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.xml.ToElementable;
+import org.caosdb.server.jobs.JobTarget;
+import org.caosdb.server.utils.EntityStatus;
 import org.jdom2.Element;
 
 public class TransactionContainer extends Container<EntityInterface>
@@ -94,7 +94,7 @@ public class TransactionContainer extends Container<EntityInterface>
     return this.flags;
   }
 
-  private static final long serialVersionUID = 6344299811547235114L;
+  private static final long serialVersionUID = -6062911849319971397L;
 
   /**
    * @param element
diff --git a/src/main/java/caosdb/server/entity/container/UpdateContainer.java b/src/main/java/org/caosdb/server/entity/container/UpdateContainer.java
similarity index 89%
rename from src/main/java/caosdb/server/entity/container/UpdateContainer.java
rename to src/main/java/org/caosdb/server/entity/container/UpdateContainer.java
index 843e70cf8131428cfb4086c6ee0b6f30c32797cf..1c2a807b7759ff680d30ed0f1f9f14d5952e98f8 100644
--- a/src/main/java/caosdb/server/entity/container/UpdateContainer.java
+++ b/src/main/java/org/caosdb/server/entity/container/UpdateContainer.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.entity.container;
+package org.caosdb.server.entity.container;
 
-import caosdb.server.entity.UpdateEntity;
 import java.util.HashMap;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.entity.UpdateEntity;
 import org.jdom2.Element;
 
 public class UpdateContainer extends WritableContainer {
 
-  private static final long serialVersionUID = -4571405395722707413L;
+  private static final long serialVersionUID = 8489287672264669883L;
 
   public UpdateContainer(
       final Subject user,
diff --git a/src/main/java/caosdb/server/entity/container/WritableContainer.java b/src/main/java/org/caosdb/server/entity/container/WritableContainer.java
similarity index 90%
rename from src/main/java/caosdb/server/entity/container/WritableContainer.java
rename to src/main/java/org/caosdb/server/entity/container/WritableContainer.java
index 3000aa5a943ec767b5de889899e62ccae311fa8d..2f9148651c890a0e7188acb035bf8fc55609834b 100644
--- a/src/main/java/caosdb/server/entity/container/WritableContainer.java
+++ b/src/main/java/org/caosdb/server/entity/container/WritableContainer.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.entity.container;
+package org.caosdb.server.entity.container;
 
-import caosdb.server.entity.FileProperties;
 import java.util.HashMap;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.entity.FileProperties;
 import org.jdom2.Element;
 
 public abstract class WritableContainer extends TransactionContainer {
-  private static final long serialVersionUID = -4097777313518959519L;
+  private static final long serialVersionUID = 3011242254959617091L;
 
   public WritableContainer(
       final Subject user,
diff --git a/src/main/java/caosdb/server/entity/wrapper/Domain.java b/src/main/java/org/caosdb/server/entity/wrapper/Domain.java
similarity index 78%
rename from src/main/java/caosdb/server/entity/wrapper/Domain.java
rename to src/main/java/org/caosdb/server/entity/wrapper/Domain.java
index 5bd5c73b99579337e1f5ccd0a4e97c0011347b04..146706efd2caa74ff1399568bf499f37683bfdbe 100644
--- a/src/main/java/caosdb/server/entity/wrapper/Domain.java
+++ b/src/main/java/org/caosdb/server/entity/wrapper/Domain.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.entity.wrapper;
+package org.caosdb.server.entity.wrapper;
 
-import caosdb.server.datatype.AbstractDatatype;
-import caosdb.server.datatype.Value;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Role;
-import caosdb.server.entity.container.PropertyContainer;
+import org.caosdb.server.datatype.AbstractDatatype;
+import org.caosdb.server.datatype.Value;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.entity.container.PropertyContainer;
 
 public class Domain extends Entity {
 
@@ -37,7 +37,7 @@ public class Domain extends Entity {
       final PropertyContainer properties,
       final AbstractDatatype datatype,
       final Value value,
-      final caosdb.server.entity.StatementStatus statementStatus) {
+      final org.caosdb.server.entity.StatementStatus statementStatus) {
 
     setRole(Role.Domain);
     setProperties(properties);
diff --git a/src/main/java/caosdb/server/entity/wrapper/EntityWrapper.java b/src/main/java/org/caosdb/server/entity/wrapper/EntityWrapper.java
similarity index 91%
rename from src/main/java/caosdb/server/entity/wrapper/EntityWrapper.java
rename to src/main/java/org/caosdb/server/entity/wrapper/EntityWrapper.java
index f8d563de1776d155b2f66b913de454c7e5b952fd..e042c2326cc43e5d98cc3a27b61c21301bf9e90d 100644
--- a/src/main/java/caosdb/server/entity/wrapper/EntityWrapper.java
+++ b/src/main/java/org/caosdb/server/entity/wrapper/EntityWrapper.java
@@ -22,34 +22,34 @@
  *
  * ** end header
  */
-package caosdb.server.entity.wrapper;
-
-import caosdb.server.database.proto.SparseEntity;
-import caosdb.server.database.proto.VerySparseEntity;
-import caosdb.server.datatype.AbstractDatatype;
-import caosdb.server.datatype.Value;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.Role;
-import caosdb.server.entity.StatementStatus;
-import caosdb.server.entity.Version;
-import caosdb.server.entity.container.ParentContainer;
-import caosdb.server.entity.container.PropertyContainer;
-import caosdb.server.entity.xml.SetFieldStrategy;
-import caosdb.server.entity.xml.ToElementStrategy;
-import caosdb.server.entity.xml.ToElementable;
-import caosdb.server.permissions.EntityACL;
-import caosdb.server.query.Query.Selection;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.Observer;
-import caosdb.server.utils.TransactionLogMessage;
-import caosdb.unit.Unit;
+package org.caosdb.server.entity.wrapper;
+
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import org.apache.shiro.authz.Permission;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.database.proto.VerySparseEntity;
+import org.caosdb.server.datatype.AbstractDatatype;
+import org.caosdb.server.datatype.Value;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.entity.StatementStatus;
+import org.caosdb.server.entity.Version;
+import org.caosdb.server.entity.container.ParentContainer;
+import org.caosdb.server.entity.container.PropertyContainer;
+import org.caosdb.server.entity.xml.SetFieldStrategy;
+import org.caosdb.server.entity.xml.ToElementStrategy;
+import org.caosdb.server.entity.xml.ToElementable;
+import org.caosdb.server.permissions.EntityACL;
+import org.caosdb.server.query.Query.Selection;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.Observer;
+import org.caosdb.server.utils.TransactionLogMessage;
+import org.caosdb.unit.Unit;
 import org.jdom2.Element;
 
 public class EntityWrapper implements EntityInterface {
diff --git a/src/main/java/caosdb/server/entity/wrapper/Parent.java b/src/main/java/org/caosdb/server/entity/wrapper/Parent.java
similarity index 87%
rename from src/main/java/caosdb/server/entity/wrapper/Parent.java
rename to src/main/java/org/caosdb/server/entity/wrapper/Parent.java
index f3686b5b802e004e55d572e58076e5e08bb5988d..00336f4a336ed3c7f35408e5996fa7adc936f42a 100644
--- a/src/main/java/caosdb/server/entity/wrapper/Parent.java
+++ b/src/main/java/org/caosdb/server/entity/wrapper/Parent.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.entity.wrapper;
+package org.caosdb.server.entity.wrapper;
 
-import caosdb.server.entity.Affiliation;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.xml.ParentToElementStrategy;
+import org.caosdb.server.entity.Affiliation;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.xml.ParentToElementStrategy;
 import org.jdom2.Element;
 
 public class Parent extends EntityWrapper {
diff --git a/src/main/java/caosdb/server/entity/wrapper/Property.java b/src/main/java/org/caosdb/server/entity/wrapper/Property.java
similarity index 91%
rename from src/main/java/caosdb/server/entity/wrapper/Property.java
rename to src/main/java/org/caosdb/server/entity/wrapper/Property.java
index 1d1cd2a8ae11489479b9e9191365843182d136ca..305a9d83cbfad835baa547670fae8e186417330d 100644
--- a/src/main/java/caosdb/server/entity/wrapper/Property.java
+++ b/src/main/java/org/caosdb/server/entity/wrapper/Property.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.entity.wrapper;
+package org.caosdb.server.entity.wrapper;
 
-import caosdb.server.database.proto.FlatProperty;
-import caosdb.server.datatype.AbstractCollectionDatatype;
-import caosdb.server.datatype.GenericValue;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
 import org.apache.shiro.authz.AuthorizationException;
 import org.apache.shiro.authz.Permission;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.database.proto.FlatProperty;
+import org.caosdb.server.datatype.AbstractCollectionDatatype;
+import org.caosdb.server.datatype.GenericValue;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
 import org.jdom2.Element;
 
 public class Property extends EntityWrapper {
diff --git a/src/main/java/caosdb/server/entity/xml/DomainToElementStrategy.java b/src/main/java/org/caosdb/server/entity/xml/DomainToElementStrategy.java
similarity index 95%
rename from src/main/java/caosdb/server/entity/xml/DomainToElementStrategy.java
rename to src/main/java/org/caosdb/server/entity/xml/DomainToElementStrategy.java
index 099b51044353f3074ece5cef77a7588a658bab81..a8b600793a6fdaf8d15ec499112cc06771f66fc3 100644
--- a/src/main/java/caosdb/server/entity/xml/DomainToElementStrategy.java
+++ b/src/main/java/org/caosdb/server/entity/xml/DomainToElementStrategy.java
@@ -22,9 +22,9 @@
  *
  * ** end header
  */
-package caosdb.server.entity.xml;
+package org.caosdb.server.entity.xml;
 
-import caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.EntityInterface;
 import org.jdom2.Element;
 
 /**
diff --git a/src/main/java/caosdb/server/entity/xml/EntityToElementStrategy.java b/src/main/java/org/caosdb/server/entity/xml/EntityToElementStrategy.java
similarity index 96%
rename from src/main/java/caosdb/server/entity/xml/EntityToElementStrategy.java
rename to src/main/java/org/caosdb/server/entity/xml/EntityToElementStrategy.java
index 6cfe8fa9f3628cc0670ccb3e6f30a263a0bc5cf3..e6dc2b21d088ceeff9e0e7a9b60547b288893f18 100644
--- a/src/main/java/caosdb/server/entity/xml/EntityToElementStrategy.java
+++ b/src/main/java/org/caosdb/server/entity/xml/EntityToElementStrategy.java
@@ -22,14 +22,14 @@
  *
  * ** end header
  */
-package caosdb.server.entity.xml;
+package org.caosdb.server.entity.xml;
 
-import caosdb.server.datatype.ReferenceValue;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.TransactionLogMessage;
 import org.apache.shiro.SecurityUtils;
+import org.caosdb.server.datatype.ReferenceValue;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.TransactionLogMessage;
 import org.jdom2.Attribute;
 import org.jdom2.Element;
 
diff --git a/src/main/java/caosdb/server/entity/xml/FileToElementStrategy.java b/src/main/java/org/caosdb/server/entity/xml/FileToElementStrategy.java
similarity index 95%
rename from src/main/java/caosdb/server/entity/xml/FileToElementStrategy.java
rename to src/main/java/org/caosdb/server/entity/xml/FileToElementStrategy.java
index 82fb05218842675aacad177c364e74b3d4082546..7ac394a2e3f226afa6f4723daadc95c63db69b25 100644
--- a/src/main/java/caosdb/server/entity/xml/FileToElementStrategy.java
+++ b/src/main/java/org/caosdb/server/entity/xml/FileToElementStrategy.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.entity.xml;
+package org.caosdb.server.entity.xml;
 
-import caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.EntityInterface;
 import org.jdom2.Attribute;
 import org.jdom2.Element;
 
diff --git a/src/main/java/caosdb/server/entity/xml/ParentToElementStrategy.java b/src/main/java/org/caosdb/server/entity/xml/ParentToElementStrategy.java
similarity index 91%
rename from src/main/java/caosdb/server/entity/xml/ParentToElementStrategy.java
rename to src/main/java/org/caosdb/server/entity/xml/ParentToElementStrategy.java
index 2498e00bfda219eb5e724a7c38bc73cc4ad3468e..29c163dc5ca55b731aa44a85224821c41356e35a 100644
--- a/src/main/java/caosdb/server/entity/xml/ParentToElementStrategy.java
+++ b/src/main/java/org/caosdb/server/entity/xml/ParentToElementStrategy.java
@@ -22,11 +22,11 @@
  *
  * ** end header
  */
-package caosdb.server.entity.xml;
+package org.caosdb.server.entity.xml;
 
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.wrapper.Parent;
-import caosdb.server.utils.EntityStatus;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.wrapper.Parent;
+import org.caosdb.server.utils.EntityStatus;
 import org.jdom2.Element;
 
 /**
diff --git a/src/main/java/caosdb/server/entity/xml/PropertyToElementStrategy.java b/src/main/java/org/caosdb/server/entity/xml/PropertyToElementStrategy.java
similarity index 89%
rename from src/main/java/caosdb/server/entity/xml/PropertyToElementStrategy.java
rename to src/main/java/org/caosdb/server/entity/xml/PropertyToElementStrategy.java
index a88b47cbd411d1b62764a2d6cc130b9ff7d04cae..60014d82b18da4e8dfdd5fe0bcf042171c2bdda7 100644
--- a/src/main/java/caosdb/server/entity/xml/PropertyToElementStrategy.java
+++ b/src/main/java/org/caosdb/server/entity/xml/PropertyToElementStrategy.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.entity.xml;
+package org.caosdb.server.entity.xml;
 
-import caosdb.server.datatype.SingleValue;
-import caosdb.server.datatype.Value;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.MagicTypes;
+import org.caosdb.server.datatype.SingleValue;
+import org.caosdb.server.datatype.Value;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.MagicTypes;
 import org.jdom2.Attribute;
 import org.jdom2.Element;
 
diff --git a/src/main/java/caosdb/server/entity/xml/SetFieldStrategy.java b/src/main/java/org/caosdb/server/entity/xml/SetFieldStrategy.java
similarity index 96%
rename from src/main/java/caosdb/server/entity/xml/SetFieldStrategy.java
rename to src/main/java/org/caosdb/server/entity/xml/SetFieldStrategy.java
index 7a4a29a16cc545ca5316c7b086a8b1ec46cfcfc3..1d9f219086e5ddd921d9519d3391e1cca9fbffc9 100644
--- a/src/main/java/caosdb/server/entity/xml/SetFieldStrategy.java
+++ b/src/main/java/org/caosdb/server/entity/xml/SetFieldStrategy.java
@@ -22,14 +22,14 @@
  *
  * ** end header
  */
-package caosdb.server.entity.xml;
+package org.caosdb.server.entity.xml;
 
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.query.Query;
-import caosdb.server.query.Query.Selection;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.query.Query;
+import org.caosdb.server.query.Query.Selection;
 
 /**
  * A class which decides whether the properties, parents, name, etc. of an entity are to be included
diff --git a/src/main/java/caosdb/server/entity/xml/ToElementStrategy.java b/src/main/java/org/caosdb/server/entity/xml/ToElementStrategy.java
similarity index 93%
rename from src/main/java/caosdb/server/entity/xml/ToElementStrategy.java
rename to src/main/java/org/caosdb/server/entity/xml/ToElementStrategy.java
index 29ddc78c9eda0503ff63a903d5f8192bbf49135e..81a7074c90df84f88ff3104c84662cb9a7a56433 100644
--- a/src/main/java/caosdb/server/entity/xml/ToElementStrategy.java
+++ b/src/main/java/org/caosdb/server/entity/xml/ToElementStrategy.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.entity.xml;
+package org.caosdb.server.entity.xml;
 
-import caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.EntityInterface;
 import org.jdom2.Element;
 
 public interface ToElementStrategy {
diff --git a/src/main/java/caosdb/server/entity/xml/ToElementable.java b/src/main/java/org/caosdb/server/entity/xml/ToElementable.java
similarity index 96%
rename from src/main/java/caosdb/server/entity/xml/ToElementable.java
rename to src/main/java/org/caosdb/server/entity/xml/ToElementable.java
index 4e7b3696664501afd18250a5dc44b8b1321856da..4202111b89c91e38659f34bd6c4f89af80efd957 100644
--- a/src/main/java/caosdb/server/entity/xml/ToElementable.java
+++ b/src/main/java/org/caosdb/server/entity/xml/ToElementable.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.entity.xml;
+package org.caosdb.server.entity.xml;
 
 import org.jdom2.Element;
 
diff --git a/src/main/java/caosdb/server/entity/xml/VersionXMLSerializer.java b/src/main/java/org/caosdb/server/entity/xml/VersionXMLSerializer.java
similarity index 96%
rename from src/main/java/caosdb/server/entity/xml/VersionXMLSerializer.java
rename to src/main/java/org/caosdb/server/entity/xml/VersionXMLSerializer.java
index badd1a95f2a2338bde43a1de23774097ab2c45ed..65ec9880dfef43a4e460bba692ece6c9f87faa7e 100644
--- a/src/main/java/caosdb/server/entity/xml/VersionXMLSerializer.java
+++ b/src/main/java/org/caosdb/server/entity/xml/VersionXMLSerializer.java
@@ -18,10 +18,10 @@
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
  */
 
-package caosdb.server.entity.xml;
+package org.caosdb.server.entity.xml;
 
-import caosdb.server.entity.Version;
 import java.util.TimeZone;
+import org.caosdb.server.entity.Version;
 import org.jdom2.Element;
 
 /**
diff --git a/src/main/java/caosdb/server/jobs/ContainerJob.java b/src/main/java/org/caosdb/server/jobs/ContainerJob.java
similarity index 87%
rename from src/main/java/caosdb/server/jobs/ContainerJob.java
rename to src/main/java/org/caosdb/server/jobs/ContainerJob.java
index 26588b682501d6675d40f5a0bd41974409e1e5c3..205b28f6338434fc9edf636aaca2ae82ddd8a896 100644
--- a/src/main/java/caosdb/server/jobs/ContainerJob.java
+++ b/src/main/java/org/caosdb/server/jobs/ContainerJob.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.jobs;
+package org.caosdb.server.jobs;
 
-import caosdb.server.entity.Message;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.utils.EntityStatus;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.utils.EntityStatus;
 
 public abstract class ContainerJob extends Job {
 
diff --git a/src/main/java/caosdb/server/jobs/EntityJob.java b/src/main/java/org/caosdb/server/jobs/EntityJob.java
similarity index 93%
rename from src/main/java/caosdb/server/jobs/EntityJob.java
rename to src/main/java/org/caosdb/server/jobs/EntityJob.java
index 8644724ea33b02e6e586339188ee8b8f105b9177..b0dd8ecc9b2eadf6342e29b7c1d82adce57fc767 100644
--- a/src/main/java/caosdb/server/jobs/EntityJob.java
+++ b/src/main/java/org/caosdb/server/jobs/EntityJob.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.jobs;
+package org.caosdb.server.jobs;
 
-import caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.EntityInterface;
 
 public abstract class EntityJob extends Job {
 
diff --git a/src/main/java/caosdb/server/jobs/FilesJob.java b/src/main/java/org/caosdb/server/jobs/FilesJob.java
similarity index 93%
rename from src/main/java/caosdb/server/jobs/FilesJob.java
rename to src/main/java/org/caosdb/server/jobs/FilesJob.java
index e9a02a35728b1613058402bd29bb9dc0fd31b3e3..43c89be9e8c6d35d124314050f332f7a43792496 100644
--- a/src/main/java/caosdb/server/jobs/FilesJob.java
+++ b/src/main/java/org/caosdb/server/jobs/FilesJob.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.jobs;
+package org.caosdb.server.jobs;
 
-import caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.FileProperties;
 
 public abstract class FilesJob extends EntityJob {
 
diff --git a/src/main/java/caosdb/server/jobs/FlagJob.java b/src/main/java/org/caosdb/server/jobs/FlagJob.java
similarity index 97%
rename from src/main/java/caosdb/server/jobs/FlagJob.java
rename to src/main/java/org/caosdb/server/jobs/FlagJob.java
index 94ce2189033c4fff524907b3ed5e80de79207c55..5c039bb3601e078d6f5ebcb3a48d4c35b6c90229 100644
--- a/src/main/java/caosdb/server/jobs/FlagJob.java
+++ b/src/main/java/org/caosdb/server/jobs/FlagJob.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.jobs;
+package org.caosdb.server.jobs;
 
 public abstract class FlagJob extends ContainerJob {
 
diff --git a/src/main/java/caosdb/server/jobs/Job.java b/src/main/java/org/caosdb/server/jobs/Job.java
similarity index 91%
rename from src/main/java/caosdb/server/jobs/Job.java
rename to src/main/java/org/caosdb/server/jobs/Job.java
index ff214b977dfd870a9aa56b3e8efa4f12967b2083..d1e3fef39fcd6a2fb5175e4dd396686bcf773b4e 100644
--- a/src/main/java/caosdb/server/jobs/Job.java
+++ b/src/main/java/org/caosdb/server/jobs/Job.java
@@ -22,30 +22,8 @@
  *
  * ** end header
  */
-package caosdb.server.jobs;
-
-import caosdb.server.CaosDBException;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.transaction.GetIDByName;
-import caosdb.server.database.backend.transaction.IsSubType;
-import caosdb.server.database.backend.transaction.RetrieveFullEntity;
-import caosdb.server.database.backend.transaction.RetrieveParents;
-import caosdb.server.database.backend.transaction.RetrieveSparseEntity;
-import caosdb.server.database.backend.transaction.RuleLoader;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.datatype.AbstractCollectionDatatype;
-import caosdb.server.datatype.AbstractDatatype;
-import caosdb.server.datatype.ReferenceDatatype2;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.jobs.core.Mode;
-import caosdb.server.transaction.Transaction;
-import caosdb.server.utils.AbstractObservable;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.Observable;
-import caosdb.server.utils.Observer;
-import caosdb.server.utils.ServerMessages;
+package org.caosdb.server.jobs;
+
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -55,6 +33,28 @@ import java.util.Set;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authz.Permission;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.transaction.GetIDByName;
+import org.caosdb.server.database.backend.transaction.IsSubType;
+import org.caosdb.server.database.backend.transaction.RetrieveFullEntity;
+import org.caosdb.server.database.backend.transaction.RetrieveParents;
+import org.caosdb.server.database.backend.transaction.RetrieveSparseEntity;
+import org.caosdb.server.database.backend.transaction.RuleLoader;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.datatype.AbstractCollectionDatatype;
+import org.caosdb.server.datatype.AbstractDatatype;
+import org.caosdb.server.datatype.ReferenceDatatype2;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.jobs.core.Mode;
+import org.caosdb.server.transaction.Transaction;
+import org.caosdb.server.utils.AbstractObservable;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.Observable;
+import org.caosdb.server.utils.Observer;
+import org.caosdb.server.utils.ServerMessages;
 import org.reflections.Reflections;
 
 public abstract class Job extends AbstractObservable implements Observer {
@@ -259,7 +259,7 @@ public abstract class Job extends AbstractObservable implements Observer {
     if (allClasses == null || loadAlways == null) {
       allClasses = new HashMap<>();
       loadAlways = new ArrayList<>();
-      Reflections jobPackage = new Reflections("caosdb.server.jobs.core");
+      Reflections jobPackage = new Reflections("org.caosdb.server.jobs.core");
       Set<Class<? extends Job>> allClassesSet = jobPackage.getSubTypesOf(Job.class);
       allClassesSet.addAll(jobPackage.getSubTypesOf(FlagJob.class));
       for (final Class<? extends Job> c : allClassesSet) {
@@ -275,7 +275,7 @@ public abstract class Job extends AbstractObservable implements Observer {
         }
       }
       // TODO merge these two parts of this function. Its the same!
-      jobPackage = new Reflections("caosdb.server.jobs.extension");
+      jobPackage = new Reflections("org.caosdb.server.jobs.extension");
       allClassesSet = jobPackage.getSubTypesOf(Job.class);
       for (final Class<? extends Job> c : allClassesSet) {
         allClasses.put(c.getSimpleName().toLowerCase(), c);
diff --git a/src/main/java/caosdb/server/jobs/JobAnnotation.java b/src/main/java/org/caosdb/server/jobs/JobAnnotation.java
similarity index 94%
rename from src/main/java/caosdb/server/jobs/JobAnnotation.java
rename to src/main/java/org/caosdb/server/jobs/JobAnnotation.java
index 96f4afcd46c2f80fe2c959bf815ca523a71cb52d..15193dcdd590745773f308c71b9ed3bb1351a413 100644
--- a/src/main/java/caosdb/server/jobs/JobAnnotation.java
+++ b/src/main/java/org/caosdb/server/jobs/JobAnnotation.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.jobs;
+package org.caosdb.server.jobs;
 
-import caosdb.server.transaction.TransactionInterface;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import org.caosdb.server.transaction.TransactionInterface;
 
 @Retention(RetentionPolicy.RUNTIME)
 public @interface JobAnnotation {
diff --git a/src/main/java/caosdb/server/jobs/JobExecutionTime.java b/src/main/java/org/caosdb/server/jobs/JobExecutionTime.java
similarity index 97%
rename from src/main/java/caosdb/server/jobs/JobExecutionTime.java
rename to src/main/java/org/caosdb/server/jobs/JobExecutionTime.java
index 81bb0d983de7fb920c1484fc899b91bd9abd12db..9374ab9b1c2f4c285b538b1721441f0bc7272600 100644
--- a/src/main/java/caosdb/server/jobs/JobExecutionTime.java
+++ b/src/main/java/org/caosdb/server/jobs/JobExecutionTime.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.jobs;
+package org.caosdb.server.jobs;
 
 public enum JobExecutionTime {
   INIT,
diff --git a/src/main/java/caosdb/server/jobs/JobTarget.java b/src/main/java/org/caosdb/server/jobs/JobTarget.java
similarity index 96%
rename from src/main/java/caosdb/server/jobs/JobTarget.java
rename to src/main/java/org/caosdb/server/jobs/JobTarget.java
index ec31a33370f8dc1ba69621022c0e109714cfa73d..764c70250fd050bc5a1962db8bd5bc4006ae0a70 100644
--- a/src/main/java/caosdb/server/jobs/JobTarget.java
+++ b/src/main/java/org/caosdb/server/jobs/JobTarget.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.jobs;
+package org.caosdb.server.jobs;
 
 public interface JobTarget {
 
diff --git a/src/main/java/caosdb/server/jobs/Schedule.java b/src/main/java/org/caosdb/server/jobs/Schedule.java
similarity index 97%
rename from src/main/java/caosdb/server/jobs/Schedule.java
rename to src/main/java/org/caosdb/server/jobs/Schedule.java
index 4e7f005f3d2f790008a991a0138d62013f6a545a..7f35106bcdda8ddc00512197091fa096a6bc157e 100644
--- a/src/main/java/caosdb/server/jobs/Schedule.java
+++ b/src/main/java/org/caosdb/server/jobs/Schedule.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.jobs;
+package org.caosdb.server.jobs;
 
-import caosdb.server.entity.EntityInterface;
 import java.util.Collection;
 import java.util.concurrent.CopyOnWriteArrayList;
+import org.caosdb.server.entity.EntityInterface;
 
 class ScheduledJob {
 
diff --git a/src/main/java/caosdb/server/jobs/core/AccessControl.java b/src/main/java/org/caosdb/server/jobs/core/AccessControl.java
similarity index 82%
rename from src/main/java/caosdb/server/jobs/core/AccessControl.java
rename to src/main/java/org/caosdb/server/jobs/core/AccessControl.java
index 0dd2ef4740d1a17d6e6ed8b0cc04c8d66a56c918..d1a2113a2f87018cec63d381cce64ad6c8ad09f2 100644
--- a/src/main/java/caosdb/server/jobs/core/AccessControl.java
+++ b/src/main/java/org/caosdb/server/jobs/core/AccessControl.java
@@ -20,19 +20,19 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.database.backend.transaction.RetrieveSparseEntity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.wrapper.Parent;
-import caosdb.server.jobs.ContainerJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.server.transaction.Retrieve;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.database.backend.transaction.RetrieveSparseEntity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.wrapper.Parent;
+import org.caosdb.server.jobs.ContainerJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.transaction.Retrieve;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 @JobAnnotation(time = JobExecutionTime.INIT)
 public class AccessControl extends ContainerJob {
diff --git a/src/main/java/caosdb/server/jobs/core/Atomic.java b/src/main/java/org/caosdb/server/jobs/core/Atomic.java
similarity index 81%
rename from src/main/java/caosdb/server/jobs/core/Atomic.java
rename to src/main/java/org/caosdb/server/jobs/core/Atomic.java
index cdc9f25d7367a9732dcdcc9a0e03dd5e359acaa2..509f87fc8515ca08daa1a5cb8ef6571dfe6fa441 100644
--- a/src/main/java/caosdb/server/jobs/core/Atomic.java
+++ b/src/main/java/org/caosdb/server/jobs/core/Atomic.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.jobs.ContainerJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.server.transaction.WriteTransaction;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.Observable;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.jobs.ContainerJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.transaction.WriteTransaction;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.Observable;
+import org.caosdb.server.utils.ServerMessages;
 
 @JobAnnotation(
     time = JobExecutionTime.POST_CHECK,
diff --git a/src/main/java/caosdb/server/jobs/core/CheckChildDependencyExistent.java b/src/main/java/org/caosdb/server/jobs/core/CheckChildDependencyExistent.java
similarity index 92%
rename from src/main/java/caosdb/server/jobs/core/CheckChildDependencyExistent.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckChildDependencyExistent.java
index a3d9f4e493b189e7fb49de69347c5b6149f9f885..01d5a2de394180ff474600b4597e28e5356d9b3d 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckChildDependencyExistent.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckChildDependencyExistent.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.database.backend.transaction.GetChildren;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
 import java.util.List;
+import org.caosdb.server.database.backend.transaction.GetChildren;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Check whether any children of this entity do exist. There must not be any children left when an
diff --git a/src/main/java/caosdb/server/jobs/core/CheckDatatypePresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckDatatypePresent.java
similarity index 92%
rename from src/main/java/caosdb/server/jobs/core/CheckDatatypePresent.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckDatatypePresent.java
index faf481dba5ac16836b4495d6112fc25c887a6f1f..ce9943ecbefb4d669003a097e74bf9baff078167 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckDatatypePresent.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckDatatypePresent.java
@@ -20,22 +20,22 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
-
-import caosdb.server.database.exceptions.EntityDoesNotExistException;
-import caosdb.server.database.exceptions.EntityWasNotUniqueException;
-import caosdb.server.datatype.AbstractCollectionDatatype;
-import caosdb.server.datatype.AbstractDatatype;
-import caosdb.server.datatype.ReferenceDatatype2;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.Role;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.jobs.Job;
-import caosdb.server.permissions.EntityPermission;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+package org.caosdb.server.jobs.core;
+
 import java.util.List;
+import org.caosdb.server.database.exceptions.EntityDoesNotExistException;
+import org.caosdb.server.database.exceptions.EntityWasNotUniqueException;
+import org.caosdb.server.datatype.AbstractCollectionDatatype;
+import org.caosdb.server.datatype.AbstractDatatype;
+import org.caosdb.server.datatype.ReferenceDatatype2;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.jobs.Job;
+import org.caosdb.server.permissions.EntityPermission;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Check whether the entity has a data type. Assign the data type of the abstract property if
diff --git a/src/main/java/caosdb/server/jobs/core/CheckDescPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckDescPresent.java
similarity index 89%
rename from src/main/java/caosdb/server/jobs/core/CheckDescPresent.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckDescPresent.java
index b055e8fa25669aadf6cb40d65d1eb949794e3e73..fc3a5114f240c796c114f92f8e6271e4fd3bd9ac 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckDescPresent.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckDescPresent.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Check whether an entity has a description.
diff --git a/src/main/java/caosdb/server/jobs/core/CheckEntityACLRoles.java b/src/main/java/org/caosdb/server/jobs/core/CheckEntityACLRoles.java
similarity index 79%
rename from src/main/java/caosdb/server/jobs/core/CheckEntityACLRoles.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckEntityACLRoles.java
index 1106a469efda9767e95076378eea958fd10c7b70..e2dd63b1d733d737e09a6b4e86f3fe4ae4bd0e30 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckEntityACLRoles.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckEntityACLRoles.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.accessControl.AuthenticationUtils;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.jobs.ContainerJob;
-import caosdb.server.permissions.EntityACI;
-import caosdb.server.transaction.Insert;
-import caosdb.server.transaction.Update;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.accessControl.AuthenticationUtils;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.jobs.ContainerJob;
+import org.caosdb.server.permissions.EntityACI;
+import org.caosdb.server.transaction.Insert;
+import org.caosdb.server.transaction.Update;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 public class CheckEntityACLRoles extends ContainerJob {
 
diff --git a/src/main/java/caosdb/server/jobs/core/CheckFileStorageConsistency.java b/src/main/java/org/caosdb/server/jobs/core/CheckFileStorageConsistency.java
similarity index 91%
rename from src/main/java/caosdb/server/jobs/core/CheckFileStorageConsistency.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckFileStorageConsistency.java
index 5af12ad71b4b3c5b12ac8321131b4d9cb29013d5..8dc6fc0c60bc234d65f576377a89244d0a7a673e 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckFileStorageConsistency.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckFileStorageConsistency.java
@@ -20,27 +20,27 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
-
-import caosdb.server.CaosDBServer;
-import caosdb.server.FileSystem;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.Message;
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.transaction.FileStorageConsistencyCheck;
-import caosdb.server.transaction.Retrieve;
-import caosdb.server.transaction.Transaction;
-import caosdb.server.utils.FileUtils;
-import caosdb.server.utils.Observable;
-import caosdb.server.utils.Observer;
-import caosdb.server.utils.Undoable;
+package org.caosdb.server.jobs.core;
+
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.PrintStream;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.transaction.FileStorageConsistencyCheck;
+import org.caosdb.server.transaction.Retrieve;
+import org.caosdb.server.transaction.Transaction;
+import org.caosdb.server.utils.FileUtils;
+import org.caosdb.server.utils.Observable;
+import org.caosdb.server.utils.Observer;
+import org.caosdb.server.utils.Undoable;
 import org.jdom2.Document;
 import org.jdom2.output.Format;
 import org.jdom2.output.XMLOutputter;
@@ -210,7 +210,7 @@ public class CheckFileStorageConsistency extends FlagJob {
                     + "test_file_storage_consistecy"
                     + Integer.toString(hashCode()));
 
-        final Undoable undo2 = caosdb.server.utils.FileUtils.rename(f2, tmp2);
+        final Undoable undo2 = org.caosdb.server.utils.FileUtils.rename(f2, tmp2);
 
         final File overridden = new File(oldPath2);
         overridden.createNewFile();
diff --git a/src/main/java/caosdb/server/jobs/core/CheckNamePresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckNamePresent.java
similarity index 89%
rename from src/main/java/caosdb/server/jobs/core/CheckNamePresent.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckNamePresent.java
index d63a9cc54d4c413a0c827a562afa023b610ff872..f1600ce42117ab5f37fccd33b79d821efeccb774 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckNamePresent.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckNamePresent.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Check whether an entity has a name.
diff --git a/src/main/java/caosdb/server/jobs/core/CheckNoAdditionalPropertiesPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckNoAdditionalPropertiesPresent.java
similarity index 83%
rename from src/main/java/caosdb/server/jobs/core/CheckNoAdditionalPropertiesPresent.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckNoAdditionalPropertiesPresent.java
index 1eb4941d47314f7f67bbe874784f2427cecdca92..b04a9151ab5c142e97a6efc9b19607896ab38daf 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckNoAdditionalPropertiesPresent.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckNoAdditionalPropertiesPresent.java
@@ -1,14 +1,14 @@
-package caosdb.server.jobs.core;
-
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+package org.caosdb.server.jobs.core;
+
 import java.util.HashSet;
 import java.util.Objects;
 import java.util.Set;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 @JobAnnotation(
     flag = "noAdditionalProperties",
diff --git a/src/main/java/caosdb/server/jobs/core/CheckNoOverridesPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckNoOverridesPresent.java
similarity index 76%
rename from src/main/java/caosdb/server/jobs/core/CheckNoOverridesPresent.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckNoOverridesPresent.java
index c6b16210e7517c69c26ed6f2e8c556bf5687f7f4..e439354e88f39675491682877dd27aa54fd7a3ef 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckNoOverridesPresent.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckNoOverridesPresent.java
@@ -1,10 +1,10 @@
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.Message;
-import caosdb.server.entity.wrapper.Property;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.wrapper.Property;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.utils.ServerMessages;
 
 @JobAnnotation(
     flag = "noOverrides",
diff --git a/src/main/java/caosdb/server/jobs/core/CheckParOblPropPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckParOblPropPresent.java
similarity index 92%
rename from src/main/java/caosdb/server/jobs/core/CheckParOblPropPresent.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckParOblPropPresent.java
index bee056c5763593ce6ef6a71f713019fae30a8bb5..c592eca81394e4a92582fd3d2286b5ac0507dcce 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckParOblPropPresent.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckParOblPropPresent.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.database.backend.transaction.RetrieveFullEntity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.StatementStatus;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.database.backend.transaction.RetrieveFullEntity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.StatementStatus;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Check whether an entity implements all obligatory properties of all parents.
diff --git a/src/main/java/caosdb/server/jobs/core/CheckParPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckParPresent.java
similarity index 89%
rename from src/main/java/caosdb/server/jobs/core/CheckParPresent.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckParPresent.java
index 7318e45f62c02378aec36a36b6915223f745e79e..8851456c236c0afd9f922f187089adc5f4e35ab1 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckParPresent.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckParPresent.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Check whether an entity has at least one parent.
diff --git a/src/main/java/caosdb/server/jobs/core/CheckParValid.java b/src/main/java/org/caosdb/server/jobs/core/CheckParValid.java
similarity index 91%
rename from src/main/java/caosdb/server/jobs/core/CheckParValid.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckParValid.java
index 560558dce6e494fa4857fefadfa7d22ef79ee5aa..c6d10a8f4f7cd0656f571a4cbf70385ab9cb7725 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckParValid.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckParValid.java
@@ -20,21 +20,21 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
-
-import caosdb.server.database.exceptions.EntityDoesNotExistException;
-import caosdb.server.database.exceptions.EntityWasNotUniqueException;
-import caosdb.server.entity.Affiliation;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.Role;
-import caosdb.server.entity.wrapper.Parent;
-import caosdb.server.entity.wrapper.Property;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.permissions.EntityPermission;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+package org.caosdb.server.jobs.core;
+
 import com.google.common.base.Objects;
+import org.caosdb.server.database.exceptions.EntityDoesNotExistException;
+import org.caosdb.server.database.exceptions.EntityWasNotUniqueException;
+import org.caosdb.server.entity.Affiliation;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.entity.wrapper.Parent;
+import org.caosdb.server.entity.wrapper.Property;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.permissions.EntityPermission;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Check whether all parents of an entity are valid/qualified.
diff --git a/src/main/java/caosdb/server/jobs/core/CheckPropPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckPropPresent.java
similarity index 89%
rename from src/main/java/caosdb/server/jobs/core/CheckPropPresent.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckPropPresent.java
index 3d8c44fd824df8f00a021ba2098b58c65d7eac3f..31a460971bc80ccf61d775c96b4632fa38f14f66 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckPropPresent.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckPropPresent.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Check whether at least one property is present.
diff --git a/src/main/java/caosdb/server/jobs/core/CheckPropValid.java b/src/main/java/org/caosdb/server/jobs/core/CheckPropValid.java
similarity index 90%
rename from src/main/java/caosdb/server/jobs/core/CheckPropValid.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckPropValid.java
index 5e199e848984a4d042c3a755d83a8d57ba91987f..10ce6295a5b4910084d769278ca6348287e6223a 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckPropValid.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckPropValid.java
@@ -20,20 +20,20 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
-
-import static caosdb.server.utils.ServerMessages.ENTITY_DOES_NOT_EXIST;
-
-import caosdb.server.database.exceptions.EntityDoesNotExistException;
-import caosdb.server.database.exceptions.EntityWasNotUniqueException;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.wrapper.Property;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.permissions.EntityPermission;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+package org.caosdb.server.jobs.core;
+
+import static org.caosdb.server.utils.ServerMessages.ENTITY_DOES_NOT_EXIST;
+
 import com.google.common.base.Objects;
+import org.caosdb.server.database.exceptions.EntityDoesNotExistException;
+import org.caosdb.server.database.exceptions.EntityWasNotUniqueException;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.wrapper.Property;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.permissions.EntityPermission;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Check whether all properties of an entity are valid or qualified.
diff --git a/src/main/java/caosdb/server/jobs/core/CheckQueryTemplate.java b/src/main/java/org/caosdb/server/jobs/core/CheckQueryTemplate.java
similarity index 85%
rename from src/main/java/caosdb/server/jobs/core/CheckQueryTemplate.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckQueryTemplate.java
index e675accb6d571620dfb39df47f1104965cb8866b..1b5ccb41f58b92d2230fb99e5635ad02bd9922f5 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckQueryTemplate.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckQueryTemplate.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.Role;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.query.Query;
-import caosdb.server.query.Query.ParsingException;
-import caosdb.server.query.Query.Type;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.query.Query;
+import org.caosdb.server.query.Query.ParsingException;
+import org.caosdb.server.query.Query.Type;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 public class CheckQueryTemplate extends EntityJob {
 
diff --git a/src/main/java/caosdb/server/jobs/core/CheckReferenceDependencyExistent.java b/src/main/java/org/caosdb/server/jobs/core/CheckReferenceDependencyExistent.java
similarity index 92%
rename from src/main/java/caosdb/server/jobs/core/CheckReferenceDependencyExistent.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckReferenceDependencyExistent.java
index fd5eaab0f0d302e9b5586693ef502c32d607d773..c59eededd391645737b614f5f2e97699160c8cf7 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckReferenceDependencyExistent.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckReferenceDependencyExistent.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.database.backend.transaction.GetDependentEntities;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
 import java.util.List;
+import org.caosdb.server.database.backend.transaction.GetDependentEntities;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Check whether an entity is referenced by other entities. In the event that someone wants to
diff --git a/src/main/java/caosdb/server/jobs/core/CheckRefidIsaParRefid.java b/src/main/java/org/caosdb/server/jobs/core/CheckRefidIsaParRefid.java
similarity index 87%
rename from src/main/java/caosdb/server/jobs/core/CheckRefidIsaParRefid.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckRefidIsaParRefid.java
index 04a1ac8c5bf6aa42bf2dcec803e6bc1b68a3a7f0..59fcfe1d877ca61c98674ee85919f03b7bd4278e 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckRefidIsaParRefid.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckRefidIsaParRefid.java
@@ -20,24 +20,24 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.datatype.AbstractCollectionDatatype;
-import caosdb.server.datatype.CollectionValue;
-import caosdb.server.datatype.FileDatatype;
-import caosdb.server.datatype.IndexedSingleValue;
-import caosdb.server.datatype.ReferenceDatatype2;
-import caosdb.server.datatype.ReferenceValue;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.Message.MessageType;
-import caosdb.server.entity.Role;
-import caosdb.server.entity.wrapper.Parent;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.Observable;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.datatype.AbstractCollectionDatatype;
+import org.caosdb.server.datatype.CollectionValue;
+import org.caosdb.server.datatype.FileDatatype;
+import org.caosdb.server.datatype.IndexedSingleValue;
+import org.caosdb.server.datatype.ReferenceDatatype2;
+import org.caosdb.server.datatype.ReferenceValue;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.Message.MessageType;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.entity.wrapper.Parent;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.Observable;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Check if the referenced entity is in the scope of the data type. E.g. if the data type is
diff --git a/src/main/java/caosdb/server/jobs/core/CheckRefidPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckRefidPresent.java
similarity index 93%
rename from src/main/java/caosdb/server/jobs/core/CheckRefidPresent.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckRefidPresent.java
index 7af03b314b6894269e62766b63adad08a13d1fe8..17d9bc7c9fbbfd37d64446a8b21ff65afca9391d 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckRefidPresent.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckRefidPresent.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.jobs.EntityJob;
+import org.caosdb.server.jobs.EntityJob;
 
 public class CheckRefidPresent extends EntityJob {
   @Override
diff --git a/src/main/java/caosdb/server/jobs/core/CheckRefidValid.java b/src/main/java/org/caosdb/server/jobs/core/CheckRefidValid.java
similarity index 88%
rename from src/main/java/caosdb/server/jobs/core/CheckRefidValid.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckRefidValid.java
index 36591070cd64558114bb56e22860b95f42fc6463..42476f87b43496e162b6eb036480b6b745ee91f2 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckRefidValid.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckRefidValid.java
@@ -22,23 +22,23 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
-
-import caosdb.server.database.exceptions.EntityDoesNotExistException;
-import caosdb.server.database.exceptions.EntityWasNotUniqueException;
-import caosdb.server.datatype.AbstractCollectionDatatype;
-import caosdb.server.datatype.CollectionValue;
-import caosdb.server.datatype.IndexedSingleValue;
-import caosdb.server.datatype.ReferenceDatatype;
-import caosdb.server.datatype.ReferenceValue;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.permissions.EntityPermission;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.Observable;
-import caosdb.server.utils.ServerMessages;
+package org.caosdb.server.jobs.core;
+
+import org.caosdb.server.database.exceptions.EntityDoesNotExistException;
+import org.caosdb.server.database.exceptions.EntityWasNotUniqueException;
+import org.caosdb.server.datatype.AbstractCollectionDatatype;
+import org.caosdb.server.datatype.CollectionValue;
+import org.caosdb.server.datatype.IndexedSingleValue;
+import org.caosdb.server.datatype.ReferenceDatatype;
+import org.caosdb.server.datatype.ReferenceValue;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.permissions.EntityPermission;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.Observable;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Check whether a reference property is pointing to a valid entity.
diff --git a/src/main/java/caosdb/server/jobs/core/CheckTargetPathValid.java b/src/main/java/org/caosdb/server/jobs/core/CheckTargetPathValid.java
similarity index 87%
rename from src/main/java/caosdb/server/jobs/core/CheckTargetPathValid.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckTargetPathValid.java
index 404e6b3a0d82950061ba4168a7a6f32e5f847400..7d06498f5d9e4fbc382e7dde025983ceac6a7fdc 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckTargetPathValid.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckTargetPathValid.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.FileSystem;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Check whether the target path of a file entity is valid. That is, the target path is in the file
diff --git a/src/main/java/caosdb/server/jobs/core/CheckUnitPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckUnitPresent.java
similarity index 86%
rename from src/main/java/caosdb/server/jobs/core/CheckUnitPresent.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckUnitPresent.java
index 5b923769025dd49fb3ac0a9339f674edc37c022c..aa87ecfff69635407bc90d372c89f089e4f308dc 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckUnitPresent.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckUnitPresent.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.MagicTypes;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.MagicTypes;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Check whether this entity has a unit property.
diff --git a/src/main/java/caosdb/server/jobs/core/CheckValueParsable.java b/src/main/java/org/caosdb/server/jobs/core/CheckValueParsable.java
similarity index 91%
rename from src/main/java/caosdb/server/jobs/core/CheckValueParsable.java
rename to src/main/java/org/caosdb/server/jobs/core/CheckValueParsable.java
index 3140952d673798fdf120c721489be67ae31e0414..34e1960961f72118567653a77e4f48fe357dfedc 100644
--- a/src/main/java/caosdb/server/jobs/core/CheckValueParsable.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckValueParsable.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.Observable;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.Observable;
 
 /**
  * Check whether the value of an entity is parsable according to the entity's data type. This job
diff --git a/src/main/java/caosdb/server/jobs/core/DebugCalls.java b/src/main/java/org/caosdb/server/jobs/core/DebugCalls.java
similarity index 88%
rename from src/main/java/caosdb/server/jobs/core/DebugCalls.java
rename to src/main/java/org/caosdb/server/jobs/core/DebugCalls.java
index b56fb6fbef4a2b3f53c0d5aa66f9bf244307be5e..8527560d02e498bf3812162a8b01b9641aad7260 100644
--- a/src/main/java/caosdb/server/jobs/core/DebugCalls.java
+++ b/src/main/java/org/caosdb/server/jobs/core/DebugCalls.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
 
 @JobAnnotation(
     flag = "debug",
diff --git a/src/main/java/caosdb/server/jobs/core/ExecuteQuery.java b/src/main/java/org/caosdb/server/jobs/core/ExecuteQuery.java
similarity index 81%
rename from src/main/java/caosdb/server/jobs/core/ExecuteQuery.java
rename to src/main/java/org/caosdb/server/jobs/core/ExecuteQuery.java
index 6de19d6006dd31bde9fcff033f1808e6e4aac276..b6583f024071e3c1151cf974b387ffe72d1579b7 100644
--- a/src/main/java/caosdb/server/jobs/core/ExecuteQuery.java
+++ b/src/main/java/org/caosdb/server/jobs/core/ExecuteQuery.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.Message;
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.server.query.Query;
-import caosdb.server.query.Query.ParsingException;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.query.Query;
+import org.caosdb.server.query.Query.ParsingException;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 @JobAnnotation(flag = "query", time = JobExecutionTime.INIT)
 public class ExecuteQuery extends FlagJob {
diff --git a/src/main/java/caosdb/server/jobs/core/History.java b/src/main/java/org/caosdb/server/jobs/core/History.java
similarity index 79%
rename from src/main/java/caosdb/server/jobs/core/History.java
rename to src/main/java/org/caosdb/server/jobs/core/History.java
index ee72413a46e65f8b8a020315e3c2e93c7b8ccd97..a7c58979f49b2a7abdc313924dc8fb6b86bbffd4 100644
--- a/src/main/java/caosdb/server/jobs/core/History.java
+++ b/src/main/java/org/caosdb/server/jobs/core/History.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.database.backend.transaction.RetrieveTransactionHistory;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.server.permissions.EntityPermission;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
 import org.apache.shiro.authz.AuthorizationException;
+import org.caosdb.server.database.backend.transaction.RetrieveTransactionHistory;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.permissions.EntityPermission;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 @JobAnnotation(time = JobExecutionTime.POST_TRANSACTION, flag = "H")
 public class History extends FlagJob {
diff --git a/src/main/java/caosdb/server/jobs/core/Inheritance.java b/src/main/java/org/caosdb/server/jobs/core/Inheritance.java
similarity index 94%
rename from src/main/java/caosdb/server/jobs/core/Inheritance.java
rename to src/main/java/org/caosdb/server/jobs/core/Inheritance.java
index f7149eb3c74270012db011385e17bbf01fdd01a2..3c08f9f281335c64a2af28ae131ff99d2c5ed6ca 100644
--- a/src/main/java/caosdb/server/jobs/core/Inheritance.java
+++ b/src/main/java/org/caosdb/server/jobs/core/Inheritance.java
@@ -20,19 +20,19 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.database.backend.transaction.RetrieveFullEntity;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.Message.MessageType;
-import caosdb.server.entity.wrapper.Property;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.transaction.Insert;
-import caosdb.server.transaction.Update;
-import caosdb.server.utils.EntityStatus;
 import java.util.ArrayList;
+import org.caosdb.server.database.backend.transaction.RetrieveFullEntity;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.Message.MessageType;
+import org.caosdb.server.entity.wrapper.Property;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.transaction.Insert;
+import org.caosdb.server.transaction.Update;
+import org.caosdb.server.utils.EntityStatus;
 
 public class Inheritance extends EntityJob {
 
diff --git a/src/main/java/caosdb/server/jobs/core/InsertFilesInDir.java b/src/main/java/org/caosdb/server/jobs/core/InsertFilesInDir.java
similarity index 93%
rename from src/main/java/caosdb/server/jobs/core/InsertFilesInDir.java
rename to src/main/java/org/caosdb/server/jobs/core/InsertFilesInDir.java
index 6b3144eb08b471ea90b836978c76b4ff643c313d..73d7ee3f5be0b8847ce322f6774719b7f5a768c2 100644
--- a/src/main/java/caosdb/server/jobs/core/InsertFilesInDir.java
+++ b/src/main/java/org/caosdb/server/jobs/core/InsertFilesInDir.java
@@ -20,34 +20,34 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
-
-import caosdb.server.CaosDBException;
-import caosdb.server.CaosDBServer;
-import caosdb.server.FileSystem;
-import caosdb.server.ServerProperties;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.misc.RollBackHandler;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.Message.MessageType;
-import caosdb.server.entity.Role;
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.Job;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.server.transaction.Retrieve;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.FileUtils;
-import caosdb.server.utils.Undoable;
-import caosdb.server.utils.Utils;
+package org.caosdb.server.jobs.core;
+
 import java.io.File;
 import java.io.IOException;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.misc.RollBackHandler;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.Message.MessageType;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.Job;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.transaction.Retrieve;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.FileUtils;
+import org.caosdb.server.utils.Undoable;
+import org.caosdb.server.utils.Utils;
 
 @JobAnnotation(
     flag = "InsertFilesInDir",
diff --git a/src/main/java/caosdb/server/jobs/core/LoadContainerFlagJobs.java b/src/main/java/org/caosdb/server/jobs/core/LoadContainerFlagJobs.java
similarity index 85%
rename from src/main/java/caosdb/server/jobs/core/LoadContainerFlagJobs.java
rename to src/main/java/org/caosdb/server/jobs/core/LoadContainerFlagJobs.java
index 9df5e601afd7839887164b87ae1ea00a892d1bb7..89f381d648144e274325c5c71a57c9f4daf04895 100644
--- a/src/main/java/caosdb/server/jobs/core/LoadContainerFlagJobs.java
+++ b/src/main/java/org/caosdb/server/jobs/core/LoadContainerFlagJobs.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.jobs.ContainerJob;
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.Job;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
 import java.util.Map.Entry;
+import org.caosdb.server.jobs.ContainerJob;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.Job;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
 
 @JobAnnotation(time = JobExecutionTime.INIT)
 public class LoadContainerFlagJobs extends ContainerJob {
diff --git a/src/main/java/caosdb/server/jobs/core/MatchFileProp.java b/src/main/java/org/caosdb/server/jobs/core/MatchFileProp.java
similarity index 92%
rename from src/main/java/caosdb/server/jobs/core/MatchFileProp.java
rename to src/main/java/org/caosdb/server/jobs/core/MatchFileProp.java
index 7d193ebca7b3027b48edd55866526d8fb5025cb2..cef8b2b8ae9764ceb1e4bd2636c2b532d7e9415b 100644
--- a/src/main/java/caosdb/server/jobs/core/MatchFileProp.java
+++ b/src/main/java/org/caosdb/server/jobs/core/MatchFileProp.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.FileProperties;
-import caosdb.server.jobs.FilesJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.FileUtils;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.jobs.FilesJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.FileUtils;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Match the checksum and the size of a file record to the uploaded file's checksum and size.
diff --git a/src/main/java/caosdb/server/jobs/core/Mode.java b/src/main/java/org/caosdb/server/jobs/core/Mode.java
similarity index 96%
rename from src/main/java/caosdb/server/jobs/core/Mode.java
rename to src/main/java/org/caosdb/server/jobs/core/Mode.java
index 9814caed2d5aaa790c5706d2ed9d116f3f1ff740..561a4b0c5fcb4e2c8c66a2b9f9a02ea91c44c119 100644
--- a/src/main/java/caosdb/server/jobs/core/Mode.java
+++ b/src/main/java/org/caosdb/server/jobs/core/Mode.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
 public enum Mode {
   MUST,
diff --git a/src/main/java/caosdb/server/jobs/core/NoCache.java b/src/main/java/org/caosdb/server/jobs/core/NoCache.java
similarity index 90%
rename from src/main/java/caosdb/server/jobs/core/NoCache.java
rename to src/main/java/org/caosdb/server/jobs/core/NoCache.java
index f301e9b9819c002f67b059ea7415715fff3e9dd0..a4f639392ac63a97f2f025dfe6717a664114c561 100644
--- a/src/main/java/caosdb/server/jobs/core/NoCache.java
+++ b/src/main/java/org/caosdb/server/jobs/core/NoCache.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
 
 @JobAnnotation(
     flag = "cache",
diff --git a/src/main/java/caosdb/server/jobs/core/Paging.java b/src/main/java/org/caosdb/server/jobs/core/Paging.java
similarity index 86%
rename from src/main/java/caosdb/server/jobs/core/Paging.java
rename to src/main/java/org/caosdb/server/jobs/core/Paging.java
index f0d0d6a66d3f2f11788a1b52ab68e476b44b3c87..43683639f75c08be394a38ce03e91282405f333d 100644
--- a/src/main/java/caosdb/server/jobs/core/Paging.java
+++ b/src/main/java/org/caosdb/server/jobs/core/Paging.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.server.transaction.Retrieve;
-import caosdb.server.utils.EntityStatus;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.transaction.Retrieve;
+import org.caosdb.server.utils.EntityStatus;
 
 @JobAnnotation(flag = "P", time = JobExecutionTime.PRE_TRANSACTION)
 public class Paging extends FlagJob {
diff --git a/src/main/java/caosdb/server/jobs/core/ParseUnit.java b/src/main/java/org/caosdb/server/jobs/core/ParseUnit.java
similarity index 80%
rename from src/main/java/caosdb/server/jobs/core/ParseUnit.java
rename to src/main/java/org/caosdb/server/jobs/core/ParseUnit.java
index 2dbde3111e3bd5a8552c43fe1c0e95a73294414a..8e0a7818ea3c7567456115dafe5b3b2593f7511b 100644
--- a/src/main/java/caosdb/server/jobs/core/ParseUnit.java
+++ b/src/main/java/org/caosdb/server/jobs/core/ParseUnit.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.datatype.SingleValue;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.MagicTypes;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
-import caosdb.unit.CaosDBSystemOfUnits;
-import caosdb.unit.Unit;
-import caosdb.unit.UnknownUnit;
 import de.timmfitschen.easyunits.parser.ParserException;
+import org.caosdb.server.datatype.SingleValue;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.MagicTypes;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
+import org.caosdb.unit.CaosDBSystemOfUnits;
+import org.caosdb.unit.Unit;
+import org.caosdb.unit.UnknownUnit;
 
 public class ParseUnit extends EntityJob {
 
diff --git a/src/main/java/caosdb/server/jobs/core/PickUp.java b/src/main/java/org/caosdb/server/jobs/core/PickUp.java
similarity index 85%
rename from src/main/java/caosdb/server/jobs/core/PickUp.java
rename to src/main/java/org/caosdb/server/jobs/core/PickUp.java
index 542e7ee5cbb022c2456af0e305ef37ca02482dda..dff574a4ad0aa5199fe3ccdfdd9c72d2a7b2bb67 100644
--- a/src/main/java/caosdb/server/jobs/core/PickUp.java
+++ b/src/main/java/org/caosdb/server/jobs/core/PickUp.java
@@ -20,19 +20,19 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.FileSystem;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.Observable;
 import java.io.File;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.Observable;
 
 @JobAnnotation(time = JobExecutionTime.INIT)
 public class PickUp extends EntityJob {
diff --git a/src/main/java/caosdb/server/jobs/core/ProcessNameProperties.java b/src/main/java/org/caosdb/server/jobs/core/ProcessNameProperties.java
similarity index 90%
rename from src/main/java/caosdb/server/jobs/core/ProcessNameProperties.java
rename to src/main/java/org/caosdb/server/jobs/core/ProcessNameProperties.java
index 0a82c10108b054d45752756c14597d738b6a45f9..950c61d36255b68f52e3066616b1dee5d9f259c3 100644
--- a/src/main/java/caosdb/server/jobs/core/ProcessNameProperties.java
+++ b/src/main/java/org/caosdb/server/jobs/core/ProcessNameProperties.java
@@ -20,22 +20,22 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import static caosdb.server.entity.MagicTypes.NAME;
+import static org.caosdb.server.entity.MagicTypes.NAME;
 
-import caosdb.server.datatype.AbstractDatatype;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.wrapper.Parent;
-import caosdb.server.entity.wrapper.Property;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
+import org.caosdb.server.datatype.AbstractDatatype;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.wrapper.Parent;
+import org.caosdb.server.entity.wrapper.Property;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * To be called after CheckPropValid.
diff --git a/src/main/java/caosdb/server/jobs/core/RemoveDuplicates.java b/src/main/java/org/caosdb/server/jobs/core/RemoveDuplicates.java
similarity index 92%
rename from src/main/java/caosdb/server/jobs/core/RemoveDuplicates.java
rename to src/main/java/org/caosdb/server/jobs/core/RemoveDuplicates.java
index a09f66533cb3bc3c7cc01b2d6931bc120f87f7a7..3d3adcc1e1175d7aed95bba64d9d81d13b70f495 100644
--- a/src/main/java/caosdb/server/jobs/core/RemoveDuplicates.java
+++ b/src/main/java/org/caosdb/server/jobs/core/RemoveDuplicates.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.jobs.ContainerJob;
 import java.util.HashSet;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.jobs.ContainerJob;
 
 public class RemoveDuplicates extends ContainerJob {
 
diff --git a/src/main/java/caosdb/server/jobs/core/ResolveNames.java b/src/main/java/org/caosdb/server/jobs/core/ResolveNames.java
similarity index 80%
rename from src/main/java/caosdb/server/jobs/core/ResolveNames.java
rename to src/main/java/org/caosdb/server/jobs/core/ResolveNames.java
index a7781fb4c1fd82d8a1f14df01da152b50ce86ae3..d0a1f0768b77fa7bd110019dd95220f65ad256f2 100644
--- a/src/main/java/caosdb/server/jobs/core/ResolveNames.java
+++ b/src/main/java/org/caosdb/server/jobs/core/ResolveNames.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.database.backend.transaction.GetIDByName;
-import caosdb.server.database.exceptions.EntityDoesNotExistException;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.jobs.ContainerJob;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
 import java.util.ArrayList;
 import java.util.List;
+import org.caosdb.server.database.backend.transaction.GetIDByName;
+import org.caosdb.server.database.exceptions.EntityDoesNotExistException;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.jobs.ContainerJob;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 public class ResolveNames extends ContainerJob {
 
diff --git a/src/main/java/caosdb/server/jobs/core/RetrieveACL.java b/src/main/java/org/caosdb/server/jobs/core/RetrieveACL.java
similarity index 81%
rename from src/main/java/caosdb/server/jobs/core/RetrieveACL.java
rename to src/main/java/org/caosdb/server/jobs/core/RetrieveACL.java
index 8446d586d9cac2043cda0ab1cd80732e83d96fda..f59b2c1ec94de846714575537516c41d18bf4629 100644
--- a/src/main/java/caosdb/server/jobs/core/RetrieveACL.java
+++ b/src/main/java/org/caosdb/server/jobs/core/RetrieveACL.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.xml.ToElementable;
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.server.permissions.EntityPermission;
-import caosdb.server.transaction.Retrieve;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
 import org.apache.shiro.authz.AuthorizationException;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.xml.ToElementable;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.permissions.EntityPermission;
+import org.caosdb.server.transaction.Retrieve;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Element;
 
 @JobAnnotation(
diff --git a/src/main/java/caosdb/server/jobs/core/RetrieveAllJob.java b/src/main/java/org/caosdb/server/jobs/core/RetrieveAllJob.java
similarity index 83%
rename from src/main/java/caosdb/server/jobs/core/RetrieveAllJob.java
rename to src/main/java/org/caosdb/server/jobs/core/RetrieveAllJob.java
index 0fba1223a3bd0e984c5c2b6ff43dd58070b5bbc5..1ca43cec45413d80c307df2f4d09c6b8d34cfb49 100644
--- a/src/main/java/caosdb/server/jobs/core/RetrieveAllJob.java
+++ b/src/main/java/org/caosdb/server/jobs/core/RetrieveAllJob.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.database.backend.transaction.RetrieveAll;
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.database.backend.transaction.RetrieveAll;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
 
 @JobAnnotation(flag = "all", time = JobExecutionTime.INIT)
 public class RetrieveAllJob extends FlagJob {
diff --git a/src/main/java/caosdb/server/jobs/core/RetrieveIdOnlyFlag.java b/src/main/java/org/caosdb/server/jobs/core/RetrieveIdOnlyFlag.java
similarity index 83%
rename from src/main/java/caosdb/server/jobs/core/RetrieveIdOnlyFlag.java
rename to src/main/java/org/caosdb/server/jobs/core/RetrieveIdOnlyFlag.java
index 04dbf3632439d590c36425d3d1d0499333f76a8c..1712950dff9403df54f26457d0b6a763d7ce4de8 100644
--- a/src/main/java/caosdb/server/jobs/core/RetrieveIdOnlyFlag.java
+++ b/src/main/java/org/caosdb/server/jobs/core/RetrieveIdOnlyFlag.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.server.utils.EntityStatus;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.utils.EntityStatus;
 
 @JobAnnotation(flag = "IdOnly", time = JobExecutionTime.PRE_TRANSACTION)
 public class RetrieveIdOnlyFlag extends FlagJob {
diff --git a/src/main/java/caosdb/server/jobs/core/RetrieveOwner.java b/src/main/java/org/caosdb/server/jobs/core/RetrieveOwner.java
similarity index 82%
rename from src/main/java/caosdb/server/jobs/core/RetrieveOwner.java
rename to src/main/java/org/caosdb/server/jobs/core/RetrieveOwner.java
index 3c7fae64f16c3f7c0a6aa4791c404b640a26cb2b..7377805805ec55e2c3c3928cc42b0c053d8a9c9d 100644
--- a/src/main/java/caosdb/server/jobs/core/RetrieveOwner.java
+++ b/src/main/java/org/caosdb/server/jobs/core/RetrieveOwner.java
@@ -20,20 +20,20 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.xml.ToElementable;
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.server.permissions.EntityPermission;
-import caosdb.server.permissions.ResponsibleAgent;
-import caosdb.server.transaction.Retrieve;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
 import java.util.List;
 import org.apache.shiro.authz.AuthorizationException;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.xml.ToElementable;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.permissions.EntityPermission;
+import org.caosdb.server.permissions.ResponsibleAgent;
+import org.caosdb.server.transaction.Retrieve;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Element;
 
 @JobAnnotation(
diff --git a/src/main/java/caosdb/server/jobs/core/RetriveAllNames.java b/src/main/java/org/caosdb/server/jobs/core/RetriveAllNames.java
similarity index 63%
rename from src/main/java/caosdb/server/jobs/core/RetriveAllNames.java
rename to src/main/java/org/caosdb/server/jobs/core/RetriveAllNames.java
index d7f58e00c602d5ed9a79d9e03fa08d9941e64217..dfd69a5cb5a40a6e6be35e345f17e38f3dbb7e2e 100644
--- a/src/main/java/caosdb/server/jobs/core/RetriveAllNames.java
+++ b/src/main/java/org/caosdb/server/jobs/core/RetriveAllNames.java
@@ -1,12 +1,12 @@
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.database.backend.transaction.GetAllNames;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.server.permissions.EntityPermission;
-import caosdb.server.utils.EntityStatus;
+import org.caosdb.server.database.backend.transaction.GetAllNames;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.permissions.EntityPermission;
+import org.caosdb.server.utils.EntityStatus;
 
 /**
  * A jobs which retrieves all known names for which the requesting user has the RETRIEVE_ENTITY
diff --git a/src/main/java/caosdb/server/jobs/core/SetImpToFix.java b/src/main/java/org/caosdb/server/jobs/core/SetImpToFix.java
similarity index 89%
rename from src/main/java/caosdb/server/jobs/core/SetImpToFix.java
rename to src/main/java/org/caosdb/server/jobs/core/SetImpToFix.java
index 09566b337c695daf3694c31dc49f93cd4d10bc8a..f0047d02f861ef26cbad12b4e6a5963d51415eec 100644
--- a/src/main/java/caosdb/server/jobs/core/SetImpToFix.java
+++ b/src/main/java/org/caosdb/server/jobs/core/SetImpToFix.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.StatementStatus;
-import caosdb.server.jobs.EntityJob;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.StatementStatus;
+import org.caosdb.server.jobs.EntityJob;
 
 /**
  * Set the statement status of all properties of an entity to the value "FIX".
diff --git a/src/main/java/caosdb/server/jobs/core/SetImpToRecByDefault.java b/src/main/java/org/caosdb/server/jobs/core/SetImpToRecByDefault.java
similarity index 91%
rename from src/main/java/caosdb/server/jobs/core/SetImpToRecByDefault.java
rename to src/main/java/org/caosdb/server/jobs/core/SetImpToRecByDefault.java
index dbce7d873243fe136e1fd26e64c958b5ba7b345e..dd6cfc0820d9cd15281897a200f82d2c7d9d02bb 100644
--- a/src/main/java/caosdb/server/jobs/core/SetImpToRecByDefault.java
+++ b/src/main/java/org/caosdb/server/jobs/core/SetImpToRecByDefault.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.StatementStatus;
-import caosdb.server.jobs.EntityJob;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.StatementStatus;
+import org.caosdb.server.jobs.EntityJob;
 
 /**
  * Set the statement status of all properties of an entity which do not have a statement status to
diff --git a/src/main/java/caosdb/server/jobs/core/Strict.java b/src/main/java/org/caosdb/server/jobs/core/Strict.java
similarity index 79%
rename from src/main/java/caosdb/server/jobs/core/Strict.java
rename to src/main/java/org/caosdb/server/jobs/core/Strict.java
index bb8d9af2aa3eb402c05419144f2f3543017f3833..aebbecf86a89476339dbdef8892b074aebc8196d 100644
--- a/src/main/java/caosdb/server/jobs/core/Strict.java
+++ b/src/main/java/org/caosdb/server/jobs/core/Strict.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.xml.ToElementable;
-import caosdb.server.jobs.ContainerJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.xml.ToElementable;
+import org.caosdb.server.jobs.ContainerJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 @JobAnnotation(time = JobExecutionTime.POST_CHECK)
 public class Strict extends ContainerJob {
diff --git a/src/main/java/caosdb/server/jobs/core/TestMail.java b/src/main/java/org/caosdb/server/jobs/core/TestMail.java
similarity index 81%
rename from src/main/java/caosdb/server/jobs/core/TestMail.java
rename to src/main/java/org/caosdb/server/jobs/core/TestMail.java
index e529265a36cac6b483215500edc5b9793ef60afc..fb3e87097fae44f3f1f609dd7e347c27c6d971c2 100644
--- a/src/main/java/caosdb/server/jobs/core/TestMail.java
+++ b/src/main/java/org/caosdb/server/jobs/core/TestMail.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.Message.MessageType;
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.utils.ServerMessages;
-import caosdb.server.utils.Utils;
-import caosdb.server.utils.mail.Mail;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.Message.MessageType;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.utils.ServerMessages;
+import org.caosdb.server.utils.Utils;
+import org.caosdb.server.utils.mail.Mail;
 
 @JobAnnotation(
     flag = "testMail",
diff --git a/src/main/java/caosdb/server/jobs/core/UniqueName.java b/src/main/java/org/caosdb/server/jobs/core/UniqueName.java
similarity index 83%
rename from src/main/java/caosdb/server/jobs/core/UniqueName.java
rename to src/main/java/org/caosdb/server/jobs/core/UniqueName.java
index 65b41253a34de0ad3e01b727e03fc4541746a222..300e32bf1662e4990f52bda0570a65c05e5d60b8 100644
--- a/src/main/java/caosdb/server/jobs/core/UniqueName.java
+++ b/src/main/java/org/caosdb/server/jobs/core/UniqueName.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.database.exceptions.EntityDoesNotExistException;
-import caosdb.server.database.exceptions.EntityWasNotUniqueException;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.database.exceptions.EntityDoesNotExistException;
+import org.caosdb.server.database.exceptions.EntityWasNotUniqueException;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 @JobAnnotation(flag = "uniquename")
 public class UniqueName extends FlagJob {
diff --git a/src/main/java/caosdb/server/jobs/core/UpdateUnitConverters.java b/src/main/java/org/caosdb/server/jobs/core/UpdateUnitConverters.java
similarity index 87%
rename from src/main/java/caosdb/server/jobs/core/UpdateUnitConverters.java
rename to src/main/java/org/caosdb/server/jobs/core/UpdateUnitConverters.java
index 8d0118b80582e3a65b613caae2200719af428819..b3ef80adb64fcf3c1007a33a64bde691c9ff9c1d 100644
--- a/src/main/java/caosdb/server/jobs/core/UpdateUnitConverters.java
+++ b/src/main/java/org/caosdb/server/jobs/core/UpdateUnitConverters.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
-import caosdb.server.database.backend.transaction.InsertLinCon;
-import caosdb.server.jobs.EntityJob;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.unit.Converter;
-import caosdb.unit.LinearConverter;
-import caosdb.unit.Unit;
+import org.caosdb.server.database.backend.transaction.InsertLinCon;
+import org.caosdb.server.jobs.EntityJob;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.unit.Converter;
+import org.caosdb.unit.LinearConverter;
+import org.caosdb.unit.Unit;
 
 @JobAnnotation(time = JobExecutionTime.PRE_TRANSACTION)
 public class UpdateUnitConverters extends EntityJob {
diff --git a/src/main/java/caosdb/server/logging/RequestErrorLogMessage.java b/src/main/java/org/caosdb/server/logging/RequestErrorLogMessage.java
similarity index 95%
rename from src/main/java/caosdb/server/logging/RequestErrorLogMessage.java
rename to src/main/java/org/caosdb/server/logging/RequestErrorLogMessage.java
index ddffe7d512a7e31043883f238fd4fc2136d853bf..4f0e57a46155c51076d4a134c3559d0f773811a1 100644
--- a/src/main/java/caosdb/server/logging/RequestErrorLogMessage.java
+++ b/src/main/java/org/caosdb/server/logging/RequestErrorLogMessage.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.logging;
+package org.caosdb.server.logging;
 
-import caosdb.server.resource.ReReadableRepresentation;
 import java.io.IOException;
 import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import org.caosdb.server.resource.ReReadableRepresentation;
 import org.restlet.Message;
 import org.restlet.Request;
 import org.restlet.Response;
@@ -37,7 +37,7 @@ import org.restlet.util.Series;
 public class RequestErrorLogMessage implements Serializable {
 
   /** */
-  private static final long serialVersionUID = 4683559833384175003L;
+  private static final long serialVersionUID = 2798857225464412730L;
 
   public String request = null;
   public String response = null;
diff --git a/src/main/java/caosdb/server/logging/log4j/CustomConfigurationFactory.java b/src/main/java/org/caosdb/server/logging/log4j/CustomConfigurationFactory.java
similarity index 98%
rename from src/main/java/caosdb/server/logging/log4j/CustomConfigurationFactory.java
rename to src/main/java/org/caosdb/server/logging/log4j/CustomConfigurationFactory.java
index 6b7a456909074080f6e99670e1eed9b934653977..62722317f882dffae4168808514a6d972ae8bfe6 100644
--- a/src/main/java/caosdb/server/logging/log4j/CustomConfigurationFactory.java
+++ b/src/main/java/org/caosdb/server/logging/log4j/CustomConfigurationFactory.java
@@ -1,4 +1,4 @@
-package caosdb.server.logging.log4j;
+package org.caosdb.server.logging.log4j;
 
 import java.io.File;
 import java.net.URI;
diff --git a/src/main/java/caosdb/server/permissions/AbstractEntityACLFactory.java b/src/main/java/org/caosdb/server/permissions/AbstractEntityACLFactory.java
similarity index 99%
rename from src/main/java/caosdb/server/permissions/AbstractEntityACLFactory.java
rename to src/main/java/org/caosdb/server/permissions/AbstractEntityACLFactory.java
index 5d8174711c2dfd06798c5f5690b61540f55e5c56..3a3d03d18bc7b0913a522e2edd6c235f9a7d39a7 100644
--- a/src/main/java/caosdb/server/permissions/AbstractEntityACLFactory.java
+++ b/src/main/java/org/caosdb/server/permissions/AbstractEntityACLFactory.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.permissions;
+package org.caosdb.server.permissions;
 
 import java.util.ArrayList;
 import java.util.Collection;
diff --git a/src/main/java/caosdb/server/permissions/CaosPermission.java b/src/main/java/org/caosdb/server/permissions/CaosPermission.java
similarity index 95%
rename from src/main/java/caosdb/server/permissions/CaosPermission.java
rename to src/main/java/org/caosdb/server/permissions/CaosPermission.java
index 71d5403848a44f02220d84237171e43a6406c492..1b793bb27f6a14bcf7fd0c5f828c20b73f3d11e5 100644
--- a/src/main/java/caosdb/server/permissions/CaosPermission.java
+++ b/src/main/java/org/caosdb/server/permissions/CaosPermission.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.permissions;
+package org.caosdb.server.permissions;
 
 import java.util.HashSet;
 import java.util.Map;
@@ -45,7 +45,7 @@ public class CaosPermission extends HashSet<PermissionRule> implements Permissio
     return ret;
   }
 
-  private static final long serialVersionUID = -2730907147406500598L;
+  private static final long serialVersionUID = 2136265443788256009L;
 
   @Override
   public boolean implies(final Permission p) {
diff --git a/src/main/java/caosdb/server/permissions/EntityACI.java b/src/main/java/org/caosdb/server/permissions/EntityACI.java
similarity index 98%
rename from src/main/java/caosdb/server/permissions/EntityACI.java
rename to src/main/java/org/caosdb/server/permissions/EntityACI.java
index 4b960f49beedec9df2a15084ac77e9508670df0f..ccc889decafc941484432c99bf48908c21dff209 100644
--- a/src/main/java/caosdb/server/permissions/EntityACI.java
+++ b/src/main/java/org/caosdb/server/permissions/EntityACI.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.permissions;
+package org.caosdb.server.permissions;
 
 import java.util.HashMap;
 
diff --git a/src/main/java/caosdb/server/permissions/EntityACL.java b/src/main/java/org/caosdb/server/permissions/EntityACL.java
similarity index 96%
rename from src/main/java/caosdb/server/permissions/EntityACL.java
rename to src/main/java/org/caosdb/server/permissions/EntityACL.java
index e0bfcf9243eb436f9af0d6a3bacfabb79984538c..df1915bd460079eb52dfc6d4f3bbf4fe42795918 100644
--- a/src/main/java/caosdb/server/permissions/EntityACL.java
+++ b/src/main/java/org/caosdb/server/permissions/EntityACL.java
@@ -20,16 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.permissions;
+package org.caosdb.server.permissions;
 
-import static caosdb.server.permissions.Role.OTHER_ROLE;
-import static caosdb.server.permissions.Role.OWNER_ROLE;
+import static org.caosdb.server.permissions.Role.OTHER_ROLE;
+import static org.caosdb.server.permissions.Role.OWNER_ROLE;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.accessControl.AuthenticationUtils;
-import caosdb.server.accessControl.Principal;
-import caosdb.server.database.exceptions.TransactionException;
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -41,6 +36,11 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.accessControl.AuthenticationUtils;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.database.exceptions.TransactionException;
 import org.eclipse.jetty.util.ajax.JSON;
 import org.jdom2.DataConversionException;
 import org.jdom2.Document;
diff --git a/src/main/java/caosdb/server/permissions/EntityACLFactory.java b/src/main/java/org/caosdb/server/permissions/EntityACLFactory.java
similarity index 85%
rename from src/main/java/caosdb/server/permissions/EntityACLFactory.java
rename to src/main/java/org/caosdb/server/permissions/EntityACLFactory.java
index eeacb1260729f78f490e592891c0a93a334b42fa..08e4ae45cf07baac91b98205c1098d823b878b21 100644
--- a/src/main/java/caosdb/server/permissions/EntityACLFactory.java
+++ b/src/main/java/org/caosdb/server/permissions/EntityACLFactory.java
@@ -1,4 +1,4 @@
-package caosdb.server.permissions;
+package org.caosdb.server.permissions;
 
 import java.util.Collection;
 
diff --git a/src/main/java/caosdb/server/permissions/EntityPermission.java b/src/main/java/org/caosdb/server/permissions/EntityPermission.java
similarity index 97%
rename from src/main/java/caosdb/server/permissions/EntityPermission.java
rename to src/main/java/org/caosdb/server/permissions/EntityPermission.java
index 1747a55810cf9718abc9627cad8102f88b2a5cac..1f84dce34a611f3b25bea5ddaab0d40c9723a280 100644
--- a/src/main/java/caosdb/server/permissions/EntityPermission.java
+++ b/src/main/java/org/caosdb/server/permissions/EntityPermission.java
@@ -20,21 +20,21 @@
  *
  * ** end header
  */
-package caosdb.server.permissions;
+package org.caosdb.server.permissions;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.entity.xml.ToElementable;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.entity.xml.ToElementable;
 import org.jdom2.Element;
 
 public class EntityPermission extends Permission {
 
-  private static final long serialVersionUID = 1L;
+  private static final long serialVersionUID = -8935713878537140286L;
   private static List<EntityPermission> instances = new ArrayList<>();
   private final int bitNumber;
 
diff --git a/src/main/java/caosdb/server/permissions/Permission.java b/src/main/java/org/caosdb/server/permissions/Permission.java
similarity index 94%
rename from src/main/java/caosdb/server/permissions/Permission.java
rename to src/main/java/org/caosdb/server/permissions/Permission.java
index e58329ee38e45c9bc053ca5cc60b258838116271..44eee1c68a073c405233195aee491bcf10fcd38c 100644
--- a/src/main/java/caosdb/server/permissions/Permission.java
+++ b/src/main/java/org/caosdb/server/permissions/Permission.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.permissions;
+package org.caosdb.server.permissions;
 
 import org.apache.shiro.authz.permission.WildcardPermission;
 
 public class Permission extends WildcardPermission {
 
-  private static final long serialVersionUID = 1L;
+  private static final long serialVersionUID = -7471830472441416012L;
 
   public static final org.apache.shiro.authz.Permission EDIT_PRIORITY_ACL =
       new Permission(
diff --git a/src/main/java/caosdb/server/permissions/PermissionRule.java b/src/main/java/org/caosdb/server/permissions/PermissionRule.java
similarity index 98%
rename from src/main/java/caosdb/server/permissions/PermissionRule.java
rename to src/main/java/org/caosdb/server/permissions/PermissionRule.java
index bcbd3a27abb6781613f2afef450b2ce2eed24feb..b6ee915156771e1164f3a0ee221d3e14ab964833 100644
--- a/src/main/java/caosdb/server/permissions/PermissionRule.java
+++ b/src/main/java/org/caosdb/server/permissions/PermissionRule.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.permissions;
+package org.caosdb.server.permissions;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/src/main/java/caosdb/server/permissions/ResponsibleAgent.java b/src/main/java/org/caosdb/server/permissions/ResponsibleAgent.java
similarity index 96%
rename from src/main/java/caosdb/server/permissions/ResponsibleAgent.java
rename to src/main/java/org/caosdb/server/permissions/ResponsibleAgent.java
index b29675ecd16f6872e2aa03ba5e70c8e5699cd613..3f8fd3bbbe800b1ce43d240da53344512feb5e01 100644
--- a/src/main/java/caosdb/server/permissions/ResponsibleAgent.java
+++ b/src/main/java/org/caosdb/server/permissions/ResponsibleAgent.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.permissions;
+package org.caosdb.server.permissions;
 
 import java.util.HashMap;
 import org.jdom2.Element;
diff --git a/src/main/java/caosdb/server/permissions/Role.java b/src/main/java/org/caosdb/server/permissions/Role.java
similarity index 98%
rename from src/main/java/caosdb/server/permissions/Role.java
rename to src/main/java/org/caosdb/server/permissions/Role.java
index 87b5d2474c4d2d3f13fd2787aaf5b11a1245a39c..54afefc664c330dfc4465285347a1463d9df0d5e 100644
--- a/src/main/java/caosdb/server/permissions/Role.java
+++ b/src/main/java/org/caosdb/server/permissions/Role.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.permissions;
+package org.caosdb.server.permissions;
 
 import java.util.HashMap;
 import org.jdom2.Attribute;
diff --git a/src/main/java/caosdb/server/query/Backreference.java b/src/main/java/org/caosdb/server/query/Backreference.java
similarity index 96%
rename from src/main/java/caosdb/server/query/Backreference.java
rename to src/main/java/org/caosdb/server/query/Backreference.java
index c39ce43923372811caf8607550a9852d1a518c63..5f8105c823a231a14853e1db370649c7a7189649 100644
--- a/src/main/java/caosdb/server/query/Backreference.java
+++ b/src/main/java/org/caosdb/server/query/Backreference.java
@@ -20,15 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
-import static caosdb.server.database.DatabaseUtils.bytes2UTF8;
 import static java.sql.Types.VARCHAR;
+import static org.caosdb.server.database.DatabaseUtils.bytes2UTF8;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.query.Query.Pattern;
-import caosdb.server.query.Query.QueryException;
 import java.sql.CallableStatement;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
@@ -38,6 +34,10 @@ import java.sql.Types;
 import java.util.HashMap;
 import java.util.Map.Entry;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.query.Query.Pattern;
+import org.caosdb.server.query.Query.QueryException;
 import org.jdom2.Element;
 
 public class Backreference implements EntityFilterInterface, QueryInterface {
diff --git a/src/main/java/caosdb/server/query/CQLLexer.g4 b/src/main/java/org/caosdb/server/query/CQLLexer.g4
similarity index 100%
rename from src/main/java/caosdb/server/query/CQLLexer.g4
rename to src/main/java/org/caosdb/server/query/CQLLexer.g4
diff --git a/src/main/java/caosdb/server/query/CQLParser.g4 b/src/main/java/org/caosdb/server/query/CQLParser.g4
similarity index 100%
rename from src/main/java/caosdb/server/query/CQLParser.g4
rename to src/main/java/org/caosdb/server/query/CQLParser.g4
diff --git a/src/main/java/caosdb/server/query/CQLParsingErrorListener.java b/src/main/java/org/caosdb/server/query/CQLParsingErrorListener.java
similarity index 99%
rename from src/main/java/caosdb/server/query/CQLParsingErrorListener.java
rename to src/main/java/org/caosdb/server/query/CQLParsingErrorListener.java
index 5dcec8eb2cd1772978aca87e3b630ee34d0e6812..c2b453e5836a18628904302f2157f0a41a190068 100644
--- a/src/main/java/caosdb/server/query/CQLParsingErrorListener.java
+++ b/src/main/java/org/caosdb/server/query/CQLParsingErrorListener.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
 import java.util.ArrayList;
 import java.util.BitSet;
diff --git a/src/main/java/caosdb/server/query/Conjunction.java b/src/main/java/org/caosdb/server/query/Conjunction.java
similarity index 95%
rename from src/main/java/caosdb/server/query/Conjunction.java
rename to src/main/java/org/caosdb/server/query/Conjunction.java
index 297f781bdc0de1ecf6de69ade12c25cba5efc8c9..a8fd9cd16296dfdf846bd81d2c25676537cd590c 100644
--- a/src/main/java/caosdb/server/query/Conjunction.java
+++ b/src/main/java/org/caosdb/server/query/Conjunction.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
-import static caosdb.server.database.DatabaseUtils.bytes2UTF8;
+import static org.caosdb.server.database.DatabaseUtils.bytes2UTF8;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.query.Query.QueryException;
 import java.sql.CallableStatement;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.query.Query.QueryException;
 import org.jdom2.Element;
 
 public class Conjunction extends EntityFilterContainer implements QueryInterface {
diff --git a/src/main/java/caosdb/server/query/Disjunction.java b/src/main/java/org/caosdb/server/query/Disjunction.java
similarity index 95%
rename from src/main/java/caosdb/server/query/Disjunction.java
rename to src/main/java/org/caosdb/server/query/Disjunction.java
index b9515c6b2ea263090ca224c8de3a625167666090..3bd2f32fdd3bfb64ad2a07c527b91136e965c22b 100644
--- a/src/main/java/caosdb/server/query/Disjunction.java
+++ b/src/main/java/org/caosdb/server/query/Disjunction.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
-import static caosdb.server.database.DatabaseUtils.bytes2UTF8;
+import static org.caosdb.server.database.DatabaseUtils.bytes2UTF8;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.query.Query.QueryException;
 import java.sql.CallableStatement;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.query.Query.QueryException;
 import org.jdom2.Element;
 
 public class Disjunction extends EntityFilterContainer implements QueryInterface {
diff --git a/src/main/java/caosdb/server/query/EntityFilterContainer.java b/src/main/java/org/caosdb/server/query/EntityFilterContainer.java
similarity index 97%
rename from src/main/java/caosdb/server/query/EntityFilterContainer.java
rename to src/main/java/org/caosdb/server/query/EntityFilterContainer.java
index 712ed7182cf681c6d4f0a465e94e0c6161b290e6..c2409f90ecc43cfb318a17cc8a9f3ba6df60beb0 100644
--- a/src/main/java/caosdb/server/query/EntityFilterContainer.java
+++ b/src/main/java/org/caosdb/server/query/EntityFilterContainer.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
 import java.util.LinkedList;
 
diff --git a/src/main/java/caosdb/server/query/EntityFilterInterface.java b/src/main/java/org/caosdb/server/query/EntityFilterInterface.java
similarity index 92%
rename from src/main/java/caosdb/server/query/EntityFilterInterface.java
rename to src/main/java/org/caosdb/server/query/EntityFilterInterface.java
index 813f3ef00e780128fcc457dd34895441b1700cb5..3bf113edbfa6aeb3bbe1c4ead7c2bbca0aca0d03 100644
--- a/src/main/java/caosdb/server/query/EntityFilterInterface.java
+++ b/src/main/java/org/caosdb/server/query/EntityFilterInterface.java
@@ -20,9 +20,9 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
-import caosdb.server.query.Query.QueryException;
+import org.caosdb.server.query.Query.QueryException;
 import org.jdom2.Element;
 
 public interface EntityFilterInterface {
diff --git a/src/main/java/caosdb/server/query/IDFilter.java b/src/main/java/org/caosdb/server/query/IDFilter.java
similarity index 97%
rename from src/main/java/caosdb/server/query/IDFilter.java
rename to src/main/java/org/caosdb/server/query/IDFilter.java
index 556ba1c0ef64a73518cfea957c5ab5d1401a47eb..26054bb16f0eb39a581a4fa0da6c62a67c6fc385 100644
--- a/src/main/java/caosdb/server/query/IDFilter.java
+++ b/src/main/java/org/caosdb/server/query/IDFilter.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
 import static java.sql.Types.CHAR;
 import static java.sql.Types.INTEGER;
 import static java.sql.Types.VARCHAR;
 
-import caosdb.server.query.Query.QueryException;
 import java.sql.CallableStatement;
 import java.sql.Connection;
 import java.sql.SQLException;
+import org.caosdb.server.query.Query.QueryException;
 import org.jdom2.Element;
 
 public class IDFilter implements EntityFilterInterface {
diff --git a/src/main/java/caosdb/server/query/Negation.java b/src/main/java/org/caosdb/server/query/Negation.java
similarity index 96%
rename from src/main/java/caosdb/server/query/Negation.java
rename to src/main/java/org/caosdb/server/query/Negation.java
index c54d4b8f931c4ba21622db7b35bdd00c33d86334..d4243580bf52511d05699c7c80e69015ea2a0dac 100644
--- a/src/main/java/caosdb/server/query/Negation.java
+++ b/src/main/java/org/caosdb/server/query/Negation.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
-import static caosdb.server.database.DatabaseUtils.bytes2UTF8;
+import static org.caosdb.server.database.DatabaseUtils.bytes2UTF8;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.query.Query.QueryException;
 import java.sql.CallableStatement;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.query.Query.QueryException;
 import org.jdom2.Element;
 
 public class Negation implements EntityFilterInterface, QueryInterface {
diff --git a/src/main/java/caosdb/server/query/POV.java b/src/main/java/org/caosdb/server/query/POV.java
similarity index 97%
rename from src/main/java/caosdb/server/query/POV.java
rename to src/main/java/org/caosdb/server/query/POV.java
index 924c1293bfea78ef15f1b6ab10e5d9d91a2a98cc..03b603d0df70d1159c1d78f1626e23faab40e033 100644
--- a/src/main/java/caosdb/server/query/POV.java
+++ b/src/main/java/org/caosdb/server/query/POV.java
@@ -20,20 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
-import static caosdb.server.database.DatabaseUtils.bytes2UTF8;
 import static java.sql.Types.DOUBLE;
 import static java.sql.Types.INTEGER;
 import static java.sql.Types.VARCHAR;
+import static org.caosdb.server.database.DatabaseUtils.bytes2UTF8;
 
-import caosdb.datetime.DateTimeFactory2;
-import caosdb.datetime.DateTimeInterface;
-import caosdb.datetime.Interval;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.query.Query.QueryException;
-import caosdb.unit.CaosDBSystemOfUnits;
-import caosdb.unit.Unit;
 import de.timmfitschen.easyunits.parser.ParserException;
 import java.sql.CallableStatement;
 import java.sql.Connection;
@@ -46,6 +39,13 @@ import java.util.Map.Entry;
 import java.util.Stack;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import org.caosdb.datetime.DateTimeFactory2;
+import org.caosdb.datetime.DateTimeInterface;
+import org.caosdb.datetime.Interval;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.query.Query.QueryException;
+import org.caosdb.unit.CaosDBSystemOfUnits;
+import org.caosdb.unit.Unit;
 import org.jdom2.Element;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/src/main/java/caosdb/server/query/Query.java b/src/main/java/org/caosdb/server/query/Query.java
similarity index 93%
rename from src/main/java/caosdb/server/query/Query.java
rename to src/main/java/org/caosdb/server/query/Query.java
index a2d6e48767f5835bd9bf40ce65717bf9e8363f98..c3873cf3b4ba2322373dde13f4dfd72e6a94c7e4 100644
--- a/src/main/java/caosdb/server/query/Query.java
+++ b/src/main/java/org/caosdb/server/query/Query.java
@@ -20,31 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.query;
-
-import static caosdb.server.database.DatabaseUtils.bytes2UTF8;
-
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.database.backend.implementation.MySQL.MySQLHelper;
-import caosdb.server.database.backend.transaction.RetrieveSparseEntity;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.misc.DBHelper;
-import caosdb.server.database.misc.TransactionBenchmark;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.Message.MessageType;
-import caosdb.server.entity.RetrieveEntity;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.entity.xml.ToElementable;
-import caosdb.server.permissions.EntityACL;
-import caosdb.server.permissions.EntityPermission;
-import caosdb.server.query.CQLParser.CqContext;
-import caosdb.server.query.CQLParsingErrorListener.ParsingError;
-import caosdb.server.transaction.TransactionInterface;
+package org.caosdb.server.query;
+
+import static org.caosdb.server.database.DatabaseUtils.bytes2UTF8;
+
 import java.sql.CallableStatement;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
@@ -62,6 +41,27 @@ import java.util.Map.Entry;
 import org.antlr.v4.runtime.CharStreams;
 import org.antlr.v4.runtime.CommonTokenStream;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.database.backend.implementation.MySQL.MySQLHelper;
+import org.caosdb.server.database.backend.transaction.RetrieveSparseEntity;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.misc.DBHelper;
+import org.caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.Message.MessageType;
+import org.caosdb.server.entity.RetrieveEntity;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.entity.xml.ToElementable;
+import org.caosdb.server.permissions.EntityACL;
+import org.caosdb.server.permissions.EntityPermission;
+import org.caosdb.server.query.CQLParser.CqContext;
+import org.caosdb.server.query.CQLParsingErrorListener.ParsingError;
+import org.caosdb.server.transaction.TransactionInterface;
 import org.jdom2.Element;
 
 public class Query implements QueryInterface, ToElementable, TransactionInterface {
@@ -153,12 +153,12 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac
     }
 
     /** */
-    private static final long serialVersionUID = 8984839198803429114L;
+    private static final long serialVersionUID = -7142620266283649346L;
   }
 
   public static class QueryException extends RuntimeException {
 
-    private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = -7142620266283649346L;
 
     public QueryException(final String string) {
       super(string);
diff --git a/src/main/java/caosdb/server/query/QueryInterface.java b/src/main/java/org/caosdb/server/query/QueryInterface.java
similarity index 94%
rename from src/main/java/caosdb/server/query/QueryInterface.java
rename to src/main/java/org/caosdb/server/query/QueryInterface.java
index d42243ba2de45e7d369b733f6d1fbe26bce45fbd..32cc1c7d8d98b56f80b159fc3f0004a491773563 100644
--- a/src/main/java/caosdb/server/query/QueryInterface.java
+++ b/src/main/java/org/caosdb/server/query/QueryInterface.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
-import caosdb.server.database.access.Access;
 import java.sql.Connection;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.database.access.Access;
 
 public interface QueryInterface {
 
diff --git a/src/main/java/caosdb/server/query/RoleFilter.java b/src/main/java/org/caosdb/server/query/RoleFilter.java
similarity index 97%
rename from src/main/java/caosdb/server/query/RoleFilter.java
rename to src/main/java/org/caosdb/server/query/RoleFilter.java
index 97f73114a4bba08829046c81d77f964aee3ecaa9..9055dccb358dd94ec17dee8b26bac97d2170b016 100644
--- a/src/main/java/caosdb/server/query/RoleFilter.java
+++ b/src/main/java/org/caosdb/server/query/RoleFilter.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
-import caosdb.server.query.Query.QueryException;
-import caosdb.server.query.Query.Role;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
+import org.caosdb.server.query.Query.QueryException;
+import org.caosdb.server.query.Query.Role;
 import org.jdom2.Element;
 
 public class RoleFilter implements EntityFilterInterface {
diff --git a/src/main/java/caosdb/server/query/StoredAt.java b/src/main/java/org/caosdb/server/query/StoredAt.java
similarity index 98%
rename from src/main/java/caosdb/server/query/StoredAt.java
rename to src/main/java/org/caosdb/server/query/StoredAt.java
index b16bb83f2f95c4da1f86292a7d0f17e73f8150d4..84a12d2c6b5b7ca3c3b0644eef4ea72a200cc328 100644
--- a/src/main/java/caosdb/server/query/StoredAt.java
+++ b/src/main/java/org/caosdb/server/query/StoredAt.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
 import static java.sql.Types.VARCHAR;
 
-import caosdb.server.query.Query.QueryException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.sql.CallableStatement;
 import java.sql.SQLException;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import org.caosdb.server.query.Query.QueryException;
 import org.jdom2.Element;
 
 public class StoredAt implements EntityFilterInterface {
diff --git a/src/main/java/caosdb/server/query/SubProperty.java b/src/main/java/org/caosdb/server/query/SubProperty.java
similarity index 95%
rename from src/main/java/caosdb/server/query/SubProperty.java
rename to src/main/java/org/caosdb/server/query/SubProperty.java
index 12629640ec4e7780c1b1d5933e7d6e1711f635f7..f8c22367c70f623903a3ee2f14a0af3cbbefd128 100644
--- a/src/main/java/caosdb/server/query/SubProperty.java
+++ b/src/main/java/org/caosdb/server/query/SubProperty.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
-import static caosdb.server.database.DatabaseUtils.bytes2UTF8;
 import static java.sql.Types.VARCHAR;
+import static org.caosdb.server.database.DatabaseUtils.bytes2UTF8;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.query.Query.QueryException;
 import java.sql.CallableStatement;
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.query.Query.QueryException;
 import org.jdom2.Element;
 
 public class SubProperty implements QueryInterface, EntityFilterInterface {
diff --git a/src/main/java/caosdb/server/query/TransactionFilter.java b/src/main/java/org/caosdb/server/query/TransactionFilter.java
similarity index 95%
rename from src/main/java/caosdb/server/query/TransactionFilter.java
rename to src/main/java/org/caosdb/server/query/TransactionFilter.java
index 3f4af80ee8eb2f484f23d1ace2f8f1a24e7909d6..55176594f5d17fdb726b82f37e5d3eb83944e611 100644
--- a/src/main/java/caosdb/server/query/TransactionFilter.java
+++ b/src/main/java/org/caosdb/server/query/TransactionFilter.java
@@ -20,20 +20,20 @@
  *
  * ** end header
  */
-package caosdb.server.query;
-
-import caosdb.datetime.Date;
-import caosdb.datetime.DateTimeFactory2;
-import caosdb.datetime.Interval;
-import caosdb.datetime.SemiCompleteDateTime;
-import caosdb.datetime.UTCDateTime;
-import caosdb.server.accessControl.Principal;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.query.Query.QueryException;
+package org.caosdb.server.query;
+
 import java.sql.CallableStatement;
 import java.sql.Connection;
 import java.sql.SQLException;
 import java.sql.Types;
+import org.caosdb.datetime.Date;
+import org.caosdb.datetime.DateTimeFactory2;
+import org.caosdb.datetime.Interval;
+import org.caosdb.datetime.SemiCompleteDateTime;
+import org.caosdb.datetime.UTCDateTime;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.accessControl.UserSources;
+import org.caosdb.server.query.Query.QueryException;
 import org.jdom2.Element;
 
 public class TransactionFilter implements EntityFilterInterface {
diff --git a/src/main/java/caosdb/server/query/Utils.java b/src/main/java/org/caosdb/server/query/Utils.java
similarity index 98%
rename from src/main/java/caosdb/server/query/Utils.java
rename to src/main/java/org/caosdb/server/query/Utils.java
index 5c1c74345f989958053ca069dd4d206a3429e5d2..661cee12585d8f4b07ca3a9fea364943aa1d9c6b 100644
--- a/src/main/java/caosdb/server/query/Utils.java
+++ b/src/main/java/org/caosdb/server/query/Utils.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
 import java.io.PrintStream;
 import java.sql.Connection;
diff --git a/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java b/src/main/java/org/caosdb/server/resource/AbstractCaosDBServerResource.java
similarity index 96%
rename from src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java
rename to src/main/java/org/caosdb/server/resource/AbstractCaosDBServerResource.java
index 97488a6ba2a7984d66bb94332b4d7df0f9478cfb..c7ecd4deb76117474adc188c3f8a7d0f6064a3b8 100644
--- a/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java
+++ b/src/main/java/org/caosdb/server/resource/AbstractCaosDBServerResource.java
@@ -22,17 +22,10 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
 import static java.net.URLDecoder.decode;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.accessControl.AuthenticationUtils;
-import caosdb.server.accessControl.Principal;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.entity.Message;
-import caosdb.server.utils.ServerMessages;
-import caosdb.server.utils.WebinterfaceUtils;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
@@ -48,6 +41,13 @@ import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authc.AuthenticationException;
 import org.apache.shiro.authz.AuthorizationException;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.accessControl.AuthenticationUtils;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.utils.ServerMessages;
+import org.caosdb.server.utils.WebinterfaceUtils;
 import org.jdom2.Document;
 import org.jdom2.Element;
 import org.jdom2.JDOMException;
@@ -85,7 +85,7 @@ public abstract class AbstractCaosDBServerResource extends ServerResource {
   }
 
   public static class xmlNotWellFormedException extends Exception {
-    private static final long serialVersionUID = -6836378704013776849L;
+    private static final long serialVersionUID = 1716868119917270990L;
   }
 
   /**
diff --git a/src/main/java/caosdb/server/resource/AuthenticationResource.java b/src/main/java/org/caosdb/server/resource/AuthenticationResource.java
similarity index 90%
rename from src/main/java/caosdb/server/resource/AuthenticationResource.java
rename to src/main/java/org/caosdb/server/resource/AuthenticationResource.java
index d3b49580cf1a86347398ef7d36f6021f710e7da3..ed60d7906b1cda003ed2a84f0e22200049d96c25 100644
--- a/src/main/java/caosdb/server/resource/AuthenticationResource.java
+++ b/src/main/java/org/caosdb/server/resource/AuthenticationResource.java
@@ -20,16 +20,8 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
-
-import caosdb.server.CaosDBException;
-import caosdb.server.CaosDBServer;
-import caosdb.server.accessControl.AuthenticationUtils;
-import caosdb.server.accessControl.RealmUsernamePasswordToken;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.entity.xml.ToElementable;
-import caosdb.server.utils.ServerMessages;
+package org.caosdb.server.resource;
+
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
@@ -39,6 +31,14 @@ import org.apache.shiro.authc.AccountException;
 import org.apache.shiro.authc.AuthenticationException;
 import org.apache.shiro.authc.CredentialsException;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.accessControl.AuthenticationUtils;
+import org.caosdb.server.accessControl.RealmUsernamePasswordToken;
+import org.caosdb.server.accessControl.UserSources;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.entity.xml.ToElementable;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Document;
 import org.jdom2.Element;
 import org.jdom2.JDOMException;
diff --git a/src/main/java/caosdb/server/resource/DefaultResource.java b/src/main/java/org/caosdb/server/resource/DefaultResource.java
similarity index 91%
rename from src/main/java/caosdb/server/resource/DefaultResource.java
rename to src/main/java/org/caosdb/server/resource/DefaultResource.java
index e26171f04fa24cea607288c2ee37ba713d47234f..488cd667c8832e4b90277e07144c65cbb7e4036d 100644
--- a/src/main/java/caosdb/server/resource/DefaultResource.java
+++ b/src/main/java/org/caosdb/server/resource/DefaultResource.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 import org.jdom2.Document;
 import org.jdom2.Element;
 import org.restlet.representation.Representation;
diff --git a/src/main/java/caosdb/server/resource/EntityOwnerResource.java b/src/main/java/org/caosdb/server/resource/EntityOwnerResource.java
similarity index 79%
rename from src/main/java/caosdb/server/resource/EntityOwnerResource.java
rename to src/main/java/org/caosdb/server/resource/EntityOwnerResource.java
index 5841eeb541be111720379008c5144ef82c6b9a01..f20a4ab042bd996ef7e7d004e9246935cf034b64 100644
--- a/src/main/java/caosdb/server/resource/EntityOwnerResource.java
+++ b/src/main/java/org/caosdb/server/resource/EntityOwnerResource.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
-import caosdb.server.entity.container.RetrieveContainer;
-import caosdb.server.resource.transaction.EntityResource;
-import caosdb.server.resource.transaction.handlers.RequestHandler;
-import caosdb.server.resource.transaction.handlers.RetriveOwnerRequestHandler;
+import org.caosdb.server.entity.container.RetrieveContainer;
+import org.caosdb.server.resource.transaction.EntityResource;
+import org.caosdb.server.resource.transaction.handlers.RequestHandler;
+import org.caosdb.server.resource.transaction.handlers.RetriveOwnerRequestHandler;
 
 public class EntityOwnerResource extends EntityResource {
 
diff --git a/src/main/java/caosdb/server/resource/EntityPermissionsResource.java b/src/main/java/org/caosdb/server/resource/EntityPermissionsResource.java
similarity index 78%
rename from src/main/java/caosdb/server/resource/EntityPermissionsResource.java
rename to src/main/java/org/caosdb/server/resource/EntityPermissionsResource.java
index b29d6c5eab1a21e8e86a56fbc3c806c97c426769..ffce6fe18378ec2586276cd69124cfaeaf8f29fc 100644
--- a/src/main/java/caosdb/server/resource/EntityPermissionsResource.java
+++ b/src/main/java/org/caosdb/server/resource/EntityPermissionsResource.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
-import caosdb.server.entity.container.RetrieveContainer;
-import caosdb.server.resource.transaction.EntityResource;
-import caosdb.server.resource.transaction.handlers.RequestHandler;
-import caosdb.server.resource.transaction.handlers.RetrieveGlobalEntityPermissionsHandler;
+import org.caosdb.server.entity.container.RetrieveContainer;
+import org.caosdb.server.resource.transaction.EntityResource;
+import org.caosdb.server.resource.transaction.handlers.RequestHandler;
+import org.caosdb.server.resource.transaction.handlers.RetrieveGlobalEntityPermissionsHandler;
 
 public class EntityPermissionsResource extends EntityResource {
 
diff --git a/src/main/java/caosdb/server/resource/FileSystemResource.java b/src/main/java/org/caosdb/server/resource/FileSystemResource.java
similarity index 89%
rename from src/main/java/caosdb/server/resource/FileSystemResource.java
rename to src/main/java/org/caosdb/server/resource/FileSystemResource.java
index ef352e19eb178c5cefbdbd70d2e48b3231ac7bd7..f09f97eab5fbb1ea49930bc8cae227cb2b5fba05 100644
--- a/src/main/java/caosdb/server/resource/FileSystemResource.java
+++ b/src/main/java/org/caosdb/server/resource/FileSystemResource.java
@@ -20,27 +20,27 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
-import static caosdb.server.FileSystem.getFromFileSystem;
 import static java.net.URLDecoder.decode;
+import static org.caosdb.server.FileSystem.getFromFileSystem;
 
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.database.exceptions.EntityDoesNotExistException;
-import caosdb.server.database.misc.TransactionBenchmark;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.Message.MessageType;
-import caosdb.server.entity.RetrieveEntity;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.permissions.EntityPermission;
-import caosdb.server.transaction.RetrieveSparseEntityByPath;
-import caosdb.server.transaction.Transaction;
-import caosdb.server.utils.FileUtils;
-import caosdb.server.utils.ServerMessages;
 import java.io.File;
 import java.io.IOException;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.database.exceptions.EntityDoesNotExistException;
+import org.caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.Message.MessageType;
+import org.caosdb.server.entity.RetrieveEntity;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.permissions.EntityPermission;
+import org.caosdb.server.transaction.RetrieveSparseEntityByPath;
+import org.caosdb.server.transaction.Transaction;
+import org.caosdb.server.utils.FileUtils;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Attribute;
 import org.jdom2.Document;
 import org.jdom2.Element;
diff --git a/src/main/java/caosdb/server/resource/InfoResource.java b/src/main/java/org/caosdb/server/resource/InfoResource.java
similarity index 88%
rename from src/main/java/caosdb/server/resource/InfoResource.java
rename to src/main/java/org/caosdb/server/resource/InfoResource.java
index 4beb9757cff83696a546eb174fbb0f21453029b7..25e8842b40df2d64c3dd628116ad958eb45bdb11 100644
--- a/src/main/java/caosdb/server/resource/InfoResource.java
+++ b/src/main/java/org/caosdb/server/resource/InfoResource.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
-import caosdb.datetime.UTCTimeZoneShift;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.database.misc.TransactionBenchmark;
-import caosdb.server.utils.FlagInfo;
-import caosdb.server.utils.Info;
 import java.util.TimeZone;
+import org.caosdb.datetime.UTCTimeZoneShift;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.utils.FlagInfo;
+import org.caosdb.server.utils.Info;
 import org.jdom2.Document;
 import org.jdom2.Element;
 import org.jdom2.JDOMException;
diff --git a/src/main/java/caosdb/server/resource/JdomRepresentation.java b/src/main/java/org/caosdb/server/resource/JdomRepresentation.java
similarity index 97%
rename from src/main/java/caosdb/server/resource/JdomRepresentation.java
rename to src/main/java/org/caosdb/server/resource/JdomRepresentation.java
index 04fbdac3fdd13f9e5c4f025cb2364386deac71f0..1af634b0ae784ccaf4aff4aac399771cb4774f60 100644
--- a/src/main/java/caosdb/server/resource/JdomRepresentation.java
+++ b/src/main/java/org/caosdb/server/resource/JdomRepresentation.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.Writer;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
 import org.jdom2.Document;
 import org.jdom2.ProcessingInstruction;
 import org.jdom2.output.Format;
diff --git a/src/main/java/caosdb/server/resource/LogoutResource.java b/src/main/java/org/caosdb/server/resource/LogoutResource.java
similarity index 89%
rename from src/main/java/caosdb/server/resource/LogoutResource.java
rename to src/main/java/org/caosdb/server/resource/LogoutResource.java
index 79489413d163d38c669f2cb7f04c5d437b2f11c5..1659f751a4710fbf99fc473b586cc3b180c8a62c 100644
--- a/src/main/java/caosdb/server/resource/LogoutResource.java
+++ b/src/main/java/org/caosdb/server/resource/LogoutResource.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 import org.restlet.representation.Representation;
 
 public class LogoutResource extends AuthenticationResource {
diff --git a/src/main/java/caosdb/server/resource/PermissionRulesResource.java b/src/main/java/org/caosdb/server/resource/PermissionRulesResource.java
similarity index 86%
rename from src/main/java/caosdb/server/resource/PermissionRulesResource.java
rename to src/main/java/org/caosdb/server/resource/PermissionRulesResource.java
index dba1797a03287c503e5898c7e9a7dde6c389630c..8d2aa1720aaefcdbaccee18c6a1626a912319b6a 100644
--- a/src/main/java/caosdb/server/resource/PermissionRulesResource.java
+++ b/src/main/java/org/caosdb/server/resource/PermissionRulesResource.java
@@ -20,20 +20,20 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.entity.Message;
-import caosdb.server.permissions.PermissionRule;
-import caosdb.server.transaction.RetrievePermissionRulesTransaction;
-import caosdb.server.transaction.UpdatePermissionRulesTransaction;
-import caosdb.server.utils.ServerMessages;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
 import java.util.HashSet;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.accessControl.ACMPermissions;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.permissions.PermissionRule;
+import org.caosdb.server.transaction.RetrievePermissionRulesTransaction;
+import org.caosdb.server.transaction.UpdatePermissionRulesTransaction;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Document;
 import org.jdom2.Element;
 import org.restlet.data.Status;
diff --git a/src/main/java/caosdb/server/resource/ReReadableRepresentation.java b/src/main/java/org/caosdb/server/resource/ReReadableRepresentation.java
similarity index 99%
rename from src/main/java/caosdb/server/resource/ReReadableRepresentation.java
rename to src/main/java/org/caosdb/server/resource/ReReadableRepresentation.java
index df5f7e55b0734877ad6f32dbc553d2a570685a34..3620eef2167073f479c9df63c415e01857db3ea1 100644
--- a/src/main/java/caosdb/server/resource/ReReadableRepresentation.java
+++ b/src/main/java/org/caosdb/server/resource/ReReadableRepresentation.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
 import com.google.common.base.Charsets;
 import java.io.IOException;
diff --git a/src/main/java/caosdb/server/resource/RolesResource.java b/src/main/java/org/caosdb/server/resource/RolesResource.java
similarity index 89%
rename from src/main/java/caosdb/server/resource/RolesResource.java
rename to src/main/java/org/caosdb/server/resource/RolesResource.java
index 0f1b01e3230cf3e73f1c20949f38e180bd8f7e3b..a89a731950d09a7edbce0a5f67a3e81287c07b2a 100644
--- a/src/main/java/caosdb/server/resource/RolesResource.java
+++ b/src/main/java/org/caosdb/server/resource/RolesResource.java
@@ -20,21 +20,21 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
-
-import caosdb.server.CaosDBException;
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.accessControl.Role;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.entity.Message;
-import caosdb.server.transaction.DeleteRoleTransaction;
-import caosdb.server.transaction.InsertRoleTransaction;
-import caosdb.server.transaction.RetrieveRoleTransaction;
-import caosdb.server.transaction.UpdateRoleTransaction;
-import caosdb.server.utils.ServerMessages;
+package org.caosdb.server.resource;
+
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.accessControl.ACMPermissions;
+import org.caosdb.server.accessControl.Role;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.transaction.DeleteRoleTransaction;
+import org.caosdb.server.transaction.InsertRoleTransaction;
+import org.caosdb.server.transaction.RetrieveRoleTransaction;
+import org.caosdb.server.transaction.UpdateRoleTransaction;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Document;
 import org.jdom2.Element;
 import org.jdom2.JDOMException;
diff --git a/src/main/java/caosdb/server/resource/ScriptingResource.java b/src/main/java/org/caosdb/server/resource/ScriptingResource.java
similarity index 92%
rename from src/main/java/caosdb/server/resource/ScriptingResource.java
rename to src/main/java/org/caosdb/server/resource/ScriptingResource.java
index cb652b862282e2cf804ae4cbffd3b6f9de9d109f..35885bb4376b26fc04977389f4dbf1cd7c40decd 100644
--- a/src/main/java/caosdb/server/resource/ScriptingResource.java
+++ b/src/main/java/org/caosdb/server/resource/ScriptingResource.java
@@ -22,20 +22,8 @@
  * ** end header
  */
 
-package caosdb.server.resource;
-
-import caosdb.server.FileSystem;
-import caosdb.server.accessControl.AuthenticationUtils;
-import caosdb.server.accessControl.OneTimeAuthenticationToken;
-import caosdb.server.accessControl.SessionToken;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.scripting.CallerSerializer;
-import caosdb.server.scripting.ScriptingPermissions;
-import caosdb.server.scripting.ServerSideScriptingCaller;
-import caosdb.server.utils.Serializer;
-import caosdb.server.utils.ServerMessages;
-import caosdb.server.utils.Utils;
+package org.caosdb.server.resource;
+
 import com.ibm.icu.text.Collator;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
@@ -50,6 +38,18 @@ import org.apache.commons.fileupload.FileItemStream;
 import org.apache.commons.fileupload.FileUploadException;
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.accessControl.AuthenticationUtils;
+import org.caosdb.server.accessControl.OneTimeAuthenticationToken;
+import org.caosdb.server.accessControl.SessionToken;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.scripting.CallerSerializer;
+import org.caosdb.server.scripting.ScriptingPermissions;
+import org.caosdb.server.scripting.ServerSideScriptingCaller;
+import org.caosdb.server.utils.Serializer;
+import org.caosdb.server.utils.ServerMessages;
+import org.caosdb.server.utils.Utils;
 import org.jdom2.Element;
 import org.restlet.data.CharacterSet;
 import org.restlet.data.Form;
diff --git a/src/main/java/caosdb/server/resource/ServerLogsResource.java b/src/main/java/org/caosdb/server/resource/ServerLogsResource.java
similarity index 91%
rename from src/main/java/caosdb/server/resource/ServerLogsResource.java
rename to src/main/java/org/caosdb/server/resource/ServerLogsResource.java
index b63de6e0f7fd0d95dd315db47fe6a6c88833f648..f304f10062209d62855a0bff21e0c8cad54e1962 100644
--- a/src/main/java/caosdb/server/resource/ServerLogsResource.java
+++ b/src/main/java/org/caosdb/server/resource/ServerLogsResource.java
@@ -20,11 +20,8 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.transaction.RetrieveLogRecordTransaction;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
@@ -32,6 +29,9 @@ import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.LogRecord;
 import java.util.logging.XMLFormatter;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.transaction.RetrieveLogRecordTransaction;
 import org.restlet.data.Form;
 import org.restlet.data.MediaType;
 import org.restlet.representation.Representation;
diff --git a/src/main/java/caosdb/server/resource/ServerPropertiesResource.java b/src/main/java/org/caosdb/server/resource/ServerPropertiesResource.java
similarity index 87%
rename from src/main/java/caosdb/server/resource/ServerPropertiesResource.java
rename to src/main/java/org/caosdb/server/resource/ServerPropertiesResource.java
index 347919d9c7d0f604734790f2ea09b5e2bac54042..5b4e83162ab2e2a701a8497eeb85225def94cff1 100644
--- a/src/main/java/caosdb/server/resource/ServerPropertiesResource.java
+++ b/src/main/java/org/caosdb/server/resource/ServerPropertiesResource.java
@@ -1,8 +1,8 @@
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerPropertiesSerializer;
-import caosdb.server.accessControl.ACMPermissions;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerPropertiesSerializer;
+import org.caosdb.server.accessControl.ACMPermissions;
 import org.restlet.data.Form;
 import org.restlet.data.Parameter;
 import org.restlet.data.Status;
diff --git a/src/main/java/caosdb/server/resource/SharedFileResource.java b/src/main/java/org/caosdb/server/resource/SharedFileResource.java
similarity index 92%
rename from src/main/java/caosdb/server/resource/SharedFileResource.java
rename to src/main/java/org/caosdb/server/resource/SharedFileResource.java
index 71cf089ddc4246196b8299502b1f15969183f372..971dff6901e771cce13dac87d1d0a1ac30dde83e 100644
--- a/src/main/java/caosdb/server/resource/SharedFileResource.java
+++ b/src/main/java/org/caosdb/server/resource/SharedFileResource.java
@@ -22,16 +22,16 @@
  * ** end header
  */
 
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
 import static java.net.URLDecoder.decode;
 
-import caosdb.server.FileSystem;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.utils.FileUtils;
-import caosdb.server.utils.ServerMessages;
 import java.io.File;
 import java.io.IOException;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.utils.FileUtils;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.JDOMException;
 import org.restlet.data.Disposition;
 import org.restlet.data.MediaType;
diff --git a/src/main/java/caosdb/server/resource/ThumbnailsResource.java b/src/main/java/org/caosdb/server/resource/ThumbnailsResource.java
similarity index 93%
rename from src/main/java/caosdb/server/resource/ThumbnailsResource.java
rename to src/main/java/org/caosdb/server/resource/ThumbnailsResource.java
index e08378c5a4e766f8f84d9d383207e461868bc422..c74251a1c31b2b3ec13bb72618b9c53d222e0cdf 100644
--- a/src/main/java/caosdb/server/resource/ThumbnailsResource.java
+++ b/src/main/java/org/caosdb/server/resource/ThumbnailsResource.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
-import static caosdb.server.FileSystem.getFromFileSystem;
+import static org.caosdb.server.FileSystem.getFromFileSystem;
 
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.utils.ServerMessages;
 import java.io.File;
 import java.io.IOException;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.JDOMException;
 import org.restlet.data.Disposition;
 import org.restlet.data.MediaType;
diff --git a/src/main/java/caosdb/server/resource/UserResource.java b/src/main/java/org/caosdb/server/resource/UserResource.java
similarity index 90%
rename from src/main/java/caosdb/server/resource/UserResource.java
rename to src/main/java/org/caosdb/server/resource/UserResource.java
index 7dc9111ee332421fd27d1c32632cc458cbf6c800..8ac0df1d8f8f018a07251e35a118ae944224dcc3 100644
--- a/src/main/java/caosdb/server/resource/UserResource.java
+++ b/src/main/java/org/caosdb/server/resource/UserResource.java
@@ -20,24 +20,24 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
-
-import caosdb.server.CaosDBException;
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.accessControl.UserStatus;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.entity.Message;
-import caosdb.server.transaction.DeleteUserTransaction;
-import caosdb.server.transaction.InsertUserTransaction;
-import caosdb.server.transaction.RetrieveUserTransaction;
-import caosdb.server.transaction.UpdateUserTransaction;
-import caosdb.server.utils.ServerMessages;
+package org.caosdb.server.resource;
+
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.accessControl.ACMPermissions;
+import org.caosdb.server.accessControl.UserSources;
+import org.caosdb.server.accessControl.UserStatus;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.transaction.DeleteUserTransaction;
+import org.caosdb.server.transaction.InsertUserTransaction;
+import org.caosdb.server.transaction.RetrieveUserTransaction;
+import org.caosdb.server.transaction.UpdateUserTransaction;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Document;
 import org.jdom2.Element;
 import org.jdom2.JDOMException;
diff --git a/src/main/java/caosdb/server/resource/UserRolesResource.java b/src/main/java/org/caosdb/server/resource/UserRolesResource.java
similarity index 88%
rename from src/main/java/caosdb/server/resource/UserRolesResource.java
rename to src/main/java/org/caosdb/server/resource/UserRolesResource.java
index 46d51ca4d60bec89b584cefc362e54ab37063503..4eb7f6143038bb6e4b0c3fda4646e2730acfea04 100644
--- a/src/main/java/caosdb/server/resource/UserRolesResource.java
+++ b/src/main/java/org/caosdb/server/resource/UserRolesResource.java
@@ -20,21 +20,21 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.entity.Message;
-import caosdb.server.transaction.RetrieveUserRolesTransaction;
-import caosdb.server.transaction.UpdateUserRolesTransaction;
-import caosdb.server.utils.ServerMessages;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
 import java.util.HashSet;
 import java.util.List;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.accessControl.ACMPermissions;
+import org.caosdb.server.accessControl.UserSources;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.transaction.RetrieveUserRolesTransaction;
+import org.caosdb.server.transaction.UpdateUserRolesTransaction;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Document;
 import org.jdom2.Element;
 import org.jdom2.JDOMException;
diff --git a/src/main/java/caosdb/server/resource/Webinterface.java b/src/main/java/org/caosdb/server/resource/Webinterface.java
similarity index 95%
rename from src/main/java/caosdb/server/resource/Webinterface.java
rename to src/main/java/org/caosdb/server/resource/Webinterface.java
index f05ae4e6b9a98aba1c925677e0fc8e90a74e57e6..bba1fb09c7f2c0a14b95b7314832b6ff174cef6b 100644
--- a/src/main/java/caosdb/server/resource/Webinterface.java
+++ b/src/main/java/org/caosdb/server/resource/Webinterface.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.utils.WebinterfaceUtils;
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.utils.WebinterfaceUtils;
 import org.restlet.data.CacheDirective;
 import org.restlet.data.Header;
 import org.restlet.data.MediaType;
diff --git a/src/main/java/caosdb/server/resource/WebinterfaceBuildNumber.java b/src/main/java/org/caosdb/server/resource/WebinterfaceBuildNumber.java
similarity index 96%
rename from src/main/java/caosdb/server/resource/WebinterfaceBuildNumber.java
rename to src/main/java/org/caosdb/server/resource/WebinterfaceBuildNumber.java
index bb0e47f40164a7480a547b74cda33c83d375fb76..0fe186a0426002071e0b6c6a5ebe0b3f234e9b2a 100644
--- a/src/main/java/caosdb/server/resource/WebinterfaceBuildNumber.java
+++ b/src/main/java/org/caosdb/server/resource/WebinterfaceBuildNumber.java
@@ -16,9 +16,9 @@
  *
  * <p>** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
-import caosdb.server.utils.WebinterfaceUtils;
+import org.caosdb.server.utils.WebinterfaceUtils;
 import org.restlet.data.Status;
 import org.restlet.resource.Get;
 import org.restlet.resource.ResourceException;
diff --git a/src/main/java/caosdb/server/resource/transaction/EntityNamesResource.java b/src/main/java/org/caosdb/server/resource/transaction/EntityNamesResource.java
similarity index 53%
rename from src/main/java/caosdb/server/resource/transaction/EntityNamesResource.java
rename to src/main/java/org/caosdb/server/resource/transaction/EntityNamesResource.java
index 2bfca90bf8e0c060caf7ca97b85ceaf7d0d35f5c..0b3f8b7aa4f4a7724b9b6646e7ecb72330293980 100644
--- a/src/main/java/caosdb/server/resource/transaction/EntityNamesResource.java
+++ b/src/main/java/org/caosdb/server/resource/transaction/EntityNamesResource.java
@@ -1,8 +1,8 @@
-package caosdb.server.resource.transaction;
+package org.caosdb.server.resource.transaction;
 
-import caosdb.server.entity.container.RetrieveContainer;
-import caosdb.server.resource.transaction.handlers.GetNamesRequestHandler;
-import caosdb.server.resource.transaction.handlers.RequestHandler;
+import org.caosdb.server.entity.container.RetrieveContainer;
+import org.caosdb.server.resource.transaction.handlers.GetNamesRequestHandler;
+import org.caosdb.server.resource.transaction.handlers.RequestHandler;
 
 public class EntityNamesResource extends EntityResource {
 
diff --git a/src/main/java/caosdb/server/resource/transaction/EntityResource.java b/src/main/java/org/caosdb/server/resource/transaction/EntityResource.java
similarity index 85%
rename from src/main/java/caosdb/server/resource/transaction/EntityResource.java
rename to src/main/java/org/caosdb/server/resource/transaction/EntityResource.java
index 70e7bdf73adbf5e950fe0a51e119a8dbbe2e054f..12659362e0a9a82e8cbb95e73e4d6ac6c2d27c6c 100644
--- a/src/main/java/caosdb/server/resource/transaction/EntityResource.java
+++ b/src/main/java/org/caosdb/server/resource/transaction/EntityResource.java
@@ -20,27 +20,27 @@
  *
  * ** end header
  */
-package caosdb.server.resource.transaction;
-
-import caosdb.server.CaosDBException;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.entity.container.DeleteContainer;
-import caosdb.server.entity.container.InsertContainer;
-import caosdb.server.entity.container.RetrieveContainer;
-import caosdb.server.entity.container.UpdateContainer;
-import caosdb.server.resource.AbstractCaosDBServerResource;
-import caosdb.server.resource.transaction.handlers.FileUploadHandler;
-import caosdb.server.resource.transaction.handlers.RequestHandler;
-import caosdb.server.resource.transaction.handlers.SimpleDeleteRequestHandler;
-import caosdb.server.resource.transaction.handlers.SimpleGetRequestHandler;
-import caosdb.server.resource.transaction.handlers.SimpleWriteHandler;
-import caosdb.server.transaction.Delete;
-import caosdb.server.transaction.Insert;
-import caosdb.server.transaction.Retrieve;
-import caosdb.server.transaction.Update;
+package org.caosdb.server.resource.transaction;
+
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.entity.container.DeleteContainer;
+import org.caosdb.server.entity.container.InsertContainer;
+import org.caosdb.server.entity.container.RetrieveContainer;
+import org.caosdb.server.entity.container.UpdateContainer;
+import org.caosdb.server.resource.AbstractCaosDBServerResource;
+import org.caosdb.server.resource.transaction.handlers.FileUploadHandler;
+import org.caosdb.server.resource.transaction.handlers.RequestHandler;
+import org.caosdb.server.resource.transaction.handlers.SimpleDeleteRequestHandler;
+import org.caosdb.server.resource.transaction.handlers.SimpleGetRequestHandler;
+import org.caosdb.server.resource.transaction.handlers.SimpleWriteHandler;
+import org.caosdb.server.transaction.Delete;
+import org.caosdb.server.transaction.Insert;
+import org.caosdb.server.transaction.Retrieve;
+import org.caosdb.server.transaction.Update;
 import org.jdom2.Document;
 import org.jdom2.Element;
 import org.jdom2.JDOMException;
diff --git a/src/main/java/caosdb/server/resource/transaction/handlers/FileUploadHandler.java b/src/main/java/org/caosdb/server/resource/transaction/handlers/FileUploadHandler.java
similarity index 90%
rename from src/main/java/caosdb/server/resource/transaction/handlers/FileUploadHandler.java
rename to src/main/java/org/caosdb/server/resource/transaction/handlers/FileUploadHandler.java
index 48003f1525f006960cf155591bc14d9d684c1888..ec5c5bc4d144af9ce99f7b27915a52420c331bb5 100644
--- a/src/main/java/caosdb/server/resource/transaction/handlers/FileUploadHandler.java
+++ b/src/main/java/org/caosdb/server/resource/transaction/handlers/FileUploadHandler.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.resource.transaction.handlers;
+package org.caosdb.server.resource.transaction.handlers;
 
-import caosdb.server.FileSystem;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.container.WritableContainer;
-import caosdb.server.resource.transaction.EntityResource;
-import caosdb.server.utils.ServerMessages;
 import java.io.IOException;
 import org.apache.commons.fileupload.FileItemIterator;
 import org.apache.commons.fileupload.FileItemStream;
 import org.apache.commons.fileupload.FileUploadException;
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.container.WritableContainer;
+import org.caosdb.server.resource.transaction.EntityResource;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Element;
 import org.restlet.data.MediaType;
 import org.restlet.ext.fileupload.RestletFileUpload;
diff --git a/src/main/java/caosdb/server/resource/transaction/handlers/GetNamesRequestHandler.java b/src/main/java/org/caosdb/server/resource/transaction/handlers/GetNamesRequestHandler.java
similarity index 64%
rename from src/main/java/caosdb/server/resource/transaction/handlers/GetNamesRequestHandler.java
rename to src/main/java/org/caosdb/server/resource/transaction/handlers/GetNamesRequestHandler.java
index f69c112880e833d0c981b903562889e377fe6f23..c327c6833d281c07148c59be689ddfac25b33f4d 100644
--- a/src/main/java/caosdb/server/resource/transaction/handlers/GetNamesRequestHandler.java
+++ b/src/main/java/org/caosdb/server/resource/transaction/handlers/GetNamesRequestHandler.java
@@ -1,7 +1,7 @@
-package caosdb.server.resource.transaction.handlers;
+package org.caosdb.server.resource.transaction.handlers;
 
-import caosdb.server.entity.container.RetrieveContainer;
-import caosdb.server.resource.transaction.EntityResource;
+import org.caosdb.server.entity.container.RetrieveContainer;
+import org.caosdb.server.resource.transaction.EntityResource;
 
 public class GetNamesRequestHandler extends RequestHandler<RetrieveContainer> {
 
diff --git a/src/main/java/caosdb/server/resource/transaction/handlers/RequestHandler.java b/src/main/java/org/caosdb/server/resource/transaction/handlers/RequestHandler.java
similarity index 85%
rename from src/main/java/caosdb/server/resource/transaction/handlers/RequestHandler.java
rename to src/main/java/org/caosdb/server/resource/transaction/handlers/RequestHandler.java
index e1390fe81782b353ccf2e401a9918747c6084ab3..fc49cc518db12e1f750716372f94b808dcb3874b 100644
--- a/src/main/java/caosdb/server/resource/transaction/handlers/RequestHandler.java
+++ b/src/main/java/org/caosdb/server/resource/transaction/handlers/RequestHandler.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.resource.transaction.handlers;
+package org.caosdb.server.resource.transaction.handlers;
 
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.resource.transaction.EntityResource;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.resource.transaction.EntityResource;
 
 public abstract class RequestHandler<T extends TransactionContainer> {
 
diff --git a/src/main/java/caosdb/server/resource/transaction/handlers/RetrieveGlobalEntityPermissionsHandler.java b/src/main/java/org/caosdb/server/resource/transaction/handlers/RetrieveGlobalEntityPermissionsHandler.java
similarity index 83%
rename from src/main/java/caosdb/server/resource/transaction/handlers/RetrieveGlobalEntityPermissionsHandler.java
rename to src/main/java/org/caosdb/server/resource/transaction/handlers/RetrieveGlobalEntityPermissionsHandler.java
index a1882857801659449516992b4a4cca34d643379c..6801e804a8bcb721e2c7170ad857126579cbfb46 100644
--- a/src/main/java/caosdb/server/resource/transaction/handlers/RetrieveGlobalEntityPermissionsHandler.java
+++ b/src/main/java/org/caosdb/server/resource/transaction/handlers/RetrieveGlobalEntityPermissionsHandler.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.resource.transaction.handlers;
+package org.caosdb.server.resource.transaction.handlers;
 
-import caosdb.server.entity.container.RetrieveContainer;
-import caosdb.server.permissions.EntityPermission;
-import caosdb.server.resource.transaction.EntityResource;
+import org.caosdb.server.entity.container.RetrieveContainer;
+import org.caosdb.server.permissions.EntityPermission;
+import org.caosdb.server.resource.transaction.EntityResource;
 
 public class RetrieveGlobalEntityPermissionsHandler extends SimpleGetRequestHandler {
 
diff --git a/src/main/java/caosdb/server/resource/transaction/handlers/RetriveOwnerRequestHandler.java b/src/main/java/org/caosdb/server/resource/transaction/handlers/RetriveOwnerRequestHandler.java
similarity index 84%
rename from src/main/java/caosdb/server/resource/transaction/handlers/RetriveOwnerRequestHandler.java
rename to src/main/java/org/caosdb/server/resource/transaction/handlers/RetriveOwnerRequestHandler.java
index d942389a359b2c24eafc6ec4a98b230cbe33f226..7b2d698cb4673ba7e4ed30fc81fc249e89632734 100644
--- a/src/main/java/caosdb/server/resource/transaction/handlers/RetriveOwnerRequestHandler.java
+++ b/src/main/java/org/caosdb/server/resource/transaction/handlers/RetriveOwnerRequestHandler.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.resource.transaction.handlers;
+package org.caosdb.server.resource.transaction.handlers;
 
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.container.RetrieveContainer;
-import caosdb.server.resource.transaction.EntityResource;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.container.RetrieveContainer;
+import org.caosdb.server.resource.transaction.EntityResource;
 
 public class RetriveOwnerRequestHandler extends SimpleGetRequestHandler {
 
diff --git a/src/main/java/caosdb/server/resource/transaction/handlers/SimpleDeleteRequestHandler.java b/src/main/java/org/caosdb/server/resource/transaction/handlers/SimpleDeleteRequestHandler.java
similarity index 91%
rename from src/main/java/caosdb/server/resource/transaction/handlers/SimpleDeleteRequestHandler.java
rename to src/main/java/org/caosdb/server/resource/transaction/handlers/SimpleDeleteRequestHandler.java
index 7fb416451bd8f053df5231eb1002db0c03544f99..34c1a3836290f4e90fde5a1ec10a2818b7b63fae 100644
--- a/src/main/java/caosdb/server/resource/transaction/handlers/SimpleDeleteRequestHandler.java
+++ b/src/main/java/org/caosdb/server/resource/transaction/handlers/SimpleDeleteRequestHandler.java
@@ -22,10 +22,10 @@
  *
  * ** end header
  */
-package caosdb.server.resource.transaction.handlers;
+package org.caosdb.server.resource.transaction.handlers;
 
-import caosdb.server.entity.container.DeleteContainer;
-import caosdb.server.resource.transaction.EntityResource;
+import org.caosdb.server.entity.container.DeleteContainer;
+import org.caosdb.server.resource.transaction.EntityResource;
 
 public class SimpleDeleteRequestHandler extends RequestHandler<DeleteContainer> {
 
diff --git a/src/main/java/caosdb/server/resource/transaction/handlers/SimpleGetRequestHandler.java b/src/main/java/org/caosdb/server/resource/transaction/handlers/SimpleGetRequestHandler.java
similarity index 89%
rename from src/main/java/caosdb/server/resource/transaction/handlers/SimpleGetRequestHandler.java
rename to src/main/java/org/caosdb/server/resource/transaction/handlers/SimpleGetRequestHandler.java
index 18c89d46966a3e22b1a9066b84dcf2d05efd122c..b80d9c219e2cbda1e012c9c73993b5ea427c6ccf 100644
--- a/src/main/java/caosdb/server/resource/transaction/handlers/SimpleGetRequestHandler.java
+++ b/src/main/java/org/caosdb/server/resource/transaction/handlers/SimpleGetRequestHandler.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.resource.transaction.handlers;
+package org.caosdb.server.resource.transaction.handlers;
 
-import caosdb.server.entity.container.RetrieveContainer;
-import caosdb.server.resource.transaction.EntityResource;
+import org.caosdb.server.entity.container.RetrieveContainer;
+import org.caosdb.server.resource.transaction.EntityResource;
 
 public class SimpleGetRequestHandler extends RequestHandler<RetrieveContainer> {
 
diff --git a/src/main/java/caosdb/server/resource/transaction/handlers/SimpleWriteHandler.java b/src/main/java/org/caosdb/server/resource/transaction/handlers/SimpleWriteHandler.java
similarity index 91%
rename from src/main/java/caosdb/server/resource/transaction/handlers/SimpleWriteHandler.java
rename to src/main/java/org/caosdb/server/resource/transaction/handlers/SimpleWriteHandler.java
index 71afcc91321f8d9853cd18ae3ca12022501416ff..feb784da2f1ab9dcc09942a108bcce6bd073e128 100644
--- a/src/main/java/caosdb/server/resource/transaction/handlers/SimpleWriteHandler.java
+++ b/src/main/java/org/caosdb/server/resource/transaction/handlers/SimpleWriteHandler.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.resource.transaction.handlers;
+package org.caosdb.server.resource.transaction.handlers;
 
-import caosdb.server.entity.container.WritableContainer;
-import caosdb.server.resource.transaction.EntityResource;
 import java.util.List;
+import org.caosdb.server.entity.container.WritableContainer;
+import org.caosdb.server.resource.transaction.EntityResource;
 import org.jdom2.Element;
 
 public class SimpleWriteHandler<T extends WritableContainer> extends RequestHandler<T> {
diff --git a/src/main/java/caosdb/server/scripting/CallerSerializer.java b/src/main/java/org/caosdb/server/scripting/CallerSerializer.java
similarity index 95%
rename from src/main/java/caosdb/server/scripting/CallerSerializer.java
rename to src/main/java/org/caosdb/server/scripting/CallerSerializer.java
index 3ffb941d9d4fe40a48b849c1de44b8349645d62f..b133ad5cf02afa0194beb175883b999e75810efe 100644
--- a/src/main/java/caosdb/server/scripting/CallerSerializer.java
+++ b/src/main/java/org/caosdb/server/scripting/CallerSerializer.java
@@ -21,11 +21,11 @@
  *
  * ** end header
  */
-package caosdb.server.scripting;
+package org.caosdb.server.scripting;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.utils.Serializer;
 import java.io.IOException;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.utils.Serializer;
 import org.jdom2.Element;
 
 /**
diff --git a/src/main/java/caosdb/server/scripting/ScriptingPermissions.java b/src/main/java/org/caosdb/server/scripting/ScriptingPermissions.java
similarity index 88%
rename from src/main/java/caosdb/server/scripting/ScriptingPermissions.java
rename to src/main/java/org/caosdb/server/scripting/ScriptingPermissions.java
index 9165f133c070c351e7a4ecbb2c510c06b71734a2..78ad99d77d06b681838e455ad391c62e7ce85ca6 100644
--- a/src/main/java/caosdb/server/scripting/ScriptingPermissions.java
+++ b/src/main/java/org/caosdb/server/scripting/ScriptingPermissions.java
@@ -1,4 +1,4 @@
-package caosdb.server.scripting;
+package org.caosdb.server.scripting;
 
 public class ScriptingPermissions {
 
diff --git a/src/main/java/caosdb/server/scripting/ScriptingUtils.java b/src/main/java/org/caosdb/server/scripting/ScriptingUtils.java
similarity index 90%
rename from src/main/java/caosdb/server/scripting/ScriptingUtils.java
rename to src/main/java/org/caosdb/server/scripting/ScriptingUtils.java
index cee65faf9b25d3b9bfe0b28cc508edf59626682c..5bb9498944f02c3cc2bd79429dab10868299200f 100644
--- a/src/main/java/caosdb/server/scripting/ScriptingUtils.java
+++ b/src/main/java/org/caosdb/server/scripting/ScriptingUtils.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.scripting;
+package org.caosdb.server.scripting;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.utils.ConfigurationException;
-import caosdb.server.utils.ServerMessages;
-import caosdb.server.utils.Utils;
 import java.io.File;
 import java.nio.file.Path;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.utils.ConfigurationException;
+import org.caosdb.server.utils.ServerMessages;
+import org.caosdb.server.utils.Utils;
 
 public class ScriptingUtils {
 
diff --git a/src/main/java/caosdb/server/scripting/ServerSideScriptingCaller.java b/src/main/java/org/caosdb/server/scripting/ServerSideScriptingCaller.java
similarity index 95%
rename from src/main/java/caosdb/server/scripting/ServerSideScriptingCaller.java
rename to src/main/java/org/caosdb/server/scripting/ServerSideScriptingCaller.java
index faeb96e02738395647abb75fca3eaafe18040ad3..2ec19a426fdd5a7f0cb6438b86f73a3dc93f55cd 100644
--- a/src/main/java/caosdb/server/scripting/ServerSideScriptingCaller.java
+++ b/src/main/java/org/caosdb/server/scripting/ServerSideScriptingCaller.java
@@ -22,15 +22,8 @@
  * ** end header
  */
 
-package caosdb.server.scripting;
-
-import caosdb.server.CaosDBException;
-import caosdb.server.CaosDBServer;
-import caosdb.server.FileSystem;
-import caosdb.server.ServerProperties;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.utils.ServerMessages;
+package org.caosdb.server.scripting;
+
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -41,6 +34,13 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.io.FileUtils;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.utils.ServerMessages;
 
 /**
  * Calls server-side scripting scripts.
@@ -170,7 +170,7 @@ public class ServerSideScriptingCaller {
       if (!link.getParentFile().exists()) {
         link.getParentFile().mkdirs();
       }
-      caosdb.server.utils.FileUtils.createSymlink(link, f.getFile());
+      org.caosdb.server.utils.FileUtils.createSymlink(link, f.getFile());
     }
   }
 
diff --git a/src/main/java/caosdb/server/scripting/TimeoutException.java b/src/main/java/org/caosdb/server/scripting/TimeoutException.java
similarity index 90%
rename from src/main/java/caosdb/server/scripting/TimeoutException.java
rename to src/main/java/org/caosdb/server/scripting/TimeoutException.java
index 655cb6a7782c29a894607db0373a4baa7b98611e..31b9b7e989989677653e5938cc6bd531878f5299 100644
--- a/src/main/java/caosdb/server/scripting/TimeoutException.java
+++ b/src/main/java/org/caosdb/server/scripting/TimeoutException.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.scripting;
+package org.caosdb.server.scripting;
 
 public class TimeoutException extends Exception {
 
@@ -28,5 +28,5 @@ public class TimeoutException extends Exception {
     super(string);
   }
 
-  private static final long serialVersionUID = 4871406372815136756L;
+  private static final long serialVersionUID = 3609100971776091914L;
 }
diff --git a/src/main/java/caosdb/server/scripting/TimeoutProcess.java b/src/main/java/org/caosdb/server/scripting/TimeoutProcess.java
similarity index 98%
rename from src/main/java/caosdb/server/scripting/TimeoutProcess.java
rename to src/main/java/org/caosdb/server/scripting/TimeoutProcess.java
index f41a2663c6aae169b0ce28d4e14ab43135653237..c867ca3b7f0190b1cd5d6b6be4f595be10d2891a 100644
--- a/src/main/java/caosdb/server/scripting/TimeoutProcess.java
+++ b/src/main/java/org/caosdb/server/scripting/TimeoutProcess.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.scripting;
+package org.caosdb.server.scripting;
 
 import java.io.InputStream;
 
diff --git a/src/main/java/caosdb/server/terminal/CaosDBTerminal.java b/src/main/java/org/caosdb/server/terminal/CaosDBTerminal.java
similarity index 98%
rename from src/main/java/caosdb/server/terminal/CaosDBTerminal.java
rename to src/main/java/org/caosdb/server/terminal/CaosDBTerminal.java
index c85495539d93d67af26b1b1ef4b62a35dd57ff48..96bd6315b7e32c03273a8b65bd489bfc061e0ef1 100644
--- a/src/main/java/caosdb/server/terminal/CaosDBTerminal.java
+++ b/src/main/java/org/caosdb/server/terminal/CaosDBTerminal.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.terminal;
+package org.caosdb.server.terminal;
 
 import com.googlecode.lanterna.TerminalFacade;
 import com.googlecode.lanterna.gui.GUIScreen;
diff --git a/src/main/java/caosdb/server/terminal/DatabaseAccessPanel.java b/src/main/java/org/caosdb/server/terminal/DatabaseAccessPanel.java
similarity index 94%
rename from src/main/java/caosdb/server/terminal/DatabaseAccessPanel.java
rename to src/main/java/org/caosdb/server/terminal/DatabaseAccessPanel.java
index 49a6e35de195d3d5ae78821db4cfe5e6f4aa283d..6877049605888682bd003f8382a931661e79602c 100644
--- a/src/main/java/caosdb/server/terminal/DatabaseAccessPanel.java
+++ b/src/main/java/org/caosdb/server/terminal/DatabaseAccessPanel.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.terminal;
+package org.caosdb.server.terminal;
 
-import caosdb.server.database.DatabaseMonitor;
-import caosdb.server.utils.Observable;
-import caosdb.server.utils.Observer;
 import com.googlecode.lanterna.gui.component.Label;
 import com.googlecode.lanterna.gui.component.Panel;
 import com.googlecode.lanterna.gui.component.Table;
+import org.caosdb.server.database.DatabaseMonitor;
+import org.caosdb.server.utils.Observable;
+import org.caosdb.server.utils.Observer;
 
 public final class DatabaseAccessPanel extends Panel implements Observer {
 
diff --git a/src/main/java/caosdb/server/terminal/EntitiesPanel.java b/src/main/java/org/caosdb/server/terminal/EntitiesPanel.java
similarity index 97%
rename from src/main/java/caosdb/server/terminal/EntitiesPanel.java
rename to src/main/java/org/caosdb/server/terminal/EntitiesPanel.java
index 10c5296eba2f75e360d0621d96392528f66f5475..b2f7489de66eeae9771e911b45e7d4546cb4f5b9 100644
--- a/src/main/java/caosdb/server/terminal/EntitiesPanel.java
+++ b/src/main/java/org/caosdb/server/terminal/EntitiesPanel.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.terminal;
+package org.caosdb.server.terminal;
 
-import caosdb.server.utils.Info;
 import com.googlecode.lanterna.gui.component.Label;
 import com.googlecode.lanterna.gui.component.Panel;
 import com.googlecode.lanterna.gui.component.Table;
+import org.caosdb.server.utils.Info;
 
 public final class EntitiesPanel extends Panel implements StatComponent {
 
diff --git a/src/main/java/caosdb/server/terminal/MainWindow.java b/src/main/java/org/caosdb/server/terminal/MainWindow.java
similarity index 98%
rename from src/main/java/caosdb/server/terminal/MainWindow.java
rename to src/main/java/org/caosdb/server/terminal/MainWindow.java
index 7bdfefc21f167d68a687acfcded550aabe0432cd..aa22f12b23bed00dfb46db8c7cd140fb05551eec 100644
--- a/src/main/java/caosdb/server/terminal/MainWindow.java
+++ b/src/main/java/org/caosdb/server/terminal/MainWindow.java
@@ -20,9 +20,8 @@
  *
  * ** end header
  */
-package caosdb.server.terminal;
+package org.caosdb.server.terminal;
 
-import caosdb.server.utils.Observer;
 import com.googlecode.lanterna.gui.Action;
 import com.googlecode.lanterna.gui.Border;
 import com.googlecode.lanterna.gui.Window;
@@ -35,6 +34,7 @@ import com.googlecode.lanterna.gui.dialog.MessageBox;
 import com.googlecode.lanterna.gui.layout.LinearLayout;
 import com.googlecode.lanterna.input.Key;
 import com.googlecode.lanterna.input.Key.Kind;
+import org.caosdb.server.utils.Observer;
 
 public class MainWindow extends Window {
 
diff --git a/src/main/java/caosdb/server/terminal/OutputStreamPanel.java b/src/main/java/org/caosdb/server/terminal/OutputStreamPanel.java
similarity index 99%
rename from src/main/java/caosdb/server/terminal/OutputStreamPanel.java
rename to src/main/java/org/caosdb/server/terminal/OutputStreamPanel.java
index 235a927cbbaca07e9433a88180269226d8ab88c7..50284f8a88e7d30596cc901be24108f3ea201d0a 100644
--- a/src/main/java/caosdb/server/terminal/OutputStreamPanel.java
+++ b/src/main/java/org/caosdb/server/terminal/OutputStreamPanel.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.terminal;
+package org.caosdb.server.terminal;
 
 import com.googlecode.lanterna.gui.Action;
 import com.googlecode.lanterna.gui.component.Button;
diff --git a/src/main/java/caosdb/server/terminal/StatComponent.java b/src/main/java/org/caosdb/server/terminal/StatComponent.java
similarity index 96%
rename from src/main/java/caosdb/server/terminal/StatComponent.java
rename to src/main/java/org/caosdb/server/terminal/StatComponent.java
index 24f9fa57e72f6422d4c342f02aa4d765fe0a7dc8..90a9ac1125425bd23415abf3e4186f00695b9b2f 100644
--- a/src/main/java/caosdb/server/terminal/StatComponent.java
+++ b/src/main/java/org/caosdb/server/terminal/StatComponent.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.terminal;
+package org.caosdb.server.terminal;
 
 import com.googlecode.lanterna.gui.Component;
 
diff --git a/src/main/java/caosdb/server/terminal/StatLabel.java b/src/main/java/org/caosdb/server/terminal/StatLabel.java
similarity index 93%
rename from src/main/java/caosdb/server/terminal/StatLabel.java
rename to src/main/java/org/caosdb/server/terminal/StatLabel.java
index 70568a924448379750d7a04d21b96ba0d0759c29..73a03ac31ed8874fc936807393701995130eaf7f 100644
--- a/src/main/java/caosdb/server/terminal/StatLabel.java
+++ b/src/main/java/org/caosdb/server/terminal/StatLabel.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.terminal;
+package org.caosdb.server.terminal;
 
-import caosdb.server.utils.Observable;
-import caosdb.server.utils.Observer;
 import com.googlecode.lanterna.gui.component.Label;
+import org.caosdb.server.utils.Observable;
+import org.caosdb.server.utils.Observer;
 
 public class StatLabel extends Label implements Observer, StatComponent {
 
diff --git a/src/main/java/caosdb/server/terminal/StatTable.java b/src/main/java/org/caosdb/server/terminal/StatTable.java
similarity index 97%
rename from src/main/java/caosdb/server/terminal/StatTable.java
rename to src/main/java/org/caosdb/server/terminal/StatTable.java
index 5d2ecb29204b63705e499b8ab71bea8d8c2b2255..e7234cdb8000a7c4dcc98463c3e9ca6cc8c9f19c 100644
--- a/src/main/java/caosdb/server/terminal/StatTable.java
+++ b/src/main/java/org/caosdb/server/terminal/StatTable.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.terminal;
+package org.caosdb.server.terminal;
 
 import com.googlecode.lanterna.gui.Component;
 import com.googlecode.lanterna.gui.component.Panel;
diff --git a/src/main/java/caosdb/server/terminal/StatsPanel.java b/src/main/java/org/caosdb/server/terminal/StatsPanel.java
similarity index 98%
rename from src/main/java/caosdb/server/terminal/StatsPanel.java
rename to src/main/java/org/caosdb/server/terminal/StatsPanel.java
index aa0f4a64926d5af851ed7b323d410d70a845957e..3b41ac6a9c4ae7366e85cffedbd71f83b30c6438 100644
--- a/src/main/java/caosdb/server/terminal/StatsPanel.java
+++ b/src/main/java/org/caosdb/server/terminal/StatsPanel.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.terminal;
+package org.caosdb.server.terminal;
 
 import com.googlecode.lanterna.gui.Action;
 import com.googlecode.lanterna.gui.Border;
diff --git a/src/main/java/caosdb/server/terminal/SystemErrPanel.java b/src/main/java/org/caosdb/server/terminal/SystemErrPanel.java
similarity index 97%
rename from src/main/java/caosdb/server/terminal/SystemErrPanel.java
rename to src/main/java/org/caosdb/server/terminal/SystemErrPanel.java
index 75e4291ac041d1c5ecc3b9d38fe024619750dbb8..9bf800fdb3c755cd8ea2b2a55119cf4e093fde09 100644
--- a/src/main/java/caosdb/server/terminal/SystemErrPanel.java
+++ b/src/main/java/org/caosdb/server/terminal/SystemErrPanel.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.terminal;
+package org.caosdb.server.terminal;
 
 import com.googlecode.lanterna.gui.component.Label;
 import java.io.IOException;
diff --git a/src/main/java/caosdb/server/terminal/SystemOutPanel.java b/src/main/java/org/caosdb/server/terminal/SystemOutPanel.java
similarity index 97%
rename from src/main/java/caosdb/server/terminal/SystemOutPanel.java
rename to src/main/java/org/caosdb/server/terminal/SystemOutPanel.java
index 48e16cc5f9365d57a7d9bc05a388a554bff388f3..b34cdaf97d8088a97ea66932d9abc96d6e1589be 100644
--- a/src/main/java/caosdb/server/terminal/SystemOutPanel.java
+++ b/src/main/java/org/caosdb/server/terminal/SystemOutPanel.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.terminal;
+package org.caosdb.server.terminal;
 
 import com.googlecode.lanterna.gui.component.Label;
 import java.io.IOException;
diff --git a/src/main/java/caosdb/server/transaction/AccessControlTransaction.java b/src/main/java/org/caosdb/server/transaction/AccessControlTransaction.java
similarity index 87%
rename from src/main/java/caosdb/server/transaction/AccessControlTransaction.java
rename to src/main/java/org/caosdb/server/transaction/AccessControlTransaction.java
index ac5e3030c5b39aa49f2eb332e050a7b58b157fb0..0a2d1363427d9e21504b421c88e7605af59634ac 100644
--- a/src/main/java/caosdb/server/transaction/AccessControlTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/AccessControlTransaction.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.database.DatabaseMonitor;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.misc.RollBackHandler;
-import caosdb.server.entity.Message;
+import org.caosdb.server.database.DatabaseMonitor;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.misc.RollBackHandler;
+import org.caosdb.server.entity.Message;
 
 public abstract class AccessControlTransaction implements TransactionInterface {
 
diff --git a/src/main/java/caosdb/server/transaction/ChecksumUpdater.java b/src/main/java/org/caosdb/server/transaction/ChecksumUpdater.java
similarity index 88%
rename from src/main/java/caosdb/server/transaction/ChecksumUpdater.java
rename to src/main/java/org/caosdb/server/transaction/ChecksumUpdater.java
index ec923bec7bf3368492f28bdafa3f11b5e7bd4ec9..b9d350719f13b5bd26e44f7d2b959a428adf5793 100644
--- a/src/main/java/caosdb/server/transaction/ChecksumUpdater.java
+++ b/src/main/java/org/caosdb/server/transaction/ChecksumUpdater.java
@@ -20,22 +20,22 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
-
-import caosdb.server.CaosDBException;
-import caosdb.server.database.DatabaseMonitor;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.transaction.GetUpdateableChecksums;
-import caosdb.server.database.backend.transaction.RetrieveSparseEntity;
-import caosdb.server.database.backend.transaction.SetFileChecksum;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.utils.FileUtils;
+package org.caosdb.server.transaction;
+
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.database.DatabaseMonitor;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.transaction.GetUpdateableChecksums;
+import org.caosdb.server.database.backend.transaction.RetrieveSparseEntity;
+import org.caosdb.server.database.backend.transaction.SetFileChecksum;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.utils.FileUtils;
 
 /**
  * Retrieves all file without a checksum, calculates one and stores it to the database (method
diff --git a/src/main/java/caosdb/server/transaction/Delete.java b/src/main/java/org/caosdb/server/transaction/Delete.java
similarity index 85%
rename from src/main/java/caosdb/server/transaction/Delete.java
rename to src/main/java/org/caosdb/server/transaction/Delete.java
index 1d3aacbc78043fef6982b2b7663dc5d033e50e50..44e68b3afe6225f286ab76329b699f0cf0f10670 100644
--- a/src/main/java/caosdb/server/transaction/Delete.java
+++ b/src/main/java/org/caosdb/server/transaction/Delete.java
@@ -20,19 +20,19 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.transaction.DeleteEntity;
-import caosdb.server.database.backend.transaction.RetrieveFullEntity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.container.DeleteContainer;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.server.permissions.EntityPermission;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
 import org.apache.shiro.authz.AuthorizationException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.transaction.DeleteEntity;
+import org.caosdb.server.database.backend.transaction.RetrieveFullEntity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.container.DeleteContainer;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.permissions.EntityPermission;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 public class Delete extends WriteTransaction<DeleteContainer> {
 
diff --git a/src/main/java/caosdb/server/transaction/DeleteRoleTransaction.java b/src/main/java/org/caosdb/server/transaction/DeleteRoleTransaction.java
similarity index 81%
rename from src/main/java/caosdb/server/transaction/DeleteRoleTransaction.java
rename to src/main/java/org/caosdb/server/transaction/DeleteRoleTransaction.java
index e1ba3bec80663cb3b30d2dbdc48d9f9024c8f2d7..ad9a9925f8bed2ef03a1bcf9cd6b8c79adca6345 100644
--- a/src/main/java/caosdb/server/transaction/DeleteRoleTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/DeleteRoleTransaction.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.database.backend.transaction.DeleteRole;
-import caosdb.server.database.backend.transaction.RetrieveRole;
-import caosdb.server.database.backend.transaction.SetPermissionRules;
-import caosdb.server.utils.ServerMessages;
 import org.apache.shiro.SecurityUtils;
+import org.caosdb.server.accessControl.ACMPermissions;
+import org.caosdb.server.database.backend.transaction.DeleteRole;
+import org.caosdb.server.database.backend.transaction.RetrieveRole;
+import org.caosdb.server.database.backend.transaction.SetPermissionRules;
+import org.caosdb.server.utils.ServerMessages;
 
 public class DeleteRoleTransaction extends AccessControlTransaction {
 
diff --git a/src/main/java/caosdb/server/transaction/DeleteUserTransaction.java b/src/main/java/org/caosdb/server/transaction/DeleteUserTransaction.java
similarity index 78%
rename from src/main/java/caosdb/server/transaction/DeleteUserTransaction.java
rename to src/main/java/org/caosdb/server/transaction/DeleteUserTransaction.java
index cdedce31b34153494ceb0be28e4c3a9da360bb6e..0f2f5b7fb676e436b131ca69678214c2e34b974c 100644
--- a/src/main/java/caosdb/server/transaction/DeleteUserTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/DeleteUserTransaction.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.accessControl.CredentialsValidator;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.database.backend.transaction.DeletePassword;
-import caosdb.server.database.backend.transaction.DeleteUser;
-import caosdb.server.database.backend.transaction.RetrievePasswordValidator;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.Message.MessageType;
-import caosdb.server.utils.ServerMessages;
 import org.apache.shiro.SecurityUtils;
+import org.caosdb.server.accessControl.ACMPermissions;
+import org.caosdb.server.accessControl.CredentialsValidator;
+import org.caosdb.server.accessControl.UserSources;
+import org.caosdb.server.database.backend.transaction.DeletePassword;
+import org.caosdb.server.database.backend.transaction.DeleteUser;
+import org.caosdb.server.database.backend.transaction.RetrievePasswordValidator;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.Message.MessageType;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Element;
 
 public class DeleteUserTransaction extends AccessControlTransaction {
diff --git a/src/main/java/caosdb/server/transaction/FileStorageConsistencyCheck.java b/src/main/java/org/caosdb/server/transaction/FileStorageConsistencyCheck.java
similarity index 89%
rename from src/main/java/caosdb/server/transaction/FileStorageConsistencyCheck.java
rename to src/main/java/org/caosdb/server/transaction/FileStorageConsistencyCheck.java
index 26cab30e898d2cd9f163ba3c9773b96c02110cbb..5d2a04b1e9f45360f47a93889f638eab23fbd512 100644
--- a/src/main/java/caosdb/server/transaction/FileStorageConsistencyCheck.java
+++ b/src/main/java/org/caosdb/server/transaction/FileStorageConsistencyCheck.java
@@ -20,27 +20,27 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
-
-import caosdb.datetime.UTCDateTime;
-import caosdb.server.database.DatabaseMonitor;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.transaction.FileConsistencyCheck;
-import caosdb.server.database.backend.transaction.GetFileIterator;
-import caosdb.server.database.backend.transaction.GetFileRecordByPath;
-import caosdb.server.database.backend.transaction.RetrieveAllUncheckedFiles;
-import caosdb.server.database.backend.transaction.SetFileCheckedTimestamp;
-import caosdb.server.database.exceptions.EntityDoesNotExistException;
-import caosdb.server.database.proto.SparseEntity;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.xml.ToElementable;
-import caosdb.server.utils.SHA512;
+package org.caosdb.server.transaction;
+
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map.Entry;
 import java.util.TimeZone;
+import org.caosdb.datetime.UTCDateTime;
+import org.caosdb.server.database.DatabaseMonitor;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.transaction.FileConsistencyCheck;
+import org.caosdb.server.database.backend.transaction.GetFileIterator;
+import org.caosdb.server.database.backend.transaction.GetFileRecordByPath;
+import org.caosdb.server.database.backend.transaction.RetrieveAllUncheckedFiles;
+import org.caosdb.server.database.backend.transaction.SetFileCheckedTimestamp;
+import org.caosdb.server.database.exceptions.EntityDoesNotExistException;
+import org.caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.xml.ToElementable;
+import org.caosdb.server.utils.SHA512;
 import org.jdom2.Element;
 
 public class FileStorageConsistencyCheck extends Thread
diff --git a/src/main/java/caosdb/server/transaction/Insert.java b/src/main/java/org/caosdb/server/transaction/Insert.java
similarity index 86%
rename from src/main/java/caosdb/server/transaction/Insert.java
rename to src/main/java/org/caosdb/server/transaction/Insert.java
index c1d53f3051eb65efd9d658179e514e13863c313b..f60fc1286ae909eb7fd999aa3af1f8379dd331ff 100644
--- a/src/main/java/caosdb/server/transaction/Insert.java
+++ b/src/main/java/org/caosdb/server/transaction/Insert.java
@@ -20,19 +20,19 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.transaction.InsertEntity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.Version;
-import caosdb.server.entity.container.InsertContainer;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.permissions.EntityACL;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
 import org.apache.shiro.SecurityUtils;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.transaction.InsertEntity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.Version;
+import org.caosdb.server.entity.container.InsertContainer;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.permissions.EntityACL;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 public class Insert extends WriteTransaction<InsertContainer> {
 
diff --git a/src/main/java/caosdb/server/transaction/InsertLogRecordTransaction.java b/src/main/java/org/caosdb/server/transaction/InsertLogRecordTransaction.java
similarity index 87%
rename from src/main/java/caosdb/server/transaction/InsertLogRecordTransaction.java
rename to src/main/java/org/caosdb/server/transaction/InsertLogRecordTransaction.java
index 3762b0bed3f726dd521f754043d0e99a5d2a3913..be01d93086e65694313c0d97c6b1603aef6a6bc7 100644
--- a/src/main/java/caosdb/server/transaction/InsertLogRecordTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/InsertLogRecordTransaction.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.database.DatabaseMonitor;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.transaction.InsertLogRecord;
 import java.util.List;
 import java.util.logging.LogRecord;
+import org.caosdb.server.database.DatabaseMonitor;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.transaction.InsertLogRecord;
 
 public class InsertLogRecordTransaction implements TransactionInterface {
 
diff --git a/src/main/java/caosdb/server/transaction/InsertRoleTransaction.java b/src/main/java/org/caosdb/server/transaction/InsertRoleTransaction.java
similarity index 82%
rename from src/main/java/caosdb/server/transaction/InsertRoleTransaction.java
rename to src/main/java/org/caosdb/server/transaction/InsertRoleTransaction.java
index 8377210690692c8819e5197e35a8e549d27f2a30..b70e2bd71259645a8f619cb25d36998579e3dca7 100644
--- a/src/main/java/caosdb/server/transaction/InsertRoleTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/InsertRoleTransaction.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.accessControl.Role;
-import caosdb.server.database.backend.transaction.InsertRole;
-import caosdb.server.database.backend.transaction.RetrieveRole;
-import caosdb.server.utils.ServerMessages;
 import org.apache.shiro.SecurityUtils;
+import org.caosdb.server.accessControl.ACMPermissions;
+import org.caosdb.server.accessControl.Role;
+import org.caosdb.server.database.backend.transaction.InsertRole;
+import org.caosdb.server.database.backend.transaction.RetrieveRole;
+import org.caosdb.server.utils.ServerMessages;
 
 public class InsertRoleTransaction extends AccessControlTransaction {
 
diff --git a/src/main/java/caosdb/server/transaction/InsertUserTransaction.java b/src/main/java/org/caosdb/server/transaction/InsertUserTransaction.java
similarity index 81%
rename from src/main/java/caosdb/server/transaction/InsertUserTransaction.java
rename to src/main/java/org/caosdb/server/transaction/InsertUserTransaction.java
index 75b876b8bc291ea246746b4a8e85ccd26055c173..b91b1aa6b31911822ed9df4c1eaffa87374ede82 100644
--- a/src/main/java/caosdb/server/transaction/InsertUserTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/InsertUserTransaction.java
@@ -20,18 +20,18 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.accessControl.UserStatus;
-import caosdb.server.database.backend.transaction.RetrievePasswordValidator;
-import caosdb.server.database.backend.transaction.SetPassword;
-import caosdb.server.database.backend.transaction.UpdateUser;
-import caosdb.server.database.proto.ProtoUser;
-import caosdb.server.utils.ServerMessages;
-import caosdb.server.utils.Utils;
 import org.apache.shiro.SecurityUtils;
+import org.caosdb.server.accessControl.ACMPermissions;
+import org.caosdb.server.accessControl.UserSources;
+import org.caosdb.server.accessControl.UserStatus;
+import org.caosdb.server.database.backend.transaction.RetrievePasswordValidator;
+import org.caosdb.server.database.backend.transaction.SetPassword;
+import org.caosdb.server.database.backend.transaction.UpdateUser;
+import org.caosdb.server.database.proto.ProtoUser;
+import org.caosdb.server.utils.ServerMessages;
+import org.caosdb.server.utils.Utils;
 import org.jdom2.Element;
 
 public class InsertUserTransaction extends AccessControlTransaction {
diff --git a/src/main/java/caosdb/server/transaction/Retrieve.java b/src/main/java/org/caosdb/server/transaction/Retrieve.java
similarity index 85%
rename from src/main/java/caosdb/server/transaction/Retrieve.java
rename to src/main/java/org/caosdb/server/transaction/Retrieve.java
index 0de1b8e06b66a4293668fb499fb28f33fa398187..5b01657a9c0df55f2b93fe83532b074543debff9 100644
--- a/src/main/java/caosdb/server/transaction/Retrieve.java
+++ b/src/main/java/org/caosdb/server/transaction/Retrieve.java
@@ -20,22 +20,22 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
-
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.transaction.RetrieveFullEntity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.container.RetrieveContainer;
-import caosdb.server.entity.xml.SetFieldStrategy;
-import caosdb.server.entity.xml.ToElementStrategy;
-import caosdb.server.entity.xml.ToElementable;
-import caosdb.server.jobs.core.Mode;
-import caosdb.server.jobs.core.RemoveDuplicates;
-import caosdb.server.jobs.core.ResolveNames;
-import caosdb.server.permissions.EntityPermission;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+package org.caosdb.server.transaction;
+
 import org.apache.shiro.authz.AuthorizationException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.transaction.RetrieveFullEntity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.container.RetrieveContainer;
+import org.caosdb.server.entity.xml.SetFieldStrategy;
+import org.caosdb.server.entity.xml.ToElementStrategy;
+import org.caosdb.server.entity.xml.ToElementable;
+import org.caosdb.server.jobs.core.Mode;
+import org.caosdb.server.jobs.core.RemoveDuplicates;
+import org.caosdb.server.jobs.core.ResolveNames;
+import org.caosdb.server.permissions.EntityPermission;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Element;
 
 public class Retrieve extends Transaction<RetrieveContainer> {
diff --git a/src/main/java/caosdb/server/transaction/RetrieveLogRecordTransaction.java b/src/main/java/org/caosdb/server/transaction/RetrieveLogRecordTransaction.java
similarity index 89%
rename from src/main/java/caosdb/server/transaction/RetrieveLogRecordTransaction.java
rename to src/main/java/org/caosdb/server/transaction/RetrieveLogRecordTransaction.java
index bbe2e1f11a7bd4c7705a790dec78903fb0e7c20a..49d850dbcb672767da33a7c855063b04e1099f29 100644
--- a/src/main/java/caosdb/server/transaction/RetrieveLogRecordTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/RetrieveLogRecordTransaction.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.database.DatabaseMonitor;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.transaction.RetrieveLogRecord;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.LogRecord;
 import org.apache.shiro.SecurityUtils;
+import org.caosdb.server.accessControl.ACMPermissions;
+import org.caosdb.server.database.DatabaseMonitor;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.transaction.RetrieveLogRecord;
 
 public class RetrieveLogRecordTransaction implements TransactionInterface {
 
diff --git a/src/main/java/caosdb/server/transaction/RetrievePasswordValidatorTransaction.java b/src/main/java/org/caosdb/server/transaction/RetrievePasswordValidatorTransaction.java
similarity index 86%
rename from src/main/java/caosdb/server/transaction/RetrievePasswordValidatorTransaction.java
rename to src/main/java/org/caosdb/server/transaction/RetrievePasswordValidatorTransaction.java
index d18b5c306373d6b89aa924bd154db444fbdb8f9a..bb1e136bcb62c28800d0b7c2c0d88c9a2ee34634 100644
--- a/src/main/java/caosdb/server/transaction/RetrievePasswordValidatorTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/RetrievePasswordValidatorTransaction.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.accessControl.CredentialsValidator;
-import caosdb.server.database.backend.transaction.RetrievePasswordValidator;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.accessControl.CredentialsValidator;
+import org.caosdb.server.database.backend.transaction.RetrievePasswordValidator;
+import org.caosdb.server.utils.ServerMessages;
 
 public class RetrievePasswordValidatorTransaction extends AccessControlTransaction {
 
diff --git a/src/main/java/caosdb/server/transaction/RetrievePermissionRulesTransaction.java b/src/main/java/org/caosdb/server/transaction/RetrievePermissionRulesTransaction.java
similarity index 84%
rename from src/main/java/caosdb/server/transaction/RetrievePermissionRulesTransaction.java
rename to src/main/java/org/caosdb/server/transaction/RetrievePermissionRulesTransaction.java
index d02722fd9e89e70c26e8782252c65fb9e199158c..225d068895d6484448b149d6b925facaabbf75fb 100644
--- a/src/main/java/caosdb/server/transaction/RetrievePermissionRulesTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/RetrievePermissionRulesTransaction.java
@@ -20,13 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.database.backend.transaction.RetrievePermissionRules;
-import caosdb.server.database.backend.transaction.RetrieveRole;
-import caosdb.server.permissions.PermissionRule;
-import caosdb.server.utils.ServerMessages;
 import java.util.HashSet;
+import org.caosdb.server.database.backend.transaction.RetrievePermissionRules;
+import org.caosdb.server.database.backend.transaction.RetrieveRole;
+import org.caosdb.server.permissions.PermissionRule;
+import org.caosdb.server.utils.ServerMessages;
 
 public class RetrievePermissionRulesTransaction extends AccessControlTransaction {
 
diff --git a/src/main/java/caosdb/server/transaction/RetrieveRoleTransaction.java b/src/main/java/org/caosdb/server/transaction/RetrieveRoleTransaction.java
similarity index 87%
rename from src/main/java/caosdb/server/transaction/RetrieveRoleTransaction.java
rename to src/main/java/org/caosdb/server/transaction/RetrieveRoleTransaction.java
index 4d019f87fb572ce8e75393302764e8146034ee22..c7c251ba9847fe29f84589297f846f436f2a1309 100644
--- a/src/main/java/caosdb/server/transaction/RetrieveRoleTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/RetrieveRoleTransaction.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.accessControl.Role;
-import caosdb.server.database.backend.transaction.RetrieveRole;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.accessControl.Role;
+import org.caosdb.server.database.backend.transaction.RetrieveRole;
+import org.caosdb.server.utils.ServerMessages;
 
 public class RetrieveRoleTransaction extends AccessControlTransaction {
 
diff --git a/src/main/java/caosdb/server/transaction/RetrieveSparseEntityByPath.java b/src/main/java/org/caosdb/server/transaction/RetrieveSparseEntityByPath.java
similarity index 86%
rename from src/main/java/caosdb/server/transaction/RetrieveSparseEntityByPath.java
rename to src/main/java/org/caosdb/server/transaction/RetrieveSparseEntityByPath.java
index 2b936247bba9ece2d4bb9ab5cb1a5a1b2cbada74..d82985fe8060b3919d48c17a6bbd2994fc92c5bf 100644
--- a/src/main/java/caosdb/server/transaction/RetrieveSparseEntityByPath.java
+++ b/src/main/java/org/caosdb/server/transaction/RetrieveSparseEntityByPath.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.database.backend.transaction.GetFileRecordByPath;
-import caosdb.server.database.backend.transaction.RetrieveSparseEntity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.database.backend.transaction.GetFileRecordByPath;
+import org.caosdb.server.database.backend.transaction.RetrieveSparseEntity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.container.TransactionContainer;
 
 public class RetrieveSparseEntityByPath extends Transaction<TransactionContainer> {
 
diff --git a/src/main/java/caosdb/server/transaction/RetrieveUserRolesTransaction.java b/src/main/java/org/caosdb/server/transaction/RetrieveUserRolesTransaction.java
similarity index 91%
rename from src/main/java/caosdb/server/transaction/RetrieveUserRolesTransaction.java
rename to src/main/java/org/caosdb/server/transaction/RetrieveUserRolesTransaction.java
index e864c20bcf040faf78dc54e24dbcdefc1a8be795..97e518d06ac9ad5766b3801be8b1f1403cf8af3f 100644
--- a/src/main/java/caosdb/server/transaction/RetrieveUserRolesTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/RetrieveUserRolesTransaction.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.accessControl.Principal;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.utils.ServerMessages;
 import java.util.Set;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.accessControl.UserSources;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Element;
 
 public class RetrieveUserRolesTransaction implements TransactionInterface {
diff --git a/src/main/java/caosdb/server/transaction/RetrieveUserTransaction.java b/src/main/java/org/caosdb/server/transaction/RetrieveUserTransaction.java
similarity index 88%
rename from src/main/java/caosdb/server/transaction/RetrieveUserTransaction.java
rename to src/main/java/org/caosdb/server/transaction/RetrieveUserTransaction.java
index f2728a64664ad72f113e55a91ef87496810ad7c6..228b1585233ae71d3b7130196f68c3b9f83f5ed2 100644
--- a/src/main/java/caosdb/server/transaction/RetrieveUserTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/RetrieveUserTransaction.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.accessControl.Principal;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.accessControl.UserStatus;
-import caosdb.server.database.backend.transaction.RetrieveUser;
-import caosdb.server.database.proto.ProtoUser;
-import caosdb.server.utils.ServerMessages;
 import java.util.Set;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.accessControl.UserSources;
+import org.caosdb.server.accessControl.UserStatus;
+import org.caosdb.server.database.backend.transaction.RetrieveUser;
+import org.caosdb.server.database.proto.ProtoUser;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Element;
 
 public class RetrieveUserTransaction extends AccessControlTransaction {
diff --git a/src/main/java/caosdb/server/transaction/Transaction.java b/src/main/java/org/caosdb/server/transaction/Transaction.java
similarity index 88%
rename from src/main/java/caosdb/server/transaction/Transaction.java
rename to src/main/java/org/caosdb/server/transaction/Transaction.java
index d2c16438b5c071fec72b11b600604b46c4b2da30..0235b8a25cd1d7df9f923023b1be2d5597038b0e 100644
--- a/src/main/java/caosdb/server/transaction/Transaction.java
+++ b/src/main/java/org/caosdb/server/transaction/Transaction.java
@@ -22,33 +22,33 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
-
-import caosdb.datetime.UTCDateTime;
-import caosdb.server.accessControl.Principal;
-import caosdb.server.database.DatabaseMonitor;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.transaction.InsertTransactionHistory;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.misc.TransactionBenchmark;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.Message.MessageType;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.jobs.Job;
-import caosdb.server.jobs.JobExecutionTime;
-import caosdb.server.jobs.Schedule;
-import caosdb.server.jobs.core.AccessControl;
-import caosdb.server.jobs.core.CheckDatatypePresent;
-import caosdb.server.jobs.core.CheckEntityACLRoles;
-import caosdb.server.jobs.core.Mode;
-import caosdb.server.jobs.core.PickUp;
-import caosdb.server.utils.AbstractObservable;
-import caosdb.server.utils.Info;
-import caosdb.server.utils.Observer;
+package org.caosdb.server.transaction;
+
 import java.util.HashMap;
 import java.util.List;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.datetime.UTCDateTime;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.database.DatabaseMonitor;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.transaction.InsertTransactionHistory;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.Message.MessageType;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.jobs.Job;
+import org.caosdb.server.jobs.JobExecutionTime;
+import org.caosdb.server.jobs.Schedule;
+import org.caosdb.server.jobs.core.AccessControl;
+import org.caosdb.server.jobs.core.CheckDatatypePresent;
+import org.caosdb.server.jobs.core.CheckEntityACLRoles;
+import org.caosdb.server.jobs.core.Mode;
+import org.caosdb.server.jobs.core.PickUp;
+import org.caosdb.server.utils.AbstractObservable;
+import org.caosdb.server.utils.Info;
+import org.caosdb.server.utils.Observer;
 
 public abstract class Transaction<C extends TransactionContainer> extends AbstractObservable
     implements TransactionInterface {
diff --git a/src/main/java/caosdb/server/transaction/TransactionInterface.java b/src/main/java/org/caosdb/server/transaction/TransactionInterface.java
similarity index 85%
rename from src/main/java/caosdb/server/transaction/TransactionInterface.java
rename to src/main/java/org/caosdb/server/transaction/TransactionInterface.java
index 1aaf2786cc613709c59c92b7102474cead00ca1c..1aa41b2bbc31063b2978aa9c141e75c98799f124 100644
--- a/src/main/java/caosdb/server/transaction/TransactionInterface.java
+++ b/src/main/java/org/caosdb/server/transaction/TransactionInterface.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.misc.RollBackHandler;
-import caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.misc.RollBackHandler;
+import org.caosdb.server.database.misc.TransactionBenchmark;
 
 public interface TransactionInterface {
 
diff --git a/src/main/java/caosdb/server/transaction/Update.java b/src/main/java/org/caosdb/server/transaction/Update.java
similarity index 94%
rename from src/main/java/caosdb/server/transaction/Update.java
rename to src/main/java/org/caosdb/server/transaction/Update.java
index b9e6e8de19f137014d10d1c6516c07ca2acabf8e..f5a9a7ffd8b32e4b8d220ea6bba44731b51047ef 100644
--- a/src/main/java/caosdb/server/transaction/Update.java
+++ b/src/main/java/org/caosdb/server/transaction/Update.java
@@ -20,30 +20,30 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
-
-import caosdb.server.CaosDBException;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.transaction.RetrieveFullEntity;
-import caosdb.server.database.backend.transaction.UpdateEntity;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.RetrieveEntity;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.entity.container.UpdateContainer;
-import caosdb.server.entity.wrapper.Parent;
-import caosdb.server.entity.wrapper.Property;
-import caosdb.server.permissions.EntityPermission;
-import caosdb.server.permissions.Permission;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
+package org.caosdb.server.transaction;
+
 import com.google.common.base.Objects;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.util.HashSet;
 import java.util.Set;
 import org.apache.shiro.authz.AuthorizationException;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.transaction.RetrieveFullEntity;
+import org.caosdb.server.database.backend.transaction.UpdateEntity;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.RetrieveEntity;
+import org.caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.entity.container.UpdateContainer;
+import org.caosdb.server.entity.wrapper.Parent;
+import org.caosdb.server.entity.wrapper.Property;
+import org.caosdb.server.permissions.EntityPermission;
+import org.caosdb.server.permissions.Permission;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
 
 public class Update extends WriteTransaction<UpdateContainer> {
 
diff --git a/src/main/java/caosdb/server/transaction/UpdatePermissionRulesTransaction.java b/src/main/java/org/caosdb/server/transaction/UpdatePermissionRulesTransaction.java
similarity index 83%
rename from src/main/java/caosdb/server/transaction/UpdatePermissionRulesTransaction.java
rename to src/main/java/org/caosdb/server/transaction/UpdatePermissionRulesTransaction.java
index e537b001f2af65e35c65e8c8ad88d37a2fd2bc01..4f8c9369fe915675e24c55e9fc7e0052ede360b3 100644
--- a/src/main/java/caosdb/server/transaction/UpdatePermissionRulesTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/UpdatePermissionRulesTransaction.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.database.backend.transaction.RetrieveRole;
-import caosdb.server.database.backend.transaction.SetPermissionRules;
-import caosdb.server.permissions.PermissionRule;
-import caosdb.server.utils.ServerMessages;
 import java.util.Set;
 import org.apache.shiro.SecurityUtils;
+import org.caosdb.server.accessControl.ACMPermissions;
+import org.caosdb.server.database.backend.transaction.RetrieveRole;
+import org.caosdb.server.database.backend.transaction.SetPermissionRules;
+import org.caosdb.server.permissions.PermissionRule;
+import org.caosdb.server.utils.ServerMessages;
 
 public class UpdatePermissionRulesTransaction extends AccessControlTransaction {
 
diff --git a/src/main/java/caosdb/server/transaction/UpdateRoleTransaction.java b/src/main/java/org/caosdb/server/transaction/UpdateRoleTransaction.java
similarity index 80%
rename from src/main/java/caosdb/server/transaction/UpdateRoleTransaction.java
rename to src/main/java/org/caosdb/server/transaction/UpdateRoleTransaction.java
index dfec776005800469654f144a0c5ae6f0213a04ad..7e1632f8a0a9252c6e400d352bb63e133f6ae9e6 100644
--- a/src/main/java/caosdb/server/transaction/UpdateRoleTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/UpdateRoleTransaction.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.accessControl.Role;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.database.backend.transaction.InsertRole;
-import caosdb.server.database.backend.transaction.RetrieveRole;
-import caosdb.server.utils.ServerMessages;
 import org.apache.shiro.SecurityUtils;
+import org.caosdb.server.accessControl.ACMPermissions;
+import org.caosdb.server.accessControl.Role;
+import org.caosdb.server.accessControl.UserSources;
+import org.caosdb.server.database.backend.transaction.InsertRole;
+import org.caosdb.server.database.backend.transaction.RetrieveRole;
+import org.caosdb.server.utils.ServerMessages;
 
 public class UpdateRoleTransaction extends AccessControlTransaction {
 
diff --git a/src/main/java/caosdb/server/transaction/UpdateUserRolesTransaction.java b/src/main/java/org/caosdb/server/transaction/UpdateUserRolesTransaction.java
similarity index 87%
rename from src/main/java/caosdb/server/transaction/UpdateUserRolesTransaction.java
rename to src/main/java/org/caosdb/server/transaction/UpdateUserRolesTransaction.java
index f11400c3826170de658fd9e5a634665f00e1cb44..a74d875fc8b4d14821de24522e8b9bc531416ee5 100644
--- a/src/main/java/caosdb/server/transaction/UpdateUserRolesTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/UpdateUserRolesTransaction.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.accessControl.Principal;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.database.backend.transaction.RetrieveRole;
-import caosdb.server.database.backend.transaction.UpdateUserRoles;
-import caosdb.server.utils.ServerMessages;
 import java.util.HashSet;
 import java.util.Set;
 import org.apache.shiro.SecurityUtils;
+import org.caosdb.server.accessControl.ACMPermissions;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.accessControl.UserSources;
+import org.caosdb.server.database.backend.transaction.RetrieveRole;
+import org.caosdb.server.database.backend.transaction.UpdateUserRoles;
+import org.caosdb.server.utils.ServerMessages;
 import org.jdom2.Element;
 
 public class UpdateUserRolesTransaction extends AccessControlTransaction {
diff --git a/src/main/java/caosdb/server/transaction/UpdateUserTransaction.java b/src/main/java/org/caosdb/server/transaction/UpdateUserTransaction.java
similarity index 85%
rename from src/main/java/caosdb/server/transaction/UpdateUserTransaction.java
rename to src/main/java/org/caosdb/server/transaction/UpdateUserTransaction.java
index ca29bb7977da8fc677c774b30a1f3fa78879c5a7..dc93549a4e5a65d474043f109d136048c37d6146 100644
--- a/src/main/java/caosdb/server/transaction/UpdateUserTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/UpdateUserTransaction.java
@@ -20,24 +20,24 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.accessControl.Principal;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.accessControl.UserStatus;
-import caosdb.server.database.backend.transaction.RetrieveUser;
-import caosdb.server.database.backend.transaction.SetPassword;
-import caosdb.server.database.backend.transaction.UpdateUser;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoUser;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.RetrieveEntity;
-import caosdb.server.entity.container.RetrieveContainer;
-import caosdb.server.utils.EntityStatus;
-import caosdb.server.utils.ServerMessages;
-import caosdb.server.utils.Utils;
 import org.apache.shiro.SecurityUtils;
+import org.caosdb.server.accessControl.ACMPermissions;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.accessControl.UserSources;
+import org.caosdb.server.accessControl.UserStatus;
+import org.caosdb.server.database.backend.transaction.RetrieveUser;
+import org.caosdb.server.database.backend.transaction.SetPassword;
+import org.caosdb.server.database.backend.transaction.UpdateUser;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoUser;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.RetrieveEntity;
+import org.caosdb.server.entity.container.RetrieveContainer;
+import org.caosdb.server.utils.EntityStatus;
+import org.caosdb.server.utils.ServerMessages;
+import org.caosdb.server.utils.Utils;
 import org.jdom2.Element;
 
 public class UpdateUserTransaction extends AccessControlTransaction {
diff --git a/src/main/java/caosdb/server/transaction/WriteTransaction.java b/src/main/java/org/caosdb/server/transaction/WriteTransaction.java
similarity index 90%
rename from src/main/java/caosdb/server/transaction/WriteTransaction.java
rename to src/main/java/org/caosdb/server/transaction/WriteTransaction.java
index ec37d19d6f5a4663c0af0adda186c282215a302b..04c3834caad3264d6c1b8e5c99cf5b17a513e403 100644
--- a/src/main/java/caosdb/server/transaction/WriteTransaction.java
+++ b/src/main/java/org/caosdb/server/transaction/WriteTransaction.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import caosdb.server.database.misc.RollBackHandler;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.container.TransactionContainer;
+import org.caosdb.server.database.misc.RollBackHandler;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.container.TransactionContainer;
 
 public abstract class WriteTransaction<C extends TransactionContainer> extends Transaction<C> {
 
diff --git a/src/main/java/caosdb/server/utils/AbstractObservable.java b/src/main/java/org/caosdb/server/utils/AbstractObservable.java
similarity index 98%
rename from src/main/java/caosdb/server/utils/AbstractObservable.java
rename to src/main/java/org/caosdb/server/utils/AbstractObservable.java
index d52a51bfef0375cad9069d57b744c0618813aae3..a19fff9d44ce7339a9cdc6712e0806ef42bdfd40 100644
--- a/src/main/java/caosdb/server/utils/AbstractObservable.java
+++ b/src/main/java/org/caosdb/server/utils/AbstractObservable.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 import java.util.Iterator;
 import org.eclipse.jetty.util.ConcurrentHashSet;
diff --git a/src/main/java/caosdb/server/utils/AsynchronousHasher.java b/src/main/java/org/caosdb/server/utils/AsynchronousHasher.java
similarity index 97%
rename from src/main/java/caosdb/server/utils/AsynchronousHasher.java
rename to src/main/java/org/caosdb/server/utils/AsynchronousHasher.java
index 3c504c3f4b0532f692431c83b7ca441bfd8808f3..47dad864835e8c370ddef31988205a113665b6c1 100644
--- a/src/main/java/caosdb/server/utils/AsynchronousHasher.java
+++ b/src/main/java/org/caosdb/server/utils/AsynchronousHasher.java
@@ -1,3 +1,4 @@
+package org.caosdb.server.utils;
 /*
  * ** header v3.0
  * This file is a part of the CaosDB Project.
@@ -20,7 +21,7 @@
  *
  * ** end header
  */
-// package caosdb.server.utils;
+// package org.caosdb.server.utils;
 //
 // import java.io.File;
 //
diff --git a/src/main/java/caosdb/server/utils/ConfigurationException.java b/src/main/java/org/caosdb/server/utils/ConfigurationException.java
similarity index 90%
rename from src/main/java/caosdb/server/utils/ConfigurationException.java
rename to src/main/java/org/caosdb/server/utils/ConfigurationException.java
index 74a741873b3d4e53f6d5af1dfcf2bc0bda1b125b..517c11677c73d9624b93df18fb5196e2f4578024 100644
--- a/src/main/java/caosdb/server/utils/ConfigurationException.java
+++ b/src/main/java/org/caosdb/server/utils/ConfigurationException.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 public class ConfigurationException extends RuntimeException {
 
-  private static final long serialVersionUID = -8445574584694720914L;
+  private static final long serialVersionUID = -8973694831724941007L;
 
   public ConfigurationException(String reason) {
     super(reason);
diff --git a/src/main/java/caosdb/server/utils/CronJob.java b/src/main/java/org/caosdb/server/utils/CronJob.java
similarity index 97%
rename from src/main/java/caosdb/server/utils/CronJob.java
rename to src/main/java/org/caosdb/server/utils/CronJob.java
index a6608b1020df2796839ec419203630db4a1ee921..8110a51752d996fc2f4fd2af3e5b7350f3e4d01f 100644
--- a/src/main/java/caosdb/server/utils/CronJob.java
+++ b/src/main/java/org/caosdb/server/utils/CronJob.java
@@ -20,10 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
-import caosdb.server.CaosDBServer;
 import java.util.HashMap;
+import org.caosdb.server.CaosDBServer;
 
 public class CronJob {
 
diff --git a/src/main/java/caosdb/server/utils/EntityStatus.java b/src/main/java/org/caosdb/server/utils/EntityStatus.java
similarity index 98%
rename from src/main/java/caosdb/server/utils/EntityStatus.java
rename to src/main/java/org/caosdb/server/utils/EntityStatus.java
index 3e906302c45623ae0cacba7f45c20dd5f560a7fb..ef8bdc101c61e216c9aa448d667b59dfa5107672 100644
--- a/src/main/java/caosdb/server/utils/EntityStatus.java
+++ b/src/main/java/org/caosdb/server/utils/EntityStatus.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 /**
  * IGNORE - This instance must be ignored during further processing. <br>
diff --git a/src/main/java/caosdb/server/utils/FileUtils.java b/src/main/java/org/caosdb/server/utils/FileUtils.java
similarity index 98%
rename from src/main/java/caosdb/server/utils/FileUtils.java
rename to src/main/java/org/caosdb/server/utils/FileUtils.java
index 2357b7217c0fa9b112dd6c9e45d5be64d36edefb..70ba003018e3ccc7831bf9f536e827552445ec6a 100644
--- a/src/main/java/caosdb/server/utils/FileUtils.java
+++ b/src/main/java/org/caosdb/server/utils/FileUtils.java
@@ -20,18 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 import static java.nio.file.Files.isSameFile;
 import static java.nio.file.Files.isSymbolicLink;
 import static java.nio.file.Files.readSymbolicLink;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.CaosDBServer;
-import caosdb.server.FileSystem;
-import caosdb.server.ServerProperties;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.Message;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
@@ -43,6 +37,12 @@ import java.nio.file.LinkOption;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.Arrays;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.Message;
 import org.eclipse.jetty.io.RuntimeIOException;
 
 public class FileUtils {
diff --git a/src/main/java/caosdb/server/utils/FlagInfo.java b/src/main/java/org/caosdb/server/utils/FlagInfo.java
similarity index 89%
rename from src/main/java/caosdb/server/utils/FlagInfo.java
rename to src/main/java/org/caosdb/server/utils/FlagInfo.java
index 6a94194ba401e36c3c4e2fbc41c939b0c3aa6a43..164c6aabe9c4fafff26f93db30d791fa91389eee 100644
--- a/src/main/java/caosdb/server/utils/FlagInfo.java
+++ b/src/main/java/org/caosdb/server/utils/FlagInfo.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
-import caosdb.server.jobs.FlagJob;
-import caosdb.server.jobs.Job;
-import caosdb.server.jobs.JobAnnotation;
-import caosdb.server.transaction.TransactionInterface;
 import java.lang.annotation.Annotation;
 import java.util.ArrayList;
 import java.util.Set;
+import org.caosdb.server.jobs.FlagJob;
+import org.caosdb.server.jobs.Job;
+import org.caosdb.server.jobs.JobAnnotation;
+import org.caosdb.server.transaction.TransactionInterface;
 import org.jdom2.Element;
 import org.reflections.Reflections;
 
@@ -38,7 +38,7 @@ public class FlagInfo {
 
   public static ArrayList<JobAnnotation> scan() {
     final ArrayList<JobAnnotation> as = new ArrayList<JobAnnotation>();
-    final Reflections jobPackage = new Reflections("caosdb.server.jobs.core");
+    final Reflections jobPackage = new Reflections("org.caosdb.server.jobs.core");
     final Set<Class<? extends FlagJob>> allClassesSet = jobPackage.getSubTypesOf(FlagJob.class);
     for (final Class<? extends Job> c : allClassesSet) {
       for (final Annotation a : c.getAnnotations()) {
diff --git a/src/main/java/caosdb/server/utils/HashAlgorithm.java b/src/main/java/org/caosdb/server/utils/HashAlgorithm.java
similarity index 96%
rename from src/main/java/caosdb/server/utils/HashAlgorithm.java
rename to src/main/java/org/caosdb/server/utils/HashAlgorithm.java
index d6155a854aa8944fc7eeb861007b5aed8f3a7946..6bf517fc5b906b4199219bde5654dbdebf3c5ecb 100644
--- a/src/main/java/caosdb/server/utils/HashAlgorithm.java
+++ b/src/main/java/org/caosdb/server/utils/HashAlgorithm.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 import java.io.File;
 
diff --git a/src/main/java/caosdb/server/utils/HashException.java b/src/main/java/org/caosdb/server/utils/HashException.java
similarity index 88%
rename from src/main/java/caosdb/server/utils/HashException.java
rename to src/main/java/org/caosdb/server/utils/HashException.java
index 6df49b0a1fc28dd37c315bd05047db2750709fa8..46c3ecc6fba5cceac03605f80f4154e8f6a97594 100644
--- a/src/main/java/caosdb/server/utils/HashException.java
+++ b/src/main/java/org/caosdb/server/utils/HashException.java
@@ -20,14 +20,14 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
-import caosdb.server.CaosDBException;
+import org.caosdb.server.CaosDBException;
 
 public class HashException extends CaosDBException {
 
   /** */
-  private static final long serialVersionUID = 4842032786089373949L;
+  private static final long serialVersionUID = 5478908505951882613L;
 
   public HashException(final String string) {
     super(string);
diff --git a/src/main/java/caosdb/server/utils/HashNotReadyException.java b/src/main/java/org/caosdb/server/utils/HashNotReadyException.java
similarity index 90%
rename from src/main/java/caosdb/server/utils/HashNotReadyException.java
rename to src/main/java/org/caosdb/server/utils/HashNotReadyException.java
index 2638f6121b21dfa47ab1792ddbeb1f0e5c1664c5..7b52a92406d53f54ba11c257353c255bded46696 100644
--- a/src/main/java/caosdb/server/utils/HashNotReadyException.java
+++ b/src/main/java/org/caosdb/server/utils/HashNotReadyException.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 public class HashNotReadyException extends HashException {
 
@@ -29,5 +29,5 @@ public class HashNotReadyException extends HashException {
   }
 
   /** */
-  private static final long serialVersionUID = 2389389859670664559L;
+  private static final long serialVersionUID = 7709720557931578533L;
 }
diff --git a/src/main/java/caosdb/server/utils/HashTimeoutException.java b/src/main/java/org/caosdb/server/utils/HashTimeoutException.java
similarity index 90%
rename from src/main/java/caosdb/server/utils/HashTimeoutException.java
rename to src/main/java/org/caosdb/server/utils/HashTimeoutException.java
index 03423c5e1d20631ae6f1e0ab2abff0272f432124..4733ae5314d235cab9c7ee3e98400bd90483f277 100644
--- a/src/main/java/caosdb/server/utils/HashTimeoutException.java
+++ b/src/main/java/org/caosdb/server/utils/HashTimeoutException.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 public class HashTimeoutException extends HashException {
 
@@ -29,5 +29,5 @@ public class HashTimeoutException extends HashException {
   }
 
   /** */
-  private static final long serialVersionUID = 1L;
+  private static final long serialVersionUID = -1616384952193042048L;
 }
diff --git a/src/main/java/caosdb/server/utils/Hasher.java b/src/main/java/org/caosdb/server/utils/Hasher.java
similarity index 97%
rename from src/main/java/caosdb/server/utils/Hasher.java
rename to src/main/java/org/caosdb/server/utils/Hasher.java
index 0d01e3f7cf572596323a5949dfd3d192a6c7d6bf..9eb009cd6e3445f3cc87639e8fc6d14793f386f2 100644
--- a/src/main/java/caosdb/server/utils/Hasher.java
+++ b/src/main/java/org/caosdb/server/utils/Hasher.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/src/main/java/caosdb/server/utils/Info.java b/src/main/java/org/caosdb/server/utils/Info.java
similarity index 93%
rename from src/main/java/caosdb/server/utils/Info.java
rename to src/main/java/org/caosdb/server/utils/Info.java
index bf85546d8303c072a322afcb9433c77eda928fec..19f792cf625765924f02a7b734f2e57849584ffc 100644
--- a/src/main/java/caosdb/server/utils/Info.java
+++ b/src/main/java/org/caosdb/server/utils/Info.java
@@ -20,24 +20,24 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
-
-import caosdb.server.CaosDBServer;
-import caosdb.server.FileSystem;
-import caosdb.server.database.DatabaseMonitor;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.transaction.GetInfo;
-import caosdb.server.database.backend.transaction.SyncStats;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.proto.ProtoInfo;
-import caosdb.server.entity.Message;
-import caosdb.server.transaction.TransactionInterface;
+package org.caosdb.server.utils;
+
 import java.io.File;
 import java.io.IOException;
 import java.sql.SQLException;
 import java.util.LinkedList;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.database.DatabaseMonitor;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.transaction.GetInfo;
+import org.caosdb.server.database.backend.transaction.SyncStats;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.proto.ProtoInfo;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.transaction.TransactionInterface;
 import org.jdom2.Element;
 
 public class Info extends AbstractObservable implements Observer, TransactionInterface {
diff --git a/src/main/java/caosdb/server/utils/Initialization.java b/src/main/java/org/caosdb/server/utils/Initialization.java
similarity index 89%
rename from src/main/java/caosdb/server/utils/Initialization.java
rename to src/main/java/org/caosdb/server/utils/Initialization.java
index 9f77fcf2992c0e7fb8de38ee334bebe8c93ef3d8..baae53804f57433aa58da1ae1b9c58060c3db160 100644
--- a/src/main/java/caosdb/server/utils/Initialization.java
+++ b/src/main/java/org/caosdb/server/utils/Initialization.java
@@ -22,11 +22,11 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
-import caosdb.server.database.DatabaseMonitor;
-import caosdb.server.database.access.Access;
-import caosdb.server.transaction.TransactionInterface;
+import org.caosdb.server.database.DatabaseMonitor;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.transaction.TransactionInterface;
 
 public final class Initialization implements TransactionInterface, AutoCloseable {
 
diff --git a/src/main/java/caosdb/server/utils/NullPrintStream.java b/src/main/java/org/caosdb/server/utils/NullPrintStream.java
similarity index 97%
rename from src/main/java/caosdb/server/utils/NullPrintStream.java
rename to src/main/java/org/caosdb/server/utils/NullPrintStream.java
index b6b7211b4493762473cad5a8a3edfa4bb89f6618..9256bdee5af75af1a141c2f1dbdbee54cf1b64e2 100644
--- a/src/main/java/caosdb/server/utils/NullPrintStream.java
+++ b/src/main/java/org/caosdb/server/utils/NullPrintStream.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 import java.io.PrintStream;
 import org.apache.commons.io.output.NullOutputStream;
diff --git a/src/main/java/caosdb/server/utils/Observable.java b/src/main/java/org/caosdb/server/utils/Observable.java
similarity index 96%
rename from src/main/java/caosdb/server/utils/Observable.java
rename to src/main/java/org/caosdb/server/utils/Observable.java
index f75e040111eab3b32269897bc04f4e8bee1744c3..a43822eb9725232f068c6cdb26764994033366a3 100644
--- a/src/main/java/caosdb/server/utils/Observable.java
+++ b/src/main/java/org/caosdb/server/utils/Observable.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 public interface Observable {
   public boolean acceptObserver(Observer o);
diff --git a/src/main/java/caosdb/server/utils/ObservableWrapper.java b/src/main/java/org/caosdb/server/utils/ObservableWrapper.java
similarity index 95%
rename from src/main/java/caosdb/server/utils/ObservableWrapper.java
rename to src/main/java/org/caosdb/server/utils/ObservableWrapper.java
index a7bdede91f528f847b193b326d559b79cbdf6a05..9a1833db95220919102b7ec434971ce9057d86dd 100644
--- a/src/main/java/caosdb/server/utils/ObservableWrapper.java
+++ b/src/main/java/org/caosdb/server/utils/ObservableWrapper.java
@@ -1,3 +1,4 @@
+package org.caosdb.server.utils;
 /*
  * ** header v3.0
  * This file is a part of the CaosDB Project.
@@ -20,7 +21,7 @@
  *
  * ** end header
  */
-// package caosdb.server.utils;
+// package org.caosdb.server.utils;
 //
 //
 // public class ObservableWrapper<T> extends AbstractObservable {
diff --git a/src/main/java/caosdb/server/utils/Observer.java b/src/main/java/org/caosdb/server/utils/Observer.java
similarity index 97%
rename from src/main/java/caosdb/server/utils/Observer.java
rename to src/main/java/org/caosdb/server/utils/Observer.java
index bb1599d5f1ec4d248473d477e508cfc04200c90f..be89dff4b882adf24bcfd250c3dea1387997360d 100644
--- a/src/main/java/caosdb/server/utils/Observer.java
+++ b/src/main/java/org/caosdb/server/utils/Observer.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 public interface Observer {
 
diff --git a/src/main/java/caosdb/server/utils/Releasable.java b/src/main/java/org/caosdb/server/utils/Releasable.java
similarity index 96%
rename from src/main/java/caosdb/server/utils/Releasable.java
rename to src/main/java/org/caosdb/server/utils/Releasable.java
index 36b293e0e46fbd16a7ac811e49f989e9e6c9ca7d..f81a029ae319af057c4bc06e3d0501b6eedbe38c 100644
--- a/src/main/java/caosdb/server/utils/Releasable.java
+++ b/src/main/java/org/caosdb/server/utils/Releasable.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 public interface Releasable {
 
diff --git a/src/main/java/caosdb/server/utils/SHA512.java b/src/main/java/org/caosdb/server/utils/SHA512.java
similarity index 97%
rename from src/main/java/caosdb/server/utils/SHA512.java
rename to src/main/java/org/caosdb/server/utils/SHA512.java
index 07d56bd81435e36b0ddb4dbad16ec703f6d37a4f..a461d95ed9e38baf350b0ee53e059b10ee13a177 100644
--- a/src/main/java/caosdb/server/utils/SHA512.java
+++ b/src/main/java/org/caosdb/server/utils/SHA512.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/src/main/java/caosdb/server/utils/Serializer.java b/src/main/java/org/caosdb/server/utils/Serializer.java
similarity index 96%
rename from src/main/java/caosdb/server/utils/Serializer.java
rename to src/main/java/org/caosdb/server/utils/Serializer.java
index 26cd970c54d2bc4efcb7742ab9405a717e3ef112..c58ca23ebfd439e5681289e451da5651d459abc7 100644
--- a/src/main/java/caosdb/server/utils/Serializer.java
+++ b/src/main/java/org/caosdb/server/utils/Serializer.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 public interface Serializer<T, S> {
 
diff --git a/src/main/java/caosdb/server/utils/ServerMessages.java b/src/main/java/org/caosdb/server/utils/ServerMessages.java
similarity index 98%
rename from src/main/java/caosdb/server/utils/ServerMessages.java
rename to src/main/java/org/caosdb/server/utils/ServerMessages.java
index 29983924246f5bc5987ffdbfeaf949d0946c7f16..2801218aa47a18ec1494ee8ef76607eb9b962130 100644
--- a/src/main/java/caosdb/server/utils/ServerMessages.java
+++ b/src/main/java/org/caosdb/server/utils/ServerMessages.java
@@ -17,12 +17,12 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.entity.Message.MessageType;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.Message.MessageType;
 
 public class ServerMessages {
 
diff --git a/src/main/java/caosdb/server/utils/ServerStat.java b/src/main/java/org/caosdb/server/utils/ServerStat.java
similarity index 96%
rename from src/main/java/caosdb/server/utils/ServerStat.java
rename to src/main/java/org/caosdb/server/utils/ServerStat.java
index c0b95d790cd724cddb0af4a934eac7a60047d13a..8b5526335208f07b084e8d61e5d4244b3c235da2 100644
--- a/src/main/java/caosdb/server/utils/ServerStat.java
+++ b/src/main/java/org/caosdb/server/utils/ServerStat.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 import java.io.Serializable;
 
diff --git a/src/main/java/caosdb/server/utils/TransactionLogMessage.java b/src/main/java/org/caosdb/server/utils/TransactionLogMessage.java
similarity index 94%
rename from src/main/java/caosdb/server/utils/TransactionLogMessage.java
rename to src/main/java/org/caosdb/server/utils/TransactionLogMessage.java
index fbc5e7c05c0a5812ed33879ad0ebcfb6c11dae57..368e09085fce6cc77ac703cd7e2f51f9f4f32d22 100644
--- a/src/main/java/caosdb/server/utils/TransactionLogMessage.java
+++ b/src/main/java/org/caosdb/server/utils/TransactionLogMessage.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
-import caosdb.datetime.UTCDateTime;
-import caosdb.server.entity.EntityInterface;
 import java.util.TimeZone;
+import org.caosdb.datetime.UTCDateTime;
+import org.caosdb.server.entity.EntityInterface;
 import org.jdom2.Element;
 
 public class TransactionLogMessage {
diff --git a/src/main/java/caosdb/server/utils/UncloseableOutputStream.java b/src/main/java/org/caosdb/server/utils/UncloseableOutputStream.java
similarity index 97%
rename from src/main/java/caosdb/server/utils/UncloseableOutputStream.java
rename to src/main/java/org/caosdb/server/utils/UncloseableOutputStream.java
index 1918c9c8130fecab0906d7cc34ffd1fa32e0d3d7..3f70f2826cbed4547282d2e809ccdaa0068e3ebe 100644
--- a/src/main/java/caosdb/server/utils/UncloseableOutputStream.java
+++ b/src/main/java/org/caosdb/server/utils/UncloseableOutputStream.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 import java.io.IOException;
 import java.io.OutputStream;
diff --git a/src/main/java/caosdb/server/utils/UndoHandler.java b/src/main/java/org/caosdb/server/utils/UndoHandler.java
similarity index 98%
rename from src/main/java/caosdb/server/utils/UndoHandler.java
rename to src/main/java/org/caosdb/server/utils/UndoHandler.java
index d5c2806f7fa12ad2a223eb99dd17adf569779203..2102784711a1ebd5e879d1562eda26715a19f6b2 100644
--- a/src/main/java/caosdb/server/utils/UndoHandler.java
+++ b/src/main/java/org/caosdb/server/utils/UndoHandler.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 import java.util.ArrayDeque;
 import java.util.Deque;
diff --git a/src/main/java/caosdb/server/utils/Undoable.java b/src/main/java/org/caosdb/server/utils/Undoable.java
similarity index 96%
rename from src/main/java/caosdb/server/utils/Undoable.java
rename to src/main/java/org/caosdb/server/utils/Undoable.java
index 2a1d3c1c5234ecc34d3bbf02b5e0e8bf0bed84d2..2bbbcb17abf77556cbc6160cfe60335364c61de3 100644
--- a/src/main/java/caosdb/server/utils/Undoable.java
+++ b/src/main/java/org/caosdb/server/utils/Undoable.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 public interface Undoable {
 
diff --git a/src/main/java/caosdb/server/utils/Utils.java b/src/main/java/org/caosdb/server/utils/Utils.java
similarity index 99%
rename from src/main/java/caosdb/server/utils/Utils.java
rename to src/main/java/org/caosdb/server/utils/Utils.java
index 752d828d0e89e790aa7d42e1358b91d3fb5f3c1b..b21ba0f550e1f855ca21e26c1cfd04bb75107223 100644
--- a/src/main/java/caosdb/server/utils/Utils.java
+++ b/src/main/java/org/caosdb/server/utils/Utils.java
@@ -20,12 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 import static java.net.URLDecoder.decode;
 import static java.net.URLEncoder.encode;
 
-import caosdb.server.entity.Message;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
@@ -36,6 +35,7 @@ import java.text.DecimalFormat;
 import java.util.Scanner;
 import java.util.regex.Pattern;
 import org.apache.commons.codec.binary.Base32;
+import org.caosdb.server.entity.Message;
 import org.jdom2.Document;
 import org.jdom2.Element;
 import org.jdom2.output.Format;
diff --git a/src/main/java/caosdb/server/utils/WebinterfaceUtils.java b/src/main/java/org/caosdb/server/utils/WebinterfaceUtils.java
similarity index 97%
rename from src/main/java/caosdb/server/utils/WebinterfaceUtils.java
rename to src/main/java/org/caosdb/server/utils/WebinterfaceUtils.java
index 2fef9ecaa4972bb12ddfccae4df3f57f493bbe08..1aff4de329bf3f32ba599a449c101b7fbe30423f 100644
--- a/src/main/java/caosdb/server/utils/WebinterfaceUtils.java
+++ b/src/main/java/org/caosdb/server/utils/WebinterfaceUtils.java
@@ -16,12 +16,8 @@
  *
  * <p>** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.resource.AbstractCaosDBServerResource;
-import caosdb.server.resource.Webinterface;
 import java.io.File;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
@@ -33,6 +29,10 @@ import java.util.Map;
 import java.util.stream.Stream;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.resource.AbstractCaosDBServerResource;
+import org.caosdb.server.resource.Webinterface;
 import org.restlet.data.Reference;
 
 /**
diff --git a/src/main/java/caosdb/server/utils/fsm/ActionNotAllowedException.java b/src/main/java/org/caosdb/server/utils/fsm/ActionNotAllowedException.java
similarity index 91%
rename from src/main/java/caosdb/server/utils/fsm/ActionNotAllowedException.java
rename to src/main/java/org/caosdb/server/utils/fsm/ActionNotAllowedException.java
index eedd272c5d18fae84dd17b1f2eec0e24aa0730e9..ad643a0aade5e8285fa0aea7a92026995b9ccd61 100644
--- a/src/main/java/caosdb/server/utils/fsm/ActionNotAllowedException.java
+++ b/src/main/java/org/caosdb/server/utils/fsm/ActionNotAllowedException.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils.fsm;
+package org.caosdb.server.utils.fsm;
 
 public class ActionNotAllowedException extends RuntimeException {
 
@@ -30,7 +30,7 @@ public class ActionNotAllowedException extends RuntimeException {
     this.action = action;
   }
 
-  private static final long serialVersionUID = -7723481489788838572L;
+  private static final long serialVersionUID = -4324962066954446942L;
 
   @Override
   public String getMessage() {
diff --git a/src/main/java/caosdb/server/utils/fsm/FiniteStateMachine.java b/src/main/java/org/caosdb/server/utils/fsm/FiniteStateMachine.java
similarity index 98%
rename from src/main/java/caosdb/server/utils/fsm/FiniteStateMachine.java
rename to src/main/java/org/caosdb/server/utils/fsm/FiniteStateMachine.java
index 7439d95a1820c91e93290b805de4fa0bdb31c273..f8bdccac726bfe25d7644f6dc689b54113f981c7 100644
--- a/src/main/java/caosdb/server/utils/fsm/FiniteStateMachine.java
+++ b/src/main/java/org/caosdb/server/utils/fsm/FiniteStateMachine.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils.fsm;
+package org.caosdb.server.utils.fsm;
 
 import java.util.List;
 import java.util.Map;
diff --git a/src/main/java/caosdb/server/utils/fsm/MissingImplementationException.java b/src/main/java/org/caosdb/server/utils/fsm/MissingImplementationException.java
similarity index 91%
rename from src/main/java/caosdb/server/utils/fsm/MissingImplementationException.java
rename to src/main/java/org/caosdb/server/utils/fsm/MissingImplementationException.java
index 761abf2fe7d8e45438ae06717d7de63ac56afb45..8282e5dd7e7bea4368acf2c7e77b536fab301ad6 100644
--- a/src/main/java/caosdb/server/utils/fsm/MissingImplementationException.java
+++ b/src/main/java/org/caosdb/server/utils/fsm/MissingImplementationException.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils.fsm;
+package org.caosdb.server.utils.fsm;
 
 public class MissingImplementationException extends Exception {
 
@@ -28,5 +28,5 @@ public class MissingImplementationException extends Exception {
     super("The state `" + s.toString() + "` has no implementation.");
   }
 
-  private static final long serialVersionUID = -1844861392151564478L;
+  private static final long serialVersionUID = -1138551658177420875L;
 }
diff --git a/src/main/java/caosdb/server/utils/fsm/State.java b/src/main/java/org/caosdb/server/utils/fsm/State.java
similarity index 96%
rename from src/main/java/caosdb/server/utils/fsm/State.java
rename to src/main/java/org/caosdb/server/utils/fsm/State.java
index 66073d4d6b2e092d24cf94a18d73216d461f53c9..81b76aa599a90de2c8b3c8ddd295e62ce47dae12 100644
--- a/src/main/java/caosdb/server/utils/fsm/State.java
+++ b/src/main/java/org/caosdb/server/utils/fsm/State.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils.fsm;
+package org.caosdb.server.utils.fsm;
 
 import java.util.List;
 
diff --git a/src/main/java/caosdb/server/utils/fsm/StateNotReachableException.java b/src/main/java/org/caosdb/server/utils/fsm/StateNotReachableException.java
similarity index 90%
rename from src/main/java/caosdb/server/utils/fsm/StateNotReachableException.java
rename to src/main/java/org/caosdb/server/utils/fsm/StateNotReachableException.java
index 9dbafcd940d5d07bc89d0aa110a39224a760c340..3970f60e5cf6e86096b0992419b14350c43b42ee 100644
--- a/src/main/java/caosdb/server/utils/fsm/StateNotReachableException.java
+++ b/src/main/java/org/caosdb/server/utils/fsm/StateNotReachableException.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils.fsm;
+package org.caosdb.server.utils.fsm;
 
 public class StateNotReachableException extends Exception {
 
@@ -28,5 +28,5 @@ public class StateNotReachableException extends Exception {
     super("The state `" + s.toString() + "` is not reachable.");
   }
 
-  private static final long serialVersionUID = -162428821672960032L;
+  private static final long serialVersionUID = -1826791324169513493L;
 }
diff --git a/src/main/java/caosdb/server/utils/fsm/StrategyFiniteStateMachine.java b/src/main/java/org/caosdb/server/utils/fsm/StrategyFiniteStateMachine.java
similarity index 98%
rename from src/main/java/caosdb/server/utils/fsm/StrategyFiniteStateMachine.java
rename to src/main/java/org/caosdb/server/utils/fsm/StrategyFiniteStateMachine.java
index ad5d50dc49d9e0feca0586ccfdb620c26b5d483d..d37d83783bd7f4aaa1db573f76315d0b51bd5fbb 100644
--- a/src/main/java/caosdb/server/utils/fsm/StrategyFiniteStateMachine.java
+++ b/src/main/java/org/caosdb/server/utils/fsm/StrategyFiniteStateMachine.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils.fsm;
+package org.caosdb.server.utils.fsm;
 
 import java.util.Map;
 
diff --git a/src/main/java/caosdb/server/utils/fsm/Transition.java b/src/main/java/org/caosdb/server/utils/fsm/Transition.java
similarity index 96%
rename from src/main/java/caosdb/server/utils/fsm/Transition.java
rename to src/main/java/org/caosdb/server/utils/fsm/Transition.java
index 432adc17b9e1c664b95c0e85f4f6918793bf39ae..41921b76cfc7ceed6e396551807e4b199486f0cf 100644
--- a/src/main/java/caosdb/server/utils/fsm/Transition.java
+++ b/src/main/java/org/caosdb/server/utils/fsm/Transition.java
@@ -20,6 +20,6 @@
  *
  * ** end header
  */
-package caosdb.server.utils.fsm;
+package org.caosdb.server.utils.fsm;
 
 public interface Transition {}
diff --git a/src/main/java/caosdb/server/utils/fsm/TransitionNotAllowedException.java b/src/main/java/org/caosdb/server/utils/fsm/TransitionNotAllowedException.java
similarity index 91%
rename from src/main/java/caosdb/server/utils/fsm/TransitionNotAllowedException.java
rename to src/main/java/org/caosdb/server/utils/fsm/TransitionNotAllowedException.java
index e5b56f7f55438b1b40ee153c65eeafc60e959448..f0547704e250db5c5088c5019a85974c2f4e6254 100644
--- a/src/main/java/caosdb/server/utils/fsm/TransitionNotAllowedException.java
+++ b/src/main/java/org/caosdb/server/utils/fsm/TransitionNotAllowedException.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.utils.fsm;
+package org.caosdb.server.utils.fsm;
 
 public class TransitionNotAllowedException extends Exception {
 
-  private static final long serialVersionUID = -7688041374190101361L;
+  private static final long serialVersionUID = -7236981582249457939L;
 
   public TransitionNotAllowedException(final State state, final Transition transition) {
     super(
diff --git a/src/main/java/caosdb/server/utils/mail/Mail.java b/src/main/java/org/caosdb/server/utils/mail/Mail.java
similarity index 96%
rename from src/main/java/caosdb/server/utils/mail/Mail.java
rename to src/main/java/org/caosdb/server/utils/mail/Mail.java
index c2036f909009a5ac0f294c6b0abed572e2d45790..36588fc1b3611efad17b80c9122208aa2292870f 100644
--- a/src/main/java/caosdb/server/utils/mail/Mail.java
+++ b/src/main/java/org/caosdb/server/utils/mail/Mail.java
@@ -20,11 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.utils.mail;
+package org.caosdb.server.utils.mail;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
 import java.util.Date;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
 
 public class Mail {
 
diff --git a/src/main/java/caosdb/server/utils/mail/MailFormatter.java b/src/main/java/org/caosdb/server/utils/mail/MailFormatter.java
similarity index 96%
rename from src/main/java/caosdb/server/utils/mail/MailFormatter.java
rename to src/main/java/org/caosdb/server/utils/mail/MailFormatter.java
index 31ff4777d3c9969f36d1c03512f7c9059d8c0fcf..2e31724d32527a3f171285513b2014be123e0921 100644
--- a/src/main/java/caosdb/server/utils/mail/MailFormatter.java
+++ b/src/main/java/org/caosdb/server/utils/mail/MailFormatter.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils.mail;
+package org.caosdb.server.utils.mail;
 
 public interface MailFormatter {
 
diff --git a/src/main/java/caosdb/server/utils/mail/MailHandler.java b/src/main/java/org/caosdb/server/utils/mail/MailHandler.java
similarity index 96%
rename from src/main/java/caosdb/server/utils/mail/MailHandler.java
rename to src/main/java/org/caosdb/server/utils/mail/MailHandler.java
index 24395e5935f8bb8887a23f16c95b74fc07a15b90..ebdf88dad42028c223784501216002cb5f5196a9 100644
--- a/src/main/java/caosdb/server/utils/mail/MailHandler.java
+++ b/src/main/java/org/caosdb/server/utils/mail/MailHandler.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils.mail;
+package org.caosdb.server.utils.mail;
 
 public interface MailHandler {
 
diff --git a/src/main/java/caosdb/server/utils/mail/Mailable.java b/src/main/java/org/caosdb/server/utils/mail/Mailable.java
similarity index 96%
rename from src/main/java/caosdb/server/utils/mail/Mailable.java
rename to src/main/java/org/caosdb/server/utils/mail/Mailable.java
index 6a2362c75b0ba10dc09358fc64d15aa807e45979..fc679aac61afee3cc8d5d47610a6c84ed0be36c0 100644
--- a/src/main/java/caosdb/server/utils/mail/Mailable.java
+++ b/src/main/java/org/caosdb/server/utils/mail/Mailable.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils.mail;
+package org.caosdb.server.utils.mail;
 
 public interface Mailable {
 
diff --git a/src/main/java/caosdb/server/utils/mail/SendMailHandler.java b/src/main/java/org/caosdb/server/utils/mail/SendMailHandler.java
similarity index 97%
rename from src/main/java/caosdb/server/utils/mail/SendMailHandler.java
rename to src/main/java/org/caosdb/server/utils/mail/SendMailHandler.java
index fdf060e6f12a5f7939252e968bfe070c788b01b8..88a487c5b02ed9279520d5584fc13582e967a770 100644
--- a/src/main/java/caosdb/server/utils/mail/SendMailHandler.java
+++ b/src/main/java/org/caosdb/server/utils/mail/SendMailHandler.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils.mail;
+package org.caosdb.server.utils.mail;
 
 import java.io.BufferedWriter;
 import java.io.IOException;
diff --git a/src/main/java/caosdb/server/utils/mail/SimpleMailFormatter.java b/src/main/java/org/caosdb/server/utils/mail/SimpleMailFormatter.java
similarity index 98%
rename from src/main/java/caosdb/server/utils/mail/SimpleMailFormatter.java
rename to src/main/java/org/caosdb/server/utils/mail/SimpleMailFormatter.java
index 0241c13304b3f2e9b632033d8f0fafe1a6500a87..c1d5ce6b9967c41f82ecf24539f435af87a0899c 100644
--- a/src/main/java/caosdb/server/utils/mail/SimpleMailFormatter.java
+++ b/src/main/java/org/caosdb/server/utils/mail/SimpleMailFormatter.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils.mail;
+package org.caosdb.server.utils.mail;
 
 import javax.mail.internet.MailDateFormat;
 
diff --git a/src/main/java/caosdb/server/utils/mail/ToFileHandler.java b/src/main/java/org/caosdb/server/utils/mail/ToFileHandler.java
similarity index 94%
rename from src/main/java/caosdb/server/utils/mail/ToFileHandler.java
rename to src/main/java/org/caosdb/server/utils/mail/ToFileHandler.java
index 8a7a012bc6e2f5b9dbf02ca9286c2c2c5ee3c6d5..24a6da787925a352b2675edf3000ad7f5d1f8dbb 100644
--- a/src/main/java/caosdb/server/utils/mail/ToFileHandler.java
+++ b/src/main/java/org/caosdb/server/utils/mail/ToFileHandler.java
@@ -20,15 +20,15 @@
  *
  * ** end header
  */
-package caosdb.server.utils.mail;
+package org.caosdb.server.utils.mail;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.PrintWriter;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
 
 public class ToFileHandler implements MailHandler {
 
diff --git a/src/main/java/caosdb/unit/CaosDBSystemOfUnits.java b/src/main/java/org/caosdb/unit/CaosDBSystemOfUnits.java
similarity index 99%
rename from src/main/java/caosdb/unit/CaosDBSystemOfUnits.java
rename to src/main/java/org/caosdb/unit/CaosDBSystemOfUnits.java
index be7d5a0e023b21966feac0e590d848c1c67fcd4b..ed78c5cf41225ddc7adb36869a779d1c4ec57d67 100644
--- a/src/main/java/caosdb/unit/CaosDBSystemOfUnits.java
+++ b/src/main/java/org/caosdb/unit/CaosDBSystemOfUnits.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.unit;
+package org.caosdb.unit;
 
 import de.timmfitschen.easyunits.BaseUnit;
 import de.timmfitschen.easyunits.DefaultSystemOfUnitsFactory;
diff --git a/src/main/java/caosdb/unit/Converter.java b/src/main/java/org/caosdb/unit/Converter.java
similarity index 97%
rename from src/main/java/caosdb/unit/Converter.java
rename to src/main/java/org/caosdb/unit/Converter.java
index db42c12e4bb3ece5291e90b4f013184223b94d14..dfe63477d9c3e9639a58845b8034028befb039bb 100644
--- a/src/main/java/caosdb/unit/Converter.java
+++ b/src/main/java/org/caosdb/unit/Converter.java
@@ -20,6 +20,6 @@
  *
  * ** end header
  */
-package caosdb.unit;
+package org.caosdb.unit;
 
 public interface Converter {}
diff --git a/src/main/java/caosdb/unit/LinearConverter.java b/src/main/java/org/caosdb/unit/LinearConverter.java
similarity index 97%
rename from src/main/java/caosdb/unit/LinearConverter.java
rename to src/main/java/org/caosdb/unit/LinearConverter.java
index 7d792d220f3ca878b002c045e3f0f3b0b9a4c3dc..8eac2d7e07dbe9f1594b368968b06d00034ea95e 100644
--- a/src/main/java/caosdb/unit/LinearConverter.java
+++ b/src/main/java/org/caosdb/unit/LinearConverter.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.unit;
+package org.caosdb.unit;
 
 public interface LinearConverter extends Converter {
 
diff --git a/src/main/java/caosdb/unit/Unit.java b/src/main/java/org/caosdb/unit/Unit.java
similarity index 97%
rename from src/main/java/caosdb/unit/Unit.java
rename to src/main/java/org/caosdb/unit/Unit.java
index d816369b105e4e0b5a7cffd994c4873bb101d046..9e676773013f30d5aa30b60a1357a130f3c5a941 100644
--- a/src/main/java/caosdb/unit/Unit.java
+++ b/src/main/java/org/caosdb/unit/Unit.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.unit;
+package org.caosdb.unit;
 
 public interface Unit {
 
diff --git a/src/main/java/caosdb/unit/UnknownUnit.java b/src/main/java/org/caosdb/unit/UnknownUnit.java
similarity index 97%
rename from src/main/java/caosdb/unit/UnknownUnit.java
rename to src/main/java/org/caosdb/unit/UnknownUnit.java
index 592b78a2673aee7720892952eb5c119bf5f7235c..70ad3546ece269efbdc224b7d6d12f9448a21938 100644
--- a/src/main/java/caosdb/unit/UnknownUnit.java
+++ b/src/main/java/org/caosdb/unit/UnknownUnit.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.unit;
+package org.caosdb.unit;
 
 public class UnknownUnit extends WrappedUnit implements Unit {
 
diff --git a/src/main/java/caosdb/unit/WrappedConverter.java b/src/main/java/org/caosdb/unit/WrappedConverter.java
similarity index 97%
rename from src/main/java/caosdb/unit/WrappedConverter.java
rename to src/main/java/org/caosdb/unit/WrappedConverter.java
index 91868cc36c9a07ba688f8b9a40896de6d07d89c1..f23be0394daa4a680e642a3d5f018e8b21db4235 100644
--- a/src/main/java/caosdb/unit/WrappedConverter.java
+++ b/src/main/java/org/caosdb/unit/WrappedConverter.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.unit;
+package org.caosdb.unit;
 
 public class WrappedConverter implements Converter {
 
diff --git a/src/main/java/caosdb/unit/WrappedLinearConverter.java b/src/main/java/org/caosdb/unit/WrappedLinearConverter.java
similarity index 99%
rename from src/main/java/caosdb/unit/WrappedLinearConverter.java
rename to src/main/java/org/caosdb/unit/WrappedLinearConverter.java
index de9590c391e96706666acdea298a2115d672e58c..b90b32ccee7395800f62ad91cdc960c4b93d0813 100644
--- a/src/main/java/caosdb/unit/WrappedLinearConverter.java
+++ b/src/main/java/org/caosdb/unit/WrappedLinearConverter.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.unit;
+package org.caosdb.unit;
 
 import java.text.DecimalFormat;
 import java.text.DecimalFormatSymbols;
diff --git a/src/main/java/caosdb/unit/WrappedUnit.java b/src/main/java/org/caosdb/unit/WrappedUnit.java
similarity index 98%
rename from src/main/java/caosdb/unit/WrappedUnit.java
rename to src/main/java/org/caosdb/unit/WrappedUnit.java
index b5f5eb8beb0e7c9ea990484695a33460fb04d7bd..c29ee5b5853423d14cd602c393c779673f6b0ed4 100644
--- a/src/main/java/caosdb/unit/WrappedUnit.java
+++ b/src/main/java/org/caosdb/unit/WrappedUnit.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.unit;
+package org.caosdb.unit;
 
 import de.timmfitschen.easyunits.conversion.LinearConverter;
 
diff --git a/src/test/java/caosdb/CaosDBTestClass.java b/src/test/java/org/caosdb/CaosDBTestClass.java
similarity index 98%
rename from src/test/java/caosdb/CaosDBTestClass.java
rename to src/test/java/org/caosdb/CaosDBTestClass.java
index 6b894c75b097b4aa324a432b6338f84a0527f84c..d22f9ade8ed43b5e44e505b70e7d2b1d704e211b 100644
--- a/src/test/java/caosdb/CaosDBTestClass.java
+++ b/src/test/java/org/caosdb/CaosDBTestClass.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb;
+package org.caosdb;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/src/test/java/caosdb/datetime/DateTimeTest.java b/src/test/java/org/caosdb/datetime/DateTimeTest.java
similarity index 99%
rename from src/test/java/caosdb/datetime/DateTimeTest.java
rename to src/test/java/org/caosdb/datetime/DateTimeTest.java
index 032ab240eaa083d63acdd033431b6f0d2cfcdfd9..81e0edf748432daf8c023b421b6119a3bf14f2d4 100644
--- a/src/test/java/caosdb/datetime/DateTimeTest.java
+++ b/src/test/java/org/caosdb/datetime/DateTimeTest.java
@@ -20,20 +20,20 @@
  *
  * ** end header
  */
-package caosdb.datetime;
+package org.caosdb.datetime;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 import java.io.IOException;
 import java.sql.SQLException;
 import java.sql.Timestamp;
 import java.time.ZoneId;
 import java.util.GregorianCalendar;
 import java.util.TimeZone;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
diff --git a/src/test/java/caosdb/server/Misc.java b/src/test/java/org/caosdb/server/Misc.java
similarity index 97%
rename from src/test/java/caosdb/server/Misc.java
rename to src/test/java/org/caosdb/server/Misc.java
index 2988bae6aa178ace45f41e03da5c54f08114e485..f6d1364644d803abf194532471f9e1775fa990de 100644
--- a/src/test/java/caosdb/server/Misc.java
+++ b/src/test/java/org/caosdb/server/Misc.java
@@ -20,16 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server;
+package org.caosdb.server;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import caosdb.server.database.misc.TransactionBenchmark;
-import caosdb.server.jobs.core.CheckFileStorageConsistency;
-import caosdb.server.utils.CronJob;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -40,6 +37,9 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.jobs.core.CheckFileStorageConsistency;
+import org.caosdb.server.utils.CronJob;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
diff --git a/src/test/java/caosdb/server/accessControl/TestDefaultPamScriptCaller.java b/src/test/java/org/caosdb/server/accessControl/TestDefaultPamScriptCaller.java
similarity index 98%
rename from src/test/java/caosdb/server/accessControl/TestDefaultPamScriptCaller.java
rename to src/test/java/org/caosdb/server/accessControl/TestDefaultPamScriptCaller.java
index bb207aadcdef6ba9fdeecc2b0f32cd9f70a50512..21197f4fa430283898c87741df4c765b28152f33 100644
--- a/src/test/java/caosdb/server/accessControl/TestDefaultPamScriptCaller.java
+++ b/src/test/java/org/caosdb/server/accessControl/TestDefaultPamScriptCaller.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.accessControl;
+package org.caosdb.server.accessControl;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
diff --git a/src/test/java/caosdb/server/authentication/AuthTokenTest.java b/src/test/java/org/caosdb/server/authentication/AuthTokenTest.java
similarity index 92%
rename from src/test/java/caosdb/server/authentication/AuthTokenTest.java
rename to src/test/java/org/caosdb/server/authentication/AuthTokenTest.java
index 9f344889051d8508125dc5f6417d40839c44bd3d..ca19603230bf6aa989c495fbadabd0989c2a9790 100644
--- a/src/test/java/caosdb/server/authentication/AuthTokenTest.java
+++ b/src/test/java/org/caosdb/server/authentication/AuthTokenTest.java
@@ -20,30 +20,11 @@
  *
  * ** end header
  */
-package caosdb.server.authentication;
+package org.caosdb.server.authentication;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.accessControl.AnonymousAuthenticationToken;
-import caosdb.server.accessControl.AuthenticationUtils;
-import caosdb.server.accessControl.Config;
-import caosdb.server.accessControl.OneTimeAuthenticationToken;
-import caosdb.server.accessControl.Principal;
-import caosdb.server.accessControl.SelfValidatingAuthenticationToken;
-import caosdb.server.accessControl.SessionToken;
-import caosdb.server.accessControl.SessionTokenRealm;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.backend.interfaces.RetrievePasswordValidatorImpl;
-import caosdb.server.database.backend.interfaces.RetrievePermissionRulesImpl;
-import caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
-import caosdb.server.database.backend.interfaces.RetrieveUserImpl;
-import caosdb.server.resource.TestScriptingResource.RetrievePasswordValidator;
-import caosdb.server.resource.TestScriptingResource.RetrievePermissionRules;
-import caosdb.server.resource.TestScriptingResource.RetrieveRole;
-import caosdb.server.resource.TestScriptingResource.RetrieveUser;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectReader;
 import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
@@ -57,6 +38,25 @@ import org.apache.commons.io.input.CharSequenceInputStream;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authc.AuthenticationException;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.accessControl.AnonymousAuthenticationToken;
+import org.caosdb.server.accessControl.AuthenticationUtils;
+import org.caosdb.server.accessControl.Config;
+import org.caosdb.server.accessControl.OneTimeAuthenticationToken;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.accessControl.SelfValidatingAuthenticationToken;
+import org.caosdb.server.accessControl.SessionToken;
+import org.caosdb.server.accessControl.SessionTokenRealm;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.backend.interfaces.RetrievePasswordValidatorImpl;
+import org.caosdb.server.database.backend.interfaces.RetrievePermissionRulesImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveUserImpl;
+import org.caosdb.server.resource.TestScriptingResource.RetrievePasswordValidator;
+import org.caosdb.server.resource.TestScriptingResource.RetrievePermissionRules;
+import org.caosdb.server.resource.TestScriptingResource.RetrieveRole;
+import org.caosdb.server.resource.TestScriptingResource.RetrieveUser;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
diff --git a/src/test/java/caosdb/server/caching/TestCaching.java b/src/test/java/org/caosdb/server/caching/TestCaching.java
similarity index 89%
rename from src/test/java/caosdb/server/caching/TestCaching.java
rename to src/test/java/org/caosdb/server/caching/TestCaching.java
index 56d8e750ab75663e29808a0f97962df88006d080..40387790b369a711ff95668821cbe4e64d813150 100644
--- a/src/test/java/caosdb/server/caching/TestCaching.java
+++ b/src/test/java/org/caosdb/server/caching/TestCaching.java
@@ -1,14 +1,14 @@
-package caosdb.server.caching;
+package org.caosdb.server.caching;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.accessControl.Pam;
-import caosdb.server.database.backend.transaction.RetrieveProperties;
 import java.io.IOException;
 import org.apache.commons.jcs.JCS;
 import org.apache.commons.jcs.access.CacheAccess;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.accessControl.Pam;
+import org.caosdb.server.database.backend.transaction.RetrieveProperties;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
diff --git a/src/test/java/caosdb/server/caching/TestNoCaching.java b/src/test/java/org/caosdb/server/caching/TestNoCaching.java
similarity index 78%
rename from src/test/java/caosdb/server/caching/TestNoCaching.java
rename to src/test/java/org/caosdb/server/caching/TestNoCaching.java
index dfab9de67b8c79871b6d2fd70fc6e25a1c231230..bcd2f08f128fe58de760ec9e1abca2b0837e7136 100644
--- a/src/test/java/caosdb/server/caching/TestNoCaching.java
+++ b/src/test/java/org/caosdb/server/caching/TestNoCaching.java
@@ -1,13 +1,13 @@
-package caosdb.server.caching;
+package org.caosdb.server.caching;
 
 import static org.junit.Assert.assertEquals;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.database.backend.transaction.RetrieveProperties;
 import java.io.IOException;
 import org.apache.commons.jcs.JCS;
 import org.apache.commons.jcs.access.CacheAccess;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.database.backend.transaction.RetrieveProperties;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
diff --git a/src/test/java/caosdb/server/database/DatabaseMonitorTest.java b/src/test/java/org/caosdb/server/database/DatabaseMonitorTest.java
similarity index 99%
rename from src/test/java/caosdb/server/database/DatabaseMonitorTest.java
rename to src/test/java/org/caosdb/server/database/DatabaseMonitorTest.java
index 20f2cdf64ca6d17ab1ea9ec40d6e20a942595ce5..554baec079ed17d332dff47f0afb57405913dc33 100644
--- a/src/test/java/caosdb/server/database/DatabaseMonitorTest.java
+++ b/src/test/java/org/caosdb/server/database/DatabaseMonitorTest.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.database;
+package org.caosdb.server.database;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/src/test/java/caosdb/server/database/InsertTest.java b/src/test/java/org/caosdb/server/database/InsertTest.java
similarity index 96%
rename from src/test/java/caosdb/server/database/InsertTest.java
rename to src/test/java/org/caosdb/server/database/InsertTest.java
index 70fef365c6c88699b5c566ea48c0de2a1c631fa5..7b00cacfe7c3454539cb6823d62bc3af9b4d7ce7 100644
--- a/src/test/java/caosdb/server/database/InsertTest.java
+++ b/src/test/java/org/caosdb/server/database/InsertTest.java
@@ -20,23 +20,23 @@
  *
  * ** end header
  */
-package caosdb.server.database;
+package org.caosdb.server.database;
 
-import static caosdb.server.database.DatabaseUtils.deriveStage1Inserts;
-import static caosdb.server.database.DatabaseUtils.deriveStage2Inserts;
+import static org.caosdb.server.database.DatabaseUtils.deriveStage1Inserts;
+import static org.caosdb.server.database.DatabaseUtils.deriveStage2Inserts;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import caosdb.server.datatype.CollectionValue;
-import caosdb.server.datatype.GenericValue;
-import caosdb.server.datatype.SingleValue;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Role;
-import caosdb.server.entity.StatementStatus;
-import caosdb.server.entity.wrapper.Property;
 import java.util.LinkedList;
+import org.caosdb.server.datatype.CollectionValue;
+import org.caosdb.server.datatype.GenericValue;
+import org.caosdb.server.datatype.SingleValue;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.entity.StatementStatus;
+import org.caosdb.server.entity.wrapper.Property;
 import org.junit.Test;
 
 public class InsertTest {
diff --git a/src/test/java/caosdb/server/database/backend/transaction/RetrieveFullEntityTest.java b/src/test/java/org/caosdb/server/database/backend/transaction/RetrieveFullEntityTest.java
similarity index 87%
rename from src/test/java/caosdb/server/database/backend/transaction/RetrieveFullEntityTest.java
rename to src/test/java/org/caosdb/server/database/backend/transaction/RetrieveFullEntityTest.java
index 78c2ae8206fbe5aac33ee4d9d9d73b2fae5965ef..52b4c951d939f097258ec40ed16b6fd99784f9bd 100644
--- a/src/test/java/caosdb/server/database/backend/transaction/RetrieveFullEntityTest.java
+++ b/src/test/java/org/caosdb/server/database/backend/transaction/RetrieveFullEntityTest.java
@@ -20,20 +20,20 @@
  *
  * ** end header
  */
-package caosdb.server.database.backend.transaction;
+package org.caosdb.server.database.backend.transaction;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-import caosdb.server.datatype.ReferenceValue;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.wrapper.Property;
-import caosdb.server.entity.xml.PropertyToElementStrategyTest;
-import caosdb.server.query.Query.Selection;
 import java.util.ArrayList;
 import java.util.List;
+import org.caosdb.server.datatype.ReferenceValue;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.wrapper.Property;
+import org.caosdb.server.entity.xml.PropertyToElementStrategyTest;
+import org.caosdb.server.query.Query.Selection;
 import org.junit.Test;
 
 public class RetrieveFullEntityTest {
diff --git a/src/test/java/caosdb/server/database/backend/transactions/TestGetAllNames.java b/src/test/java/org/caosdb/server/database/backend/transactions/TestGetAllNames.java
similarity index 73%
rename from src/test/java/caosdb/server/database/backend/transactions/TestGetAllNames.java
rename to src/test/java/org/caosdb/server/database/backend/transactions/TestGetAllNames.java
index 1c67d5cba56cd3bfb1516788a0187f9bc673f5e6..73d434218dcd0962d31a798af510277708cf1a32 100644
--- a/src/test/java/caosdb/server/database/backend/transactions/TestGetAllNames.java
+++ b/src/test/java/org/caosdb/server/database/backend/transactions/TestGetAllNames.java
@@ -1,18 +1,18 @@
-package caosdb.server.database.backend.transactions;
+package org.caosdb.server.database.backend.transactions;
 
 import static org.junit.Assert.assertEquals;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.GetAllNamesImpl;
-import caosdb.server.database.backend.transaction.GetAllNames;
-import caosdb.server.database.misc.TransactionBenchmark;
-import caosdb.server.database.proto.SparseEntity;
-import caosdb.server.entity.EntityInterface;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.GetAllNamesImpl;
+import org.caosdb.server.database.backend.transaction.GetAllNames;
+import org.caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.database.proto.SparseEntity;
+import org.caosdb.server.entity.EntityInterface;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
diff --git a/src/test/java/caosdb/server/datatype/testBoolean.java b/src/test/java/org/caosdb/server/datatype/testBoolean.java
similarity index 95%
rename from src/test/java/caosdb/server/datatype/testBoolean.java
rename to src/test/java/org/caosdb/server/datatype/testBoolean.java
index 3e20830e9261c70fa3ead33e34d12ed1e9fc2f25..acf0578a332bb4ef21e1ff9eecce4037fc78540c 100644
--- a/src/test/java/caosdb/server/datatype/testBoolean.java
+++ b/src/test/java/org/caosdb/server/datatype/testBoolean.java
@@ -20,16 +20,16 @@
  *
  * ** end header
  */
-package caosdb.server.datatype;
+package org.caosdb.server.datatype;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import caosdb.server.datatype.AbstractDatatype.Table;
-import caosdb.server.entity.Message;
-import caosdb.server.utils.ServerMessages;
+import org.caosdb.server.datatype.AbstractDatatype.Table;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.utils.ServerMessages;
 import org.junit.Test;
 
 public class testBoolean {
diff --git a/src/test/java/caosdb/server/entity/SelectionTest.java b/src/test/java/org/caosdb/server/entity/SelectionTest.java
similarity index 98%
rename from src/test/java/caosdb/server/entity/SelectionTest.java
rename to src/test/java/org/caosdb/server/entity/SelectionTest.java
index 068a87c48a0257925d120613f83b4741173873d1..0ede3a970be6504ef0a89868aed40e4cadb141d0 100644
--- a/src/test/java/caosdb/server/entity/SelectionTest.java
+++ b/src/test/java/org/caosdb/server/entity/SelectionTest.java
@@ -22,17 +22,17 @@
  *
  * ** end header
  */
-package caosdb.server.entity;
+package org.caosdb.server.entity;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.entity.xml.SetFieldStrategy;
-import caosdb.server.query.Query;
-import caosdb.server.query.Query.Selection;
 import java.io.IOException;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.entity.xml.SetFieldStrategy;
+import org.caosdb.server.query.Query;
+import org.caosdb.server.query.Query.Selection;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
diff --git a/src/test/java/caosdb/server/entity/container/PropertyContainerTest.java b/src/test/java/org/caosdb/server/entity/container/PropertyContainerTest.java
similarity index 86%
rename from src/test/java/caosdb/server/entity/container/PropertyContainerTest.java
rename to src/test/java/org/caosdb/server/entity/container/PropertyContainerTest.java
index 0678e83072a4f6f3f93aacb8a9f4196d5a566c2e..0428af146f7b4a191fa6be679e01af45aff315f2 100644
--- a/src/test/java/caosdb/server/entity/container/PropertyContainerTest.java
+++ b/src/test/java/org/caosdb/server/entity/container/PropertyContainerTest.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.entity.container;
+package org.caosdb.server.entity.container;
 
 import static org.junit.Assert.assertEquals;
 
-import caosdb.server.datatype.GenericValue;
-import caosdb.server.datatype.ReferenceValue;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.Role;
-import caosdb.server.entity.wrapper.Property;
-import caosdb.server.entity.xml.PropertyToElementStrategyTest;
-import caosdb.server.entity.xml.SetFieldStrategy;
+import org.caosdb.server.datatype.GenericValue;
+import org.caosdb.server.datatype.ReferenceValue;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.entity.wrapper.Property;
+import org.caosdb.server.entity.xml.PropertyToElementStrategyTest;
+import org.caosdb.server.entity.xml.SetFieldStrategy;
 import org.jdom2.Element;
 import org.junit.BeforeClass;
 import org.junit.Test;
diff --git a/src/test/java/caosdb/server/entity/xml/PropertyToElementStrategyTest.java b/src/test/java/org/caosdb/server/entity/xml/PropertyToElementStrategyTest.java
similarity index 91%
rename from src/test/java/caosdb/server/entity/xml/PropertyToElementStrategyTest.java
rename to src/test/java/org/caosdb/server/entity/xml/PropertyToElementStrategyTest.java
index 0d60ebd70feebe2e8e8810f296908e8b3a74100e..99cf2706937dce10b8db3a1305053356587e139a 100644
--- a/src/test/java/caosdb/server/entity/xml/PropertyToElementStrategyTest.java
+++ b/src/test/java/org/caosdb/server/entity/xml/PropertyToElementStrategyTest.java
@@ -20,17 +20,17 @@
  *
  * ** end header
  */
-package caosdb.server.entity.xml;
+package org.caosdb.server.entity.xml;
 
 import static org.junit.Assert.assertEquals;
 
-import caosdb.server.datatype.GenericValue;
-import caosdb.server.datatype.ReferenceValue;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.Role;
-import caosdb.server.entity.wrapper.Property;
-import caosdb.server.query.Query.Selection;
+import org.caosdb.server.datatype.GenericValue;
+import org.caosdb.server.datatype.ReferenceValue;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.Role;
+import org.caosdb.server.entity.wrapper.Property;
+import org.caosdb.server.query.Query.Selection;
 import org.jdom2.Element;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/src/test/java/caosdb/server/jobs/ScheduleTest.java b/src/test/java/org/caosdb/server/jobs/ScheduleTest.java
similarity index 97%
rename from src/test/java/caosdb/server/jobs/ScheduleTest.java
rename to src/test/java/org/caosdb/server/jobs/ScheduleTest.java
index 73c27d95af64b70d63ec8d1bed7fab0c0d41ffaa..7ad1d6112e8b7bd3a29042d5f6ca82709ae4100a 100644
--- a/src/test/java/caosdb/server/jobs/ScheduleTest.java
+++ b/src/test/java/org/caosdb/server/jobs/ScheduleTest.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.jobs;
+package org.caosdb.server.jobs;
 
 import static org.junit.Assert.fail;
 
diff --git a/src/test/java/caosdb/server/jobs/core/TestInsertFilesInDir.java b/src/test/java/org/caosdb/server/jobs/core/TestInsertFilesInDir.java
similarity index 92%
rename from src/test/java/caosdb/server/jobs/core/TestInsertFilesInDir.java
rename to src/test/java/org/caosdb/server/jobs/core/TestInsertFilesInDir.java
index 37cad0eca28a50b006985a73edb07e45b60fdf9e..ae5df853ba5d29e681cd0fb0e5ec8eee6ec3462c 100644
--- a/src/test/java/caosdb/server/jobs/core/TestInsertFilesInDir.java
+++ b/src/test/java/org/caosdb/server/jobs/core/TestInsertFilesInDir.java
@@ -1,4 +1,4 @@
-package caosdb.server.jobs.core;
+package org.caosdb.server.jobs.core;
 
 import static org.junit.Assert.assertTrue;
 
diff --git a/src/test/java/caosdb/server/logging/TestLogging.java b/src/test/java/org/caosdb/server/logging/TestLogging.java
similarity index 91%
rename from src/test/java/caosdb/server/logging/TestLogging.java
rename to src/test/java/org/caosdb/server/logging/TestLogging.java
index 6e35d96585683d99c81a0fc2c669d4dc977bc09a..f1a130ad09c0eca378560b500fc38344df279f17 100644
--- a/src/test/java/caosdb/server/logging/TestLogging.java
+++ b/src/test/java/org/caosdb/server/logging/TestLogging.java
@@ -1,9 +1,9 @@
-package caosdb.server.logging;
+package org.caosdb.server.logging;
 
-import caosdb.server.CaosDBServer;
 import java.io.File;
 import java.io.IOException;
 import org.apache.commons.io.FileUtils;
+import org.caosdb.server.CaosDBServer;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -32,7 +32,7 @@ public class TestLogging {
     logger.info("info");
     logger.debug("debug");
     logger.trace("trace");
-    Assert.assertEquals(logger.getName(), "caosdb.server.logging.TestLogging");
+    Assert.assertEquals(logger.getName(), "org.caosdb.server.logging.TestLogging");
     Assert.assertTrue(logger.isErrorEnabled());
     Assert.assertTrue(logger.isWarnEnabled());
     Assert.assertTrue(logger.isInfoEnabled());
diff --git a/src/test/java/caosdb/server/permissions/EntityACLTest.java b/src/test/java/org/caosdb/server/permissions/EntityACLTest.java
similarity index 92%
rename from src/test/java/caosdb/server/permissions/EntityACLTest.java
rename to src/test/java/org/caosdb/server/permissions/EntityACLTest.java
index 6aae2257e5623d072c5f60e5991a5cb0248ecf74..0e0e3ee121b09332b6cbb7d86a22458bb5fbf17f 100644
--- a/src/test/java/caosdb/server/permissions/EntityACLTest.java
+++ b/src/test/java/org/caosdb/server/permissions/EntityACLTest.java
@@ -20,32 +20,32 @@
  *
  * ** end header
  */
-package caosdb.server.permissions;
+package org.caosdb.server.permissions;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.accessControl.AnonymousAuthenticationToken;
-import caosdb.server.accessControl.AuthenticationUtils;
-import caosdb.server.accessControl.Config;
-import caosdb.server.accessControl.OneTimeAuthenticationToken;
-import caosdb.server.accessControl.Role;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrievePermissionRulesImpl;
-import caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.misc.TransactionBenchmark;
-import caosdb.server.resource.AbstractCaosDBServerResource;
-import caosdb.server.resource.AbstractCaosDBServerResource.XMLParser;
-import caosdb.server.utils.Utils;
 import java.io.IOException;
 import java.util.BitSet;
 import java.util.HashSet;
 import java.util.LinkedList;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.accessControl.AnonymousAuthenticationToken;
+import org.caosdb.server.accessControl.AuthenticationUtils;
+import org.caosdb.server.accessControl.Config;
+import org.caosdb.server.accessControl.OneTimeAuthenticationToken;
+import org.caosdb.server.accessControl.Role;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrievePermissionRulesImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.resource.AbstractCaosDBServerResource;
+import org.caosdb.server.resource.AbstractCaosDBServerResource.XMLParser;
+import org.caosdb.server.utils.Utils;
 import org.jdom2.Element;
 import org.jdom2.JDOMException;
 import org.junit.Assert;
@@ -309,14 +309,14 @@ public class EntityACLTest {
   public void testFactory() {
     final EntityACLFactory f = new EntityACLFactory();
 
-    caosdb.server.permissions.Role role1 = caosdb.server.permissions.Role.create("role1");
+    org.caosdb.server.permissions.Role role1 = org.caosdb.server.permissions.Role.create("role1");
     Config config1 = new Config();
     config1.setRoles(new String[] {role1.toString()});
     OneTimeAuthenticationToken token1 = OneTimeAuthenticationToken.generate(config1);
     Subject user1 = SecurityUtils.getSecurityManager().createSubject(null);
     user1.login(token1);
 
-    caosdb.server.permissions.Role role2 = caosdb.server.permissions.Role.create("role2");
+    org.caosdb.server.permissions.Role role2 = org.caosdb.server.permissions.Role.create("role2");
     Config config2 = new Config();
     config2.setRoles(new String[] {role2.toString()});
     OneTimeAuthenticationToken token2 = OneTimeAuthenticationToken.generate(config2);
diff --git a/src/test/java/caosdb/server/query/TestCQL.java b/src/test/java/org/caosdb/server/query/TestCQL.java
similarity index 99%
rename from src/test/java/caosdb/server/query/TestCQL.java
rename to src/test/java/org/caosdb/server/query/TestCQL.java
index 402cddd2be631291d772d494804cf21bc9dbc6b7..2264c9f02233c5462339615e142c38e2df4eb033 100644
--- a/src/test/java/caosdb/server/query/TestCQL.java
+++ b/src/test/java/org/caosdb/server/query/TestCQL.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.query;
+package org.caosdb.server.query;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -29,14 +29,6 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.query.CQLParser.CqContext;
-import caosdb.server.query.Query.Pattern;
-import caosdb.server.query.Query.QueryException;
-import caosdb.server.utils.Initialization;
 import java.io.IOException;
 import java.sql.SQLException;
 import java.util.LinkedList;
@@ -45,6 +37,14 @@ import org.antlr.v4.runtime.CharStreams;
 import org.antlr.v4.runtime.CommonTokenStream;
 import org.antlr.v4.runtime.Token;
 import org.antlr.v4.runtime.tree.ParseTree;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.query.CQLParser.CqContext;
+import org.caosdb.server.query.Query.Pattern;
+import org.caosdb.server.query.Query.QueryException;
+import org.caosdb.server.utils.Initialization;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
diff --git a/src/test/java/caosdb/server/resource/FileSystemResourceTest.java b/src/test/java/org/caosdb/server/resource/FileSystemResourceTest.java
similarity index 97%
rename from src/test/java/caosdb/server/resource/FileSystemResourceTest.java
rename to src/test/java/org/caosdb/server/resource/FileSystemResourceTest.java
index 31d6c6a6c4c7caf4d388a6df1404430e93a01d0f..ed89c68ae554c0f7718ccabcb6fb2b48c0d59e61 100644
--- a/src/test/java/caosdb/server/resource/FileSystemResourceTest.java
+++ b/src/test/java/org/caosdb/server/resource/FileSystemResourceTest.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
 import java.io.File;
 import org.junit.Test;
diff --git a/src/test/java/caosdb/server/resource/TestAbstractCaosDBServerResource.java b/src/test/java/org/caosdb/server/resource/TestAbstractCaosDBServerResource.java
similarity index 83%
rename from src/test/java/caosdb/server/resource/TestAbstractCaosDBServerResource.java
rename to src/test/java/org/caosdb/server/resource/TestAbstractCaosDBServerResource.java
index 59f0a1d5812b1127ea0ff4514520bc30039af5cd..1dcf71d8f330ab6807e65bd23022138e941fca1c 100644
--- a/src/test/java/caosdb/server/resource/TestAbstractCaosDBServerResource.java
+++ b/src/test/java/org/caosdb/server/resource/TestAbstractCaosDBServerResource.java
@@ -1,22 +1,8 @@
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.accessControl.AnonymousAuthenticationToken;
-import caosdb.server.accessControl.AnonymousRealm;
-import caosdb.server.accessControl.Role;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.database.backend.interfaces.RetrievePermissionRulesImpl;
-import caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.misc.TransactionBenchmark;
-import caosdb.server.permissions.PermissionRule;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Paths;
@@ -26,6 +12,20 @@ import java.util.HashSet;
 import org.apache.shiro.mgt.DefaultSecurityManager;
 import org.apache.shiro.subject.Subject;
 import org.apache.shiro.subject.support.DelegatingSubject;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.accessControl.AnonymousAuthenticationToken;
+import org.caosdb.server.accessControl.AnonymousRealm;
+import org.caosdb.server.accessControl.Role;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import org.caosdb.server.database.backend.interfaces.RetrievePermissionRulesImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.permissions.PermissionRule;
 import org.jdom2.Element;
 import org.junit.BeforeClass;
 import org.junit.Rule;
@@ -145,7 +145,7 @@ public class TestAbstractCaosDBServerResource {
             + "defaultRealm = PAM\n"
             + "\n"
             + "[PAM]\n"
-            + "class = caosdb.server.accessControl.Pam\n"
+            + "class = org.caosdb.server.accessControl.Pam\n"
             + "default_status = ACTIVE\n"
             + "include.user = admin\n"
             + ";include.group = [uncomment and put your groups here]\n"
diff --git a/src/test/java/caosdb/server/resource/TestScriptingResource.java b/src/test/java/org/caosdb/server/resource/TestScriptingResource.java
similarity index 86%
rename from src/test/java/caosdb/server/resource/TestScriptingResource.java
rename to src/test/java/org/caosdb/server/resource/TestScriptingResource.java
index 3280ae3af5a62174006b504408d7c3bde8a2632e..845f589a9700a9d3d25eb8da2878c13ee114cd7d 100644
--- a/src/test/java/caosdb/server/resource/TestScriptingResource.java
+++ b/src/test/java/org/caosdb/server/resource/TestScriptingResource.java
@@ -20,29 +20,10 @@
  *
  * ** end header
  */
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
 import static org.junit.Assert.assertEquals;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.accessControl.AnonymousAuthenticationToken;
-import caosdb.server.accessControl.CredentialsValidator;
-import caosdb.server.accessControl.Principal;
-import caosdb.server.accessControl.Role;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.interfaces.RetrievePasswordValidatorImpl;
-import caosdb.server.database.backend.interfaces.RetrievePermissionRulesImpl;
-import caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
-import caosdb.server.database.backend.interfaces.RetrieveUserImpl;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.database.misc.TransactionBenchmark;
-import caosdb.server.database.proto.ProtoUser;
-import caosdb.server.entity.Message;
-import caosdb.server.permissions.PermissionRule;
-import caosdb.server.scripting.ScriptingPermissions;
-import caosdb.server.scripting.ServerSideScriptingCaller;
 import java.io.IOException;
 import java.util.Date;
 import java.util.HashSet;
@@ -50,6 +31,25 @@ import java.util.List;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authz.permission.WildcardPermission;
 import org.apache.shiro.subject.Subject;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.accessControl.AnonymousAuthenticationToken;
+import org.caosdb.server.accessControl.CredentialsValidator;
+import org.caosdb.server.accessControl.Principal;
+import org.caosdb.server.accessControl.Role;
+import org.caosdb.server.accessControl.UserSources;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.interfaces.RetrievePasswordValidatorImpl;
+import org.caosdb.server.database.backend.interfaces.RetrievePermissionRulesImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveRoleImpl;
+import org.caosdb.server.database.backend.interfaces.RetrieveUserImpl;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.database.misc.TransactionBenchmark;
+import org.caosdb.server.database.proto.ProtoUser;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.permissions.PermissionRule;
+import org.caosdb.server.scripting.ScriptingPermissions;
+import org.caosdb.server.scripting.ServerSideScriptingCaller;
 import org.jdom2.Element;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -172,7 +172,7 @@ public class TestScriptingResource {
         public int callScript(
             java.util.List<String> invokation,
             Integer timeout_ms,
-            java.util.List<caosdb.server.entity.FileProperties> files,
+            java.util.List<org.caosdb.server.entity.FileProperties> files,
             Object authToken)
             throws Message {
           if (invokation.get(0).equals("anonymous_ok")) {
diff --git a/src/test/java/caosdb/server/resource/TestSharedFileResource.java b/src/test/java/org/caosdb/server/resource/TestSharedFileResource.java
similarity index 95%
rename from src/test/java/caosdb/server/resource/TestSharedFileResource.java
rename to src/test/java/org/caosdb/server/resource/TestSharedFileResource.java
index 41e134d28aed98c0fb01bee256bce513bb43f13e..8dbbd5b1ec25843c3a5b28d46a2fa784f169330d 100644
--- a/src/test/java/caosdb/server/resource/TestSharedFileResource.java
+++ b/src/test/java/org/caosdb/server/resource/TestSharedFileResource.java
@@ -20,7 +20,7 @@
  * ** end header
  */
 
-package caosdb.server.resource;
+package org.caosdb.server.resource;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -28,11 +28,6 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.FileSystem;
-import caosdb.server.ServerProperties;
-import caosdb.server.accessControl.AnonymousAuthenticationToken;
-import caosdb.server.accessControl.AnonymousRealm;
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
@@ -42,6 +37,11 @@ import net.jcip.annotations.NotThreadSafe;
 import org.apache.shiro.mgt.DefaultSecurityManager;
 import org.apache.shiro.subject.Subject;
 import org.apache.shiro.subject.support.DelegatingSubject;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.accessControl.AnonymousAuthenticationToken;
+import org.caosdb.server.accessControl.AnonymousRealm;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Rule;
@@ -198,7 +198,7 @@ public class TestSharedFileResource {
             + "defaultRealm = PAM\n"
             + "\n"
             + "[PAM]\n"
-            + "class = caosdb.server.accessControl.Pam\n"
+            + "class = org.caosdb.server.accessControl.Pam\n"
             + "default_status = ACTIVE\n"
             + "include.user = admin\n"
             + ";include.group = [uncomment and put your groups here]\n"
diff --git a/src/test/java/caosdb/server/scripting/TestServerSideScriptingCaller.java b/src/test/java/org/caosdb/server/scripting/TestServerSideScriptingCaller.java
similarity index 98%
rename from src/test/java/caosdb/server/scripting/TestServerSideScriptingCaller.java
rename to src/test/java/org/caosdb/server/scripting/TestServerSideScriptingCaller.java
index f752c29c2f99b33d30a75ff3e09c7043c92fc464..28fdd55e78db1a2142b5eac86327617b8f371089 100644
--- a/src/test/java/caosdb/server/scripting/TestServerSideScriptingCaller.java
+++ b/src/test/java/org/caosdb/server/scripting/TestServerSideScriptingCaller.java
@@ -20,19 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.scripting;
+package org.caosdb.server.scripting;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import caosdb.CaosDBTestClass;
-import caosdb.server.CaosDBException;
-import caosdb.server.CaosDBServer;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.utils.ServerMessages;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -43,6 +36,13 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.commons.io.FileUtils;
+import org.caosdb.CaosDBTestClass;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.FileProperties;
+import org.caosdb.server.entity.Message;
+import org.caosdb.server.utils.ServerMessages;
 import org.hamcrest.BaseMatcher;
 import org.hamcrest.Description;
 import org.junit.After;
diff --git a/src/test/java/caosdb/server/transaction/UpdateTest.java b/src/test/java/org/caosdb/server/transaction/UpdateTest.java
similarity index 92%
rename from src/test/java/caosdb/server/transaction/UpdateTest.java
rename to src/test/java/org/caosdb/server/transaction/UpdateTest.java
index d90724744164b23ecdd7a27b90cddac1e048f86f..6b0e7b3f988f18142c6ebdb535212cd7454233f0 100644
--- a/src/test/java/caosdb/server/transaction/UpdateTest.java
+++ b/src/test/java/org/caosdb/server/transaction/UpdateTest.java
@@ -20,21 +20,21 @@
  *
  * ** end header
  */
-package caosdb.server.transaction;
+package org.caosdb.server.transaction;
 
-import static caosdb.server.utils.EntityStatus.QUALIFIED;
-import static caosdb.server.utils.EntityStatus.VALID;
+import static org.caosdb.server.utils.EntityStatus.QUALIFIED;
+import static org.caosdb.server.utils.EntityStatus.VALID;
 import static org.junit.Assert.assertEquals;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.datatype.GenericValue;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.StatementStatus;
-import caosdb.server.entity.wrapper.Property;
-import caosdb.server.utils.EntityStatus;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.datatype.GenericValue;
+import org.caosdb.server.entity.Entity;
+import org.caosdb.server.entity.EntityInterface;
+import org.caosdb.server.entity.StatementStatus;
+import org.caosdb.server.entity.wrapper.Property;
+import org.caosdb.server.utils.EntityStatus;
 import org.junit.Test;
 
 public class UpdateTest {
diff --git a/src/test/java/caosdb/server/utils/FileUtilsTest.java b/src/test/java/org/caosdb/server/utils/FileUtilsTest.java
similarity index 96%
rename from src/test/java/caosdb/server/utils/FileUtilsTest.java
rename to src/test/java/org/caosdb/server/utils/FileUtilsTest.java
index e4b2411dc0e77ce0225c0637422c84bbab2cc4aa..7e0664f3df401f916ed48c6830271334083a5ac4 100644
--- a/src/test/java/caosdb/server/utils/FileUtilsTest.java
+++ b/src/test/java/org/caosdb/server/utils/FileUtilsTest.java
@@ -20,25 +20,13 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.CaosDBServer;
-import caosdb.server.FileSystem;
-import caosdb.server.ServerProperties;
-import caosdb.server.database.BackendTransaction;
-import caosdb.server.database.access.Access;
-import caosdb.server.database.backend.implementation.UnixFileSystem.UnixFileSystemGetFileIterator.FileNameIterator;
-import caosdb.server.database.backend.implementation.UnixFileSystem.UnixFileSystemHelper;
-import caosdb.server.database.backend.transaction.FileConsistencyCheck;
-import caosdb.server.database.backend.transaction.GetFileIterator;
-import caosdb.server.database.exceptions.TransactionException;
-import caosdb.server.entity.Message;
 import java.io.File;
 import java.io.IOException;
 import java.io.PrintStream;
@@ -47,6 +35,18 @@ import java.security.NoSuchAlgorithmException;
 import java.util.Iterator;
 import java.util.regex.Pattern;
 import net.jcip.annotations.NotThreadSafe;
+import org.caosdb.server.CaosDBException;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.FileSystem;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.database.BackendTransaction;
+import org.caosdb.server.database.access.Access;
+import org.caosdb.server.database.backend.implementation.UnixFileSystem.UnixFileSystemGetFileIterator.FileNameIterator;
+import org.caosdb.server.database.backend.implementation.UnixFileSystem.UnixFileSystemHelper;
+import org.caosdb.server.database.backend.transaction.FileConsistencyCheck;
+import org.caosdb.server.database.backend.transaction.GetFileIterator;
+import org.caosdb.server.database.exceptions.TransactionException;
+import org.caosdb.server.entity.Message;
 import org.eclipse.jetty.io.RuntimeIOException;
 import org.junit.After;
 import org.junit.AfterClass;
diff --git a/src/test/java/caosdb/server/utils/UtilsTest.java b/src/test/java/org/caosdb/server/utils/UtilsTest.java
similarity index 98%
rename from src/test/java/caosdb/server/utils/UtilsTest.java
rename to src/test/java/org/caosdb/server/utils/UtilsTest.java
index c75d5a3ad861ac5b4c5ff9dfc905767479fb1a4f..3b92a11d69b465c33ddc9629d89c6d91e6f456e0 100644
--- a/src/test/java/caosdb/server/utils/UtilsTest.java
+++ b/src/test/java/org/caosdb/server/utils/UtilsTest.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 import static org.junit.Assert.assertEquals;
 
diff --git a/src/test/java/caosdb/server/utils/WebinterfaceUtilsTest.java b/src/test/java/org/caosdb/server/utils/WebinterfaceUtilsTest.java
similarity index 93%
rename from src/test/java/caosdb/server/utils/WebinterfaceUtilsTest.java
rename to src/test/java/org/caosdb/server/utils/WebinterfaceUtilsTest.java
index 075c8d998acdfc7f897f9429de468034a4dc022e..9231dd77a6724b5a8c5f7f4f244bd92c6f4a5e91 100644
--- a/src/test/java/caosdb/server/utils/WebinterfaceUtilsTest.java
+++ b/src/test/java/org/caosdb/server/utils/WebinterfaceUtilsTest.java
@@ -1,12 +1,12 @@
-package caosdb.server.utils;
+package org.caosdb.server.utils;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
 import java.io.IOException;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
 import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/src/test/java/caosdb/server/utils/fsm/TestFiniteStateMachine.java b/src/test/java/org/caosdb/server/utils/fsm/TestFiniteStateMachine.java
similarity index 98%
rename from src/test/java/caosdb/server/utils/fsm/TestFiniteStateMachine.java
rename to src/test/java/org/caosdb/server/utils/fsm/TestFiniteStateMachine.java
index 3849df7dc66f8f812c36b0a4b49dcb2774d034b3..2a7b726b84464f3a7d287434b2767a34baaf4b50 100644
--- a/src/test/java/caosdb/server/utils/fsm/TestFiniteStateMachine.java
+++ b/src/test/java/org/caosdb/server/utils/fsm/TestFiniteStateMachine.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils.fsm;
+package org.caosdb.server.utils.fsm;
 
 import static org.junit.Assert.assertEquals;
 
diff --git a/src/test/java/caosdb/server/utils/fsm/TestStrategyFiniteStateMachine.java b/src/test/java/org/caosdb/server/utils/fsm/TestStrategyFiniteStateMachine.java
similarity index 97%
rename from src/test/java/caosdb/server/utils/fsm/TestStrategyFiniteStateMachine.java
rename to src/test/java/org/caosdb/server/utils/fsm/TestStrategyFiniteStateMachine.java
index 8d383383dd4a896f0befa1b3c2b1854129377353..ebf719b1eaa4b56f3b64bdd9371f121231b4ed68 100644
--- a/src/test/java/caosdb/server/utils/fsm/TestStrategyFiniteStateMachine.java
+++ b/src/test/java/org/caosdb/server/utils/fsm/TestStrategyFiniteStateMachine.java
@@ -20,7 +20,7 @@
  *
  * ** end header
  */
-package caosdb.server.utils.fsm;
+package org.caosdb.server.utils.fsm;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/src/test/java/caosdb/server/utils/mail/TestMail.java b/src/test/java/org/caosdb/server/utils/mail/TestMail.java
similarity index 90%
rename from src/test/java/caosdb/server/utils/mail/TestMail.java
rename to src/test/java/org/caosdb/server/utils/mail/TestMail.java
index 2bdc90de64e58a81bafbbd7c484677b5bf54eb7a..5d7ba41089ee71d6ca4eff529bf6ce1ca0828b92 100644
--- a/src/test/java/caosdb/server/utils/mail/TestMail.java
+++ b/src/test/java/org/caosdb/server/utils/mail/TestMail.java
@@ -20,12 +20,12 @@
  *
  * ** end header
  */
-package caosdb.server.utils.mail;
+package org.caosdb.server.utils.mail;
 
-import caosdb.CaosDBTestClass;
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
 import java.io.IOException;
+import org.caosdb.CaosDBTestClass;
+import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
 import org.junit.BeforeClass;
 import org.junit.Test;