diff --git a/screening/resource/dependency-structure.ddf b/screening/resource/dependency-structure.ddf
index 875d241f822a6860acc213d8cbadcc4960839b0b..70add99dfabc9e48ae188a8e7292dff486aafca0 100644
--- a/screening/resource/dependency-structure.ddf
+++ b/screening/resource/dependency-structure.ddf
@@ -6,7 +6,7 @@
 # -------- check that screening openbis is indendent of the DSS code
 
 [screening_openbis] = ${screening}.*
-[dss] = ${root}.dss.* ch.systemsx.cisd.etlserver.* excluding ${root}.dss.screening.shared.api.*
+[dss] = ${root}.dss.* ch.systemsx.cisd.etlserver.* excluding ${root}.dss.screening.shared.api.* ${root}.dss.generic.shared.api.authorization.*
 check sets [screening_openbis] [dss]
 
 check [screening_openbis] independentOf [dss]
@@ -40,16 +40,18 @@ check [screening_web_client] independentOf [screening_server]
 # -------- check screening public API dependencies
 
 [openbis_authorization] = ${screening}.shared.api.authorization.* ${root}.generic.shared.basic.dto.RoleWithHierarchy* ${root}.generic.shared.authorization.** ${root}.generic.shared.dto.** ${root}.generic.shared.util.SpaceCodeHelper
+[dss_authorization] = ${root}.dss.generic.shared.api.authorization.*
+[authorization] = [openbis_authorization] [dss_authorization]
 [api_openbis] = ${screening}.shared.api.** 
 [api_dss] = ${root}.dss.screening.shared.api.v1.**
 [api_client_facade] =	${screening}.client.api.v1.**
-[api] = [api_dss] [api_openbis] [api_client_facade] [openbis_authorization]
+[api] = [api_dss] [api_openbis] [api_client_facade] [authorization]
 [openbis_rest] = ${root}.** excluding [api]
 check sets [api_dss] [api_openbis] [api_client_facade] [api] [openbis_rest] [openbis_authorization]
 
 # TODO: how to check that the api does not depend on external libraries?
 check [api] independentOf [openbis_rest]
-check [api_client_facade] directlyIndependentOf [openbis_authorization]
+check [api_client_facade] directlyIndependentOf [authorization]
 
 layer s_api_openbis = [api_openbis]
 layer s_api_dss_and_utils = [api_dss]
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java
index 17d5a45b4aa042959ca7e8160798ea47b0d26a97..2af6f261239a2a42faa9d935767d57d7b2f7fedb 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java
@@ -46,6 +46,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
 import ch.systemsx.cisd.openbis.dss.generic.shared.utils.CodeAndLabelUtil;
 import ch.systemsx.cisd.openbis.dss.generic.shared.utils.ImageUtil;
+import ch.systemsx.cisd.openbis.dss.screening.shared.api.v1.IDssServiceRpcScreeningInternal;
 import ch.systemsx.cisd.openbis.dss.shared.DssScreeningUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier;
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DatasetIdentifierPredicate.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/shared/api/v1/DatasetIdentifierPredicate.java
similarity index 96%
rename from screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DatasetIdentifierPredicate.java
rename to screening/source/java/ch/systemsx/cisd/openbis/dss/screening/shared/api/v1/DatasetIdentifierPredicate.java
index fe3b4b21655fc16348a2f141a42da26e528709af..05f16a84e6f04360994da7f8647e031241d3dddc 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DatasetIdentifierPredicate.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/shared/api/v1/DatasetIdentifierPredicate.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.dss.screening.server;
+package ch.systemsx.cisd.openbis.dss.screening.shared.api.v1;
 
 import java.util.List;
 
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/shared/api/v1/IDssServiceRpcScreening.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/shared/api/v1/IDssServiceRpcScreening.java
index 3645a85a1f63b49bf6288465bef3749f81072246..01570aa3d04e922746579e554d59725a0ac629c5 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/shared/api/v1/IDssServiceRpcScreening.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/shared/api/v1/IDssServiceRpcScreening.java
@@ -23,7 +23,6 @@ import ch.systemsx.cisd.common.api.IRpcService;
 import ch.systemsx.cisd.common.api.MinimalMinorVersion;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.AuthorizationGuard;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.DataSetAccessGuard;
-import ch.systemsx.cisd.openbis.dss.screening.server.DatasetIdentifierPredicate;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.FeatureVectorDataset;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.FeatureVectorDatasetReference;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.FeatureVectorDatasetWellReference;
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/IDssServiceRpcScreeningInternal.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/shared/api/v1/IDssServiceRpcScreeningInternal.java
similarity index 88%
rename from screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/IDssServiceRpcScreeningInternal.java
rename to screening/source/java/ch/systemsx/cisd/openbis/dss/screening/shared/api/v1/IDssServiceRpcScreeningInternal.java
index f8bebc4e14e78c8e3497b5a9e94107e8aabd8db4..69af43ebdada394e66bc6eb998c459a6dc498fb7 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/IDssServiceRpcScreeningInternal.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/shared/api/v1/IDssServiceRpcScreeningInternal.java
@@ -14,11 +14,10 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.dss.screening.server;
+package ch.systemsx.cisd.openbis.dss.screening.shared.api.v1;
 
 import java.util.List;
 
-import ch.systemsx.cisd.openbis.dss.screening.shared.api.v1.IDssServiceRpcScreening;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.IDatasetIdentifier;
 
 /**
diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreeningTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreeningTest.java
index b819a11993932daad94d17ff5336d0d738a043d0..1dcd92e90d7b98279e9f2ec5f3ad0311ba5963b6 100644
--- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreeningTest.java
+++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreeningTest.java
@@ -35,6 +35,7 @@ import ch.systemsx.cisd.base.mdarray.MDFloatArray;
 import ch.systemsx.cisd.openbis.dss.generic.server.DssServiceRpcAuthorizationAdvisor;
 import ch.systemsx.cisd.openbis.dss.generic.server.DssServiceRpcAuthorizationAdvisor.DssServiceRpcAuthorizationMethodInterceptor;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
+import ch.systemsx.cisd.openbis.dss.screening.shared.api.v1.IDssServiceRpcScreeningInternal;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.FeatureVector;