diff --git a/api-openbis-javascript/bin/.gitignore b/api-openbis-javascript/bin/.gitignore
index 3602361dafeea2cbec159128f5166a8428c0795c..25fd7ed9b0c5ce2af99b279886c31f49fb73b731 100644
--- a/api-openbis-javascript/bin/.gitignore
+++ b/api-openbis-javascript/bin/.gitignore
@@ -1 +1,3 @@
-temp
\ No newline at end of file
+temp
+node_modules
+package-lock.json
\ No newline at end of file
diff --git a/api-openbis-javascript/bin/build.sh b/api-openbis-javascript/bin/build.sh
index c3d32568449c9cac946171f79b746b3f08649958..a6c66a4a360661fd92111589c959ef58617ff4ae 100755
--- a/api-openbis-javascript/bin/build.sh
+++ b/api-openbis-javascript/bin/build.sh
@@ -2,12 +2,12 @@
 
 pushd $(dirname $0) > /dev/null
 
-NODE_PATH=../node/nodejs/node-*/bin/node
-
 CURRENT_DIR=$(pwd)
 TEMP_DIR=${CURRENT_DIR}/temp
+V3_DIR=${CURRENT_DIR}/../src/v3
+NODE_DIR=$(echo ${CURRENT_DIR}/../node/nodejs/node-*/bin)
 
-V3_DIR=../src/v3
+export PATH=$PATH:${NODE_DIR}
 
 # create an empty temporary folder
 rm -rvf $TEMP_DIR
@@ -22,12 +22,20 @@ cd $CURRENT_DIR
 cat r.config.template.js | sed -e '\|__FILES__|{' -e "r $TEMP_DIR/files.js" -e 'd' -e '}' > $TEMP_DIR/r.config.js
 cat config.bundle.template.js | sed -e '\|__FILES__|{' -e "r $TEMP_DIR/files.js" -e 'd' -e '}' > $TEMP_DIR/config.bundle.js
 cat config.bundle.min.template.js | sed -e '\|__FILES__|{' -e "r $TEMP_DIR/files.js" -e 'd' -e '}' > $TEMP_DIR/config.bundle.min.js
+cat webpack.config.v3api.generate.entry.template.js | sed -e '\|__FILES__|{' -e "r $TEMP_DIR/files.js" -e 'd' -e '}' > $TEMP_DIR/webpack.config.v3api.generate.entry.js
+
+# create AMD (RequireJS) bundle
+node r.js -o $TEMP_DIR/r.config.js baseUrl=$V3_DIR optimize=none out=$TEMP_DIR/openbis.bundle.js
+node r.js -o $TEMP_DIR/r.config.js baseUrl=$V3_DIR optimize=uglify out=$TEMP_DIR/openbis.bundle.min.js
 
-# create a JS bundle using NodeJS binary installed by NodeJS gradle plugin
-$NODE_PATH r.js -o $TEMP_DIR/r.config.js baseUrl=$V3_DIR optimize=none out=$TEMP_DIR/openbis.bundle.js
-$NODE_PATH r.js -o $TEMP_DIR/r.config.js baseUrl=$V3_DIR optimize=uglify out=$TEMP_DIR/openbis.bundle.min.js
+# create UMD and ESM bundles
+node $TEMP_DIR/webpack.config.v3api.generate.entry.js > $TEMP_DIR/webpack.config.v3api.entry.js
+npm install
+npm run v3api.esm
+npm run v3api.umd
 
 # copy relevant files to the V3 public folder
 cp $TEMP_DIR/config.bundle.js $TEMP_DIR/config.bundle.min.js $TEMP_DIR/openbis.bundle.js $TEMP_DIR/openbis.bundle.min.js $V3_DIR
+cp $TEMP_DIR/openbis.esm.* $TEMP_DIR/openbis.umd.* $V3_DIR
 
 popd > /dev/null
\ No newline at end of file
diff --git a/api-openbis-javascript/bin/package.json b/api-openbis-javascript/bin/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..8b79222622255a5c9356a5a2e84397b906596c79
--- /dev/null
+++ b/api-openbis-javascript/bin/package.json
@@ -0,0 +1,12 @@
+{
+  "dependencies": {
+  },
+  "devDependencies": {
+    "webpack": "^5.75.0",
+    "webpack-cli": "^5.0.1"
+  },
+  "scripts": {
+    "v3api.esm": "webpack-cli --config webpack.config.v3api.module-esm.js",
+    "v3api.umd": "webpack-cli --config webpack.config.v3api.module-umd.js"
+  }
+}
\ No newline at end of file
diff --git a/api-openbis-javascript/bin/webpack.config.v3api.generate.entry.template.js b/api-openbis-javascript/bin/webpack.config.v3api.generate.entry.template.js
new file mode 100644
index 0000000000000000000000000000000000000000..33e1e904e6be7faef46d5632e57bb0862e8bb711
--- /dev/null
+++ b/api-openbis-javascript/bin/webpack.config.v3api.generate.entry.template.js
@@ -0,0 +1,89 @@
+var pathsWithSlashes = [
+    __FILES__
+]
+
+var dtos = []
+
+pathsWithSlashes.forEach(pathWithSlashes => {
+  dtos.push({
+    name: pathWithSlashes.substring(pathWithSlashes.lastIndexOf('/') + 1),
+    pathWithSlashes: pathWithSlashes,
+    pathWithUnderscores: pathWithSlashes.replaceAll('/', '_'),
+  })
+})
+
+// import all DTOs and facade
+
+dtos
+  .sort((dto1, dto2) =>
+    dto1.pathWithSlashes.localeCompare(dto2.pathWithSlashes)
+  )
+  .forEach(dto => {
+    console.log('import ' + dto.pathWithUnderscores + " from '../../src/v3/" + dto.pathWithSlashes + "'")
+  })
+
+console.log("import stjs from '../../src/v3/lib/stjs/js/stjs'")
+console.log("import underscore from '../../src/v3/lib/underscore/js/underscore'")
+console.log("import openbis from '../../src/v3/openbis'")
+
+// use bundled DTOs when parsing JSON responses (i.e. overwrite the default Json.requireFn - it would load DTOs from the server using RequireJS)
+
+console.log('\nvar modules = {')
+
+dtos
+  .sort((dto1, dto2) =>
+    dto1.pathWithSlashes.localeCompare(dto2.pathWithSlashes)
+  )
+  .forEach(dto => {
+    console.log('  "' + dto.pathWithSlashes + '" : ' + dto.pathWithUnderscores + ',')
+  })
+
+console.log('}')
+
+console.log('\nutil_Json.setRequireFn(function(moduleNames, callback){')
+console.log('  callback.apply(')
+console.log('    null,')
+console.log('    moduleNames.map(function(moduleName){')
+console.log('      return modules[moduleName]')
+console.log('    })')
+console.log('  )')
+console.log('})')
+
+// stjs uses "underscore" library and expects it to be available in the global context under "_" - let's make it use the bundled "underscore" instead
+
+console.log('\nstjs._ = underscore')
+
+// export all DTOs and facade
+
+// Some details:
+// DTOs are exported using their simple name as well as their full name.
+// For instance, "as.dto.sample.Sample" will be available in the final exported "openbis" object
+// as both "openbis.Sample" and "openbis.as.dto.sample.Sample".
+// This way any DTOs with duplicated simple names can still be accessed via their full names.
+
+var exported = {
+  "openbis" : "$$openbis$$"
+}
+
+dtos.forEach(dto => {
+  var package = exported
+
+  dto.pathWithSlashes.split('/').slice(0,-1).forEach(pathPart => {
+    if(!package[pathPart]){
+      package[pathPart] = {}
+    }
+    package = package[pathPart]
+  })
+
+  if(exported[dto.name] === undefined){
+    exported[dto.name] = "$$" + dto.pathWithUnderscores + "$$"
+  }else{
+    // for duplicated simple names use null to avoid accidental mistakes where one DTOs is used instead of another
+    exported[dto.name] = null
+  }
+
+  package[dto.name] = "$$" + dto.pathWithUnderscores + "$$"
+})
+
+// remove quotes after JSON.stringify, the quotes to remove have $$ (e.g. "$$as_dto_sample_Sample$$" => as_dto_sample_Sample)
+console.log('\nexport default ' + JSON.stringify(exported, null, 4).replaceAll("$$\"", "").replaceAll("\"$$", ""))
diff --git a/api-openbis-javascript/bin/webpack.config.v3api.module-esm.js b/api-openbis-javascript/bin/webpack.config.v3api.module-esm.js
new file mode 100644
index 0000000000000000000000000000000000000000..8617a39d510fad275920559ab88b6482417054ce
--- /dev/null
+++ b/api-openbis-javascript/bin/webpack.config.v3api.module-esm.js
@@ -0,0 +1,47 @@
+/* eslint-disable */
+const Webpack = require('webpack')
+const path = require('path')
+
+module.exports = {
+  entry: './temp/webpack.config.v3api.entry.js',
+
+  experiments: {
+    outputModule: true
+  },
+  output: {
+    path: __dirname + '/temp',
+    filename: 'openbis.esm.js',
+    library: {
+      type: 'module'
+    }
+  },
+
+  mode: 'development',
+  devtool: 'source-map',
+
+  module: {
+    rules: []
+  },
+
+  resolve: {
+    alias: {
+      'as/dto': path.resolve(__dirname, '../src/v3/as/dto/'),
+      'dss/dto': path.resolve(__dirname, '../src/v3/dss/dto/'),
+      jquery: path.resolve(__dirname, '../src/v3/lib/jquery/js/jquery.js'),
+      moment: path.resolve(__dirname, '../src/v3/lib/moment/js/moment.js'),
+      stjs: path.resolve(__dirname, '../src/v3/lib/stjs/js/stjs.js'),
+      underscore: path.resolve(
+        __dirname,
+        '../src/v3/lib/underscore/js/underscore.js'
+      ),
+      'util/DateFormat': path.resolve(__dirname, '../src/v3/util/DateFormat.js'),
+      'util/Exceptions': path.resolve(__dirname, '../src/v3/util/Exceptions.js'),
+      'util/Json': path.resolve(__dirname, '../src/v3/util/Json.js')
+    },
+    fallback: {}
+  },
+
+  plugins: [],
+
+  externals: {}
+}
diff --git a/api-openbis-javascript/bin/webpack.config.v3api.module-umd.js b/api-openbis-javascript/bin/webpack.config.v3api.module-umd.js
new file mode 100644
index 0000000000000000000000000000000000000000..062bc9974cb10e6f5f7969aad966150394c2864c
--- /dev/null
+++ b/api-openbis-javascript/bin/webpack.config.v3api.module-umd.js
@@ -0,0 +1,44 @@
+/* eslint-disable */
+const Webpack = require('webpack')
+const path = require('path')
+
+module.exports = {
+  entry: './temp/webpack.config.v3api.entry.js',
+  output: {
+    path: __dirname + '/temp',
+    filename: 'openbis.umd.js',
+    libraryTarget: 'umd',
+    libraryExport: 'default',
+    library: 'openbis'
+  },
+
+
+  mode: 'development',
+  devtool: 'source-map',
+
+  module: {
+    rules: []
+  },
+
+  resolve: {
+    alias: {
+      'as/dto': path.resolve(__dirname, '../src/v3/as/dto/'),
+      'dss/dto': path.resolve(__dirname, '../src/v3/dss/dto/'),
+      jquery: path.resolve(__dirname, '../src/v3/lib/jquery/js/jquery.js'),
+      moment: path.resolve(__dirname, '../src/v3/lib/moment/js/moment.js'),
+      stjs: path.resolve(__dirname, '../src/v3/lib/stjs/js/stjs.js'),
+      underscore: path.resolve(
+        __dirname,
+        '../src/v3/lib/underscore/js/underscore.js'
+      ),
+      'util/DateFormat': path.resolve(__dirname, '../src/v3/util/DateFormat.js'),
+      'util/Exceptions': path.resolve(__dirname, '../src/v3/util/Exceptions.js'),
+      'util/Json': path.resolve(__dirname, '../src/v3/util/Json.js')
+    },
+    fallback: {}
+  },
+
+  plugins: [],
+
+  externals: {}
+}
diff --git a/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateAction.js b/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateAction.js
index cf52b520e64a47db895c2faa35748aa630651399..928d18c19592f021209a71e5f049e10026f0662d 100644
--- a/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateAction.js
+++ b/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateAction.js
@@ -1,5 +1,5 @@
 define([ "stjs" ], function(stjs) {
-	ListUpdateAction = function() {
+	var ListUpdateAction = function() {
 	};
 	stjs.extend(ListUpdateAction, null, [], function(constructor, prototype) {
 		prototype['@type'] = 'as.dto.common.update.ListUpdateAction';
diff --git a/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateActionAdd.js b/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateActionAdd.js
index 4eb2bc21d80c34e7e96b30b3d912fa5db34b62fe..2126ee4e6fef8acdc36fe20b9cb935e735341caa 100644
--- a/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateActionAdd.js
+++ b/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateActionAdd.js
@@ -1,5 +1,5 @@
 define([ "stjs", "as/dto/common/update/ListUpdateAction" ], function(stjs, ListUpdateAction) {
-	ListUpdateActionAdd = function() {
+	var ListUpdateActionAdd = function() {
 		ListUpdateAction.call(this);
 	};
 	stjs.extend(ListUpdateActionAdd, ListUpdateAction, [ ListUpdateAction ], function(constructor, prototype) {
diff --git a/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateActionRemove.js b/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateActionRemove.js
index 3ae25bbdb9b91e84d8d397afb5008590111b7260..2949ed1bd61a3b14cd9daa3ec50c986f0a141630 100644
--- a/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateActionRemove.js
+++ b/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateActionRemove.js
@@ -1,5 +1,5 @@
 define([ "stjs", "as/dto/common/update/ListUpdateAction" ], function(stjs, ListUpdateAction) {
-	ListUpdateActionRemove = function() {
+	var ListUpdateActionRemove = function() {
 		ListUpdateAction.call(this);
 	};
 	stjs.extend(ListUpdateActionRemove, ListUpdateAction, [ ListUpdateAction ], function(constructor, prototype) {
diff --git a/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateActionSet.js b/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateActionSet.js
index 56973eccf1b75584b5651deb0c1b69317eaff2c2..f763a029ed0676f4c643b8f5886effb8469ef887 100644
--- a/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateActionSet.js
+++ b/api-openbis-javascript/src/v3/as/dto/common/update/ListUpdateActionSet.js
@@ -1,5 +1,5 @@
 define([ "stjs", "as/dto/common/update/ListUpdateAction" ], function(stjs, ListUpdateAction) {
-	ListUpdateActionSet = function() {
+	var ListUpdateActionSet = function() {
 		ListUpdateAction.call(this);
 	};
 	stjs.extend(ListUpdateActionSet, ListUpdateAction, [ ListUpdateAction ], function(constructor, prototype) {
diff --git a/api-openbis-javascript/src/v3/as/dto/dataset/DataSetType.js b/api-openbis-javascript/src/v3/as/dto/dataset/DataSetType.js
index 88a4176a16d9b405739a33dabeb20a6f8aa3f9af..683fea6aa8d91760bcd59bd3994cdb4be91b2841 100644
--- a/api-openbis-javascript/src/v3/as/dto/dataset/DataSetType.js
+++ b/api-openbis-javascript/src/v3/as/dto/dataset/DataSetType.js
@@ -2,7 +2,7 @@
  * Class automatically generated with
  * {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator}
  */
-define(['stjs'], function (stjs) {
+define(['stjs', "util/Exceptions"], function (stjs, exceptions) {
   var DataSetType = function () {}
   stjs.extend(
     DataSetType,
diff --git a/api-openbis-javascript/src/v3/as/dto/experiment/ExperimentType.js b/api-openbis-javascript/src/v3/as/dto/experiment/ExperimentType.js
index 565fa375b0de8aedf4939d45bd00a9b57a3c7b68..bca053f425dc47001eb1e19235391c0dbf8a1ca3 100644
--- a/api-openbis-javascript/src/v3/as/dto/experiment/ExperimentType.js
+++ b/api-openbis-javascript/src/v3/as/dto/experiment/ExperimentType.js
@@ -2,7 +2,7 @@
  * Class automatically generated with
  * {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator}
  */
-define(['stjs'], function (stjs) {
+define(['stjs', "util/Exceptions"], function (stjs, exceptions) {
   var ExperimentType = function () {}
   stjs.extend(
     ExperimentType,
diff --git a/api-openbis-javascript/src/v3/as/dto/objectkindmodification/ObjectKindModification.js b/api-openbis-javascript/src/v3/as/dto/objectkindmodification/ObjectKindModification.js
index 142ba891fefea7ac1072f10a23d2d123e4633d05..10a927cdd4698d38d9fe44f133d46bc2743ca19d 100644
--- a/api-openbis-javascript/src/v3/as/dto/objectkindmodification/ObjectKindModification.js
+++ b/api-openbis-javascript/src/v3/as/dto/objectkindmodification/ObjectKindModification.js
@@ -35,7 +35,7 @@ define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
 		};
 		prototype.toString = function() {
 			return "Last " + this.operationKind + " operation of an object of kind " + this.objectKind 
-					+ " occured at " +  lastModificationTimeStamp;
+					+ " occured at " +  this.lastModificationTimeStamp;
 		};
 	}, {
 		fetchOptions : "ObjectKindModificationFetchOptions",
diff --git a/api-openbis-javascript/src/v3/as/dto/sample/SampleType.js b/api-openbis-javascript/src/v3/as/dto/sample/SampleType.js
index 758e5708d18d41581ddf8e6ecd38b16acfdb9b44..d51fdee4264920878ed0c9782ede319c4dff62ba 100644
--- a/api-openbis-javascript/src/v3/as/dto/sample/SampleType.js
+++ b/api-openbis-javascript/src/v3/as/dto/sample/SampleType.js
@@ -2,7 +2,7 @@
  * Class automatically generated with
  * {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator}
  */
-define(['stjs'], function (stjs) {
+define(['stjs', "util/Exceptions"], function (stjs, exceptions) {
   var SampleType = function () {}
   stjs.extend(
     SampleType,
diff --git a/api-openbis-javascript/src/v3/as/dto/sample/create/SampleCreation.js b/api-openbis-javascript/src/v3/as/dto/sample/create/SampleCreation.js
index 74dda788162471f102d1c199070352967580940c..c5f385858d0a37e2b400f07a942d701be974a7f6 100644
--- a/api-openbis-javascript/src/v3/as/dto/sample/create/SampleCreation.js
+++ b/api-openbis-javascript/src/v3/as/dto/sample/create/SampleCreation.js
@@ -98,7 +98,7 @@ define([ "stjs", "as/dto/common/Relationship" ], function(stjs, Relationship) {
 			this.relationships = relationships;
 		};
 		prototype.relationship = function(sampleId) {
-			relationship = this.relationships[sampleId];
+			var relationship = this.relationships[sampleId];
 			if (relationship == null) {
 				relationship = new Relationship();
 				this.relationships[sampleId] = relationship;
diff --git a/api-openbis-javascript/src/v3/as/dto/service/SearchDomainServiceExecutionResult.js b/api-openbis-javascript/src/v3/as/dto/service/SearchDomainServiceExecutionResult.js
index aa65da2d0eaa1fbb981414e4591ea2a192f1ad78..d9fda38f3f3be422e9c8dda70244a05e44b69659 100644
--- a/api-openbis-javascript/src/v3/as/dto/service/SearchDomainServiceExecutionResult.js
+++ b/api-openbis-javascript/src/v3/as/dto/service/SearchDomainServiceExecutionResult.js
@@ -57,7 +57,7 @@ define([ "stjs" ], function(stjs) {
 		prototype.getResultDetails = function() {
 			return this.resultDetails;
 		};
-		prototype.setResultDetails = function(entityPermId) {
+		prototype.setResultDetails = function(resultDetails) {
 			this.entityPresultDetailsermId = resultDetails;
 		}
 	}, {
diff --git a/api-openbis-javascript/src/v3/as/dto/service/search/AggregationServiceSearchCriteria.js b/api-openbis-javascript/src/v3/as/dto/service/search/AggregationServiceSearchCriteria.js
index 1933038d769b5892c9b0bfd1371e0b70ba8a8124..69e7b8547f26555ed4a18d590b880035942f8204 100644
--- a/api-openbis-javascript/src/v3/as/dto/service/search/AggregationServiceSearchCriteria.js
+++ b/api-openbis-javascript/src/v3/as/dto/service/search/AggregationServiceSearchCriteria.js
@@ -1,5 +1,5 @@
-define([ "require", "stjs", "as/dto/common/search/AbstractObjectSearchCriteria", "as/dto/common/search/NameSearchCriteria"], 
-	function(require, stjs, AbstractObjectSearchCriteria) {
+define([ "require", "stjs", "as/dto/common/search/AbstractObjectSearchCriteria", "as/dto/common/search/SearchOperator", "as/dto/common/search/NameSearchCriteria"], 
+	function(require, stjs, AbstractObjectSearchCriteria, SearchOperator) {
 	var AggregationServiceSearchCriteria = function() {
 		AbstractObjectSearchCriteria.call(this);
 	};
diff --git a/api-openbis-javascript/src/v3/as/dto/service/search/CustomASServiceSearchCriteria.js b/api-openbis-javascript/src/v3/as/dto/service/search/CustomASServiceSearchCriteria.js
index ca467d11aae176ee4744f267432b6ab1aec50db5..c3ffa541dd78fae3eb6e9ee3dfe38e9574f26c55 100644
--- a/api-openbis-javascript/src/v3/as/dto/service/search/CustomASServiceSearchCriteria.js
+++ b/api-openbis-javascript/src/v3/as/dto/service/search/CustomASServiceSearchCriteria.js
@@ -1,6 +1,6 @@
-define([ "require", "stjs", "as/dto/common/search/AbstractObjectSearchCriteria", "as/dto/common/search/CodeSearchCriteria", 
+define([ "require", "stjs", "as/dto/common/search/AbstractObjectSearchCriteria", "as/dto/common/search/SearchOperator", "as/dto/common/search/CodeSearchCriteria", 
 		"as/dto/common/search/CodesSearchCriteria"], 
-	function(require, stjs, AbstractObjectSearchCriteria) {
+	function(require, stjs, AbstractObjectSearchCriteria, SearchOperator) {
 	var CustomASServiceSearchCriteria = function() {
 		AbstractObjectSearchCriteria.call(this);
 	};
diff --git a/api-openbis-javascript/src/v3/as/dto/service/search/ProcessingServiceSearchCriteria.js b/api-openbis-javascript/src/v3/as/dto/service/search/ProcessingServiceSearchCriteria.js
index a3f15058f4fcc3a7ef226bf993b568ab416b8a79..eed9a0882e54fce32d078b8992f8d973e70cba1b 100644
--- a/api-openbis-javascript/src/v3/as/dto/service/search/ProcessingServiceSearchCriteria.js
+++ b/api-openbis-javascript/src/v3/as/dto/service/search/ProcessingServiceSearchCriteria.js
@@ -1,5 +1,5 @@
-define([ "require", "stjs", "as/dto/common/search/AbstractObjectSearchCriteria", "as/dto/common/search/NameSearchCriteria"], 
-	function(require, stjs, AbstractObjectSearchCriteria) {
+define([ "require", "stjs", "as/dto/common/search/AbstractObjectSearchCriteria", "as/dto/common/search/SearchOperator", "as/dto/common/search/NameSearchCriteria"], 
+	function(require, stjs, AbstractObjectSearchCriteria, SearchOperator) {
 	var ProcessingServiceSearchCriteria = function() {
 		AbstractObjectSearchCriteria.call(this);
 	};
diff --git a/api-openbis-javascript/src/v3/as/dto/service/search/ReportingServiceSearchCriteria.js b/api-openbis-javascript/src/v3/as/dto/service/search/ReportingServiceSearchCriteria.js
index d4c9f8511ca02dbe98ecd7f80dc4686c1e29a86d..7f60b82227dd3d689e34c30c4bb1bfac3c9e9084 100644
--- a/api-openbis-javascript/src/v3/as/dto/service/search/ReportingServiceSearchCriteria.js
+++ b/api-openbis-javascript/src/v3/as/dto/service/search/ReportingServiceSearchCriteria.js
@@ -1,5 +1,5 @@
-define([ "require", "stjs", "as/dto/common/search/AbstractObjectSearchCriteria", "as/dto/common/search/NameSearchCriteria"], 
-	function(require, stjs, AbstractObjectSearchCriteria) {
+define([ "require", "stjs", "as/dto/common/search/AbstractObjectSearchCriteria", "as/dto/common/search/SearchOperator", "as/dto/common/search/NameSearchCriteria"], 
+	function(require, stjs, AbstractObjectSearchCriteria, SearchOperator) {
 	var ReportingServiceSearchCriteria = function() {
 		AbstractObjectSearchCriteria.call(this);
 	};
diff --git a/api-openbis-javascript/src/v3/as/dto/service/search/SearchDomainServiceSearchCriteria.js b/api-openbis-javascript/src/v3/as/dto/service/search/SearchDomainServiceSearchCriteria.js
index c7201505a66118673a65726de750371a3eb239b4..252536c8431bcae338e10e1b60cb3206ff8ee76a 100644
--- a/api-openbis-javascript/src/v3/as/dto/service/search/SearchDomainServiceSearchCriteria.js
+++ b/api-openbis-javascript/src/v3/as/dto/service/search/SearchDomainServiceSearchCriteria.js
@@ -1,5 +1,5 @@
-define([ "require", "stjs", "as/dto/common/search/AbstractObjectSearchCriteria", "as/dto/common/search/NameSearchCriteria"], 
-	function(require, stjs, AbstractObjectSearchCriteria) {
+define([ "require", "stjs", "as/dto/common/search/AbstractObjectSearchCriteria", "as/dto/common/search/SearchOperator", "as/dto/common/search/NameSearchCriteria"], 
+	function(require, stjs, AbstractObjectSearchCriteria, SearchOperator) {
 	var SearchDomainServiceSearchCriteria = function() {
 		AbstractObjectSearchCriteria.call(this);
 	};
diff --git a/api-openbis-javascript/src/v3/as/dto/session/SessionInformation.js b/api-openbis-javascript/src/v3/as/dto/session/SessionInformation.js
index f91eeaa0df0923b9f9778f677adf6f7e8b20f455..048d54461e115990b303d37673aebf4828443ce8 100644
--- a/api-openbis-javascript/src/v3/as/dto/session/SessionInformation.js
+++ b/api-openbis-javascript/src/v3/as/dto/session/SessionInformation.js
@@ -2,7 +2,7 @@
  * Class automatically generated with
  * {@link ch.ethz.sis.openbis.generic.shared.api.v3.dto.generators.DtoGenerator}
  */
-define([ "stjs" ], function(stjs) {
+define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
 	var SessionInformation = function() {
 	};
 	stjs.extend(SessionInformation, null, [], function(constructor, prototype) {
diff --git a/api-openbis-javascript/src/v3/as/dto/vocabulary/update/VocabularyTermUpdate.js b/api-openbis-javascript/src/v3/as/dto/vocabulary/update/VocabularyTermUpdate.js
index 6eaab33c7128c33c12ead60469e3b187f72256a3..9945532ea49979df01087dbe1217d8ba3fff6482 100644
--- a/api-openbis-javascript/src/v3/as/dto/vocabulary/update/VocabularyTermUpdate.js
+++ b/api-openbis-javascript/src/v3/as/dto/vocabulary/update/VocabularyTermUpdate.js
@@ -64,10 +64,6 @@ define([ "stjs", "as/dto/common/update/FieldUpdateValue" ], function(stjs, Field
 			name: "FieldUpdateValue",
 			arguments: ["String"]
 		},
-		description: {
-			name: "FieldUpdateValue",
-			arguments: ["String"]
-		},
 		official: {
 			name: "FieldUpdateValue",
 			arguments: ["Boolean"]
diff --git a/api-openbis-javascript/src/v3/as/dto/webapp/WebAppSettings.js b/api-openbis-javascript/src/v3/as/dto/webapp/WebAppSettings.js
index a3b9df7c88c9dcbee41bf5b8cdcdfb986e2f0418..59e2f3c31ebdda808349b2c5a3f1adb706265dc2 100644
--- a/api-openbis-javascript/src/v3/as/dto/webapp/WebAppSettings.js
+++ b/api-openbis-javascript/src/v3/as/dto/webapp/WebAppSettings.js
@@ -1,4 +1,4 @@
-define([ "stjs" ], function(stjs) {
+define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
 	var WebAppSettings = function() {
 	};
 	stjs.extend(WebAppSettings, null, [], function(constructor, prototype) {
diff --git a/api-openbis-javascript/src/v3/lib/stjs/js/stjs.js b/api-openbis-javascript/src/v3/lib/stjs/js/stjs.js
index 3b97e7c1084ed87912010c661ae3fa9d274601c9..b3946b6cd0db18669d94f6ba212675edf87f4692 100644
--- a/api-openbis-javascript/src/v3/lib/stjs/js/stjs.js
+++ b/api-openbis-javascript/src/v3/lib/stjs/js/stjs.js
@@ -21,7 +21,7 @@ var NOT_IMPLEMENTED = function(){
 	throw "This method is not implemented in Javascript.";
 }
 
-JavalikeEquals = function(value){
+var JavalikeEquals = function(value){
 	if (value == null)
 		return false;
 	if (value.valueOf)
@@ -240,6 +240,7 @@ var stjs={};
 
 stjs.global=this;
 stjs.skipCopy = {"prototype":true, "constructor": true, "$typeDescription":true, "$inherit" : true};
+stjs._ = this._
 
 stjs.ns=function(path){
 	var p = path.split(".");
@@ -252,7 +253,7 @@ stjs.ns=function(path){
 };
 
 stjs.copyProps=function(from, to){
-	for(key in from){
+	for(var key in from){
 		if (!stjs.skipCopy[key])
 			to[key]	= from[key];
 	}
@@ -260,7 +261,7 @@ stjs.copyProps=function(from, to){
 };
 
 stjs.copyInexistentProps=function(from, to){
-	for(key in from){
+	for(var key in from){
 		if (!stjs.skipCopy[key] && !to[key])
 			to[key]	= from[key];
 	}
@@ -319,13 +320,13 @@ stjs.extend=function(_constructor, _super, _implements, _initializer, _typeDescr
 	
 	_constructor.prototype.toJSON = function() {
 		function flatten(x) {
-			if (_.isArray(x)) {
-				return _.map(x, function(el) { return flatten(el) });
-			} else if (_.isObject(x)) {
+			if (stjs._.isArray(x)) {
+				return stjs._.map(x, function(el) { return flatten(el) });
+			} else if (stjs._.isObject(x)) {
 				var result = Object.create(null);
 
 			    for(var i in x) {
-			    	if (!_.isFunction(x[i])) {
+			    	if (!stjs._.isFunction(x[i])) {
 			    		result[i] = flatten(x[i]);
 			    	}
 			    }
diff --git a/api-openbis-javascript/src/v3/util/Json.js b/api-openbis-javascript/src/v3/util/Json.js
index 728540a1928ba86e290879790f0baab992325d20..4a8b2b781eae21c2ece8f3a90fb2192fd3b3818e 100644
--- a/api-openbis-javascript/src/v3/util/Json.js
+++ b/api-openbis-javascript/src/v3/util/Json.js
@@ -18,8 +18,13 @@ define([ 'jquery', 'underscore' ], function(jquery, _) {
     }, {})
 
 	var Json = function() {
+        this.requireFn = require
 	}
 
+    Json.prototype.setRequireFn = function(requireFn) {
+        this.requireFn = requireFn
+    }
+
 	Json.prototype.fromJson = function(jsonType, jsonObject) {
 		var dfd = jquery.Deferred();
 
@@ -29,7 +34,7 @@ define([ 'jquery', 'underscore' ], function(jquery, _) {
 		var moduleNames = Object.keys(types).map(function(type) {
 			return typeToModuleName(type);
 		});
-		require(moduleNames, function() {
+		this.requireFn(moduleNames, function() {
 			var moduleMap = {};
 
 			for (var i = 0; i < arguments.length; i++) {
@@ -223,7 +228,7 @@ define([ 'jquery', 'underscore' ], function(jquery, _) {
 		if (object === null) {
 			return object;
 		}
-		index = _.indexOf(references, object);
+		var index = _.indexOf(references, object);
 		if (index >= 0) {
 			return index;
 		}
@@ -234,7 +239,7 @@ define([ 'jquery', 'underscore' ], function(jquery, _) {
 		} else if (_.isObject(object)) {
 			var result = {};
 			if (object["@type"] != null) {
-				id = references.length;
+				var id = references.length;
 				result["@id"] = id;
 				references.push(object);
 			}
diff --git a/docs/software-developer-documentation/apis/java-javascript-v3-api.md b/docs/software-developer-documentation/apis/java-javascript-v3-api.md
index e5f07f0293326145343bcba1cb74caaba58dd759..4abba45bdba189944d1cdddf4f1201b59c923a40 100644
--- a/docs/software-developer-documentation/apis/java-javascript-v3-api.md
+++ b/docs/software-developer-documentation/apis/java-javascript-v3-api.md
@@ -151,38 +151,56 @@ Connecting in Java
             v3.logout(sessionToken);
         }
 
-
     }
 ```
 
 ### Connecting in Javascript
 
-We have put a lot of effort to make the use of the API in Javascript and
-Java almost identical. The DTOs which are a big part of the API are
-exactly the same in both languages. The methods you can invoke via the
-Javascript and Java APIs are also exactly the same. This makes the
-switch from Javascript to Java or the other way round very easy. Because
-of some major differences between Javascript and Java development still
-some things had to be done a bit differently. But even then we tried to
-be conceptually consistent.
+We have put a lot of effort to make the use of the API in Javascript and Java almost identical. The DTOs which are a big part of the API are exactly
+the same in both languages. The methods you can invoke via the Javascript and Java APIs are also exactly the same. This makes the switch from
+Javascript to Java or the other way round very easy. Because of some major differences between Javascript and Java development still some things had
+to be done a bit differently. But even then we tried to be conceptually consistent.
+
+Before we go into details let's mention that there are actually 3 different ways the Javascript V3 API can be loaded and used. These are:
+
+1) AMD / RequireJS modules
+2) UMD module
+3) ESM module
+
+IMPORTANT: UMD and ESM modules are currently the recommended way of using the Javascript V3 API. AMD / RequireJS approach is still supported but no
+longer recommended.
+
+#### AMD / RequireJS modules
+
+Initially, the only way to load and use the V3 API in Javascript was based on AMD modules and RequireJS (see code example below). In that approach,
+what we had to do first was to load RequireJS library itself and its config. Once that was done, we could start loading all the necessary V3 API
+classes and the V3 API facade to make our V3 API calls.
+
+This approach worked fine, but there were also some drawbacks:
+
+- each V3 API class we wanted to use had to be explicitly "required" and its full class name had to be provided (e.g. as/dto/space/Space)
+- every V3 API class was loaded with a separate HTTP request to the server (loading multiple classes resulted in multiple requests to the server)
+
+Because of these shortcomings this approach is no longer recommended, but still fully supported. Please use UMD or ESM modules approach instead
+(depending on your use case).
 
-**V3ConnectionExample.html**
+**V3ConnectionExampleUsingRequireJS.html**
 
 ```html
-    <!DOCTYPE html>
-    <html>
-    <head>
-        <meta charset="utf-8">
-        <title>V3ConnectionExample</title>
-        <!-- 
-            These two js files, i.e. config.js and require.js are RequireJS configuration and RequireJS library itself.
-            Please check http://requirejs.org/ for more details on how RequireJS makes loading dependencies in Javascript easier.
-        -->
-        <script type="text/javascript" src="http://localhost:8888/openbis/resources/api/v3/config.js"></script>
-        <script type="text/javascript" src="http://localhost:8888/openbis/resources/api/v3/require.js"></script>
-    </head>
-    <body>
-        <script>
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>V3ConnectionExampleUsingRequireJS</title>
+    <!-- 
+        These two js files, i.e. config.js and require.js are RequireJS configuration and RequireJS library itself.
+        Please check http://requirejs.org/ for more details on how RequireJS makes loading dependencies in Javascript easier.
+    -->
+    <script type="text/javascript" src="http://localhost:8888/openbis/resources/api/v3/config.js"></script>
+    <script type="text/javascript" src="http://localhost:8888/openbis/resources/api/v3/require.js"></script>
+</head>
+<body>
+<script>
 
 
             // With "require" call we asynchronously load "openbis", "SpaceSearchCriteria" and "SpaceFetchOptions" classes that we will need for our example.
@@ -210,13 +228,153 @@ be conceptually consistent.
                     });
                 });
             });
-        </script>
-    </body>
-    </html>
+        
+
+</script>
+</body>
+</html>
+```
+
+#### UMD module
+
+UMD module approach (UMD = Universal Module Definition, see: https://github.com/umdjs/umd) allows you to overcome the shortcomings of AMD / RequireJS
+solution. First, the UMD bundle consists of V3 API facade and all V3 API classes. Therefore, once the bundle is loaded, no further calls to the server
+are needed. Second, the bundle exposes the V3 API classes both via their simple names and their full names (see code example below) which makes it far
+easier for developers to use.
+
+UMD bundle can be loaded at an HTML page using a standard script tag.
+
+```html
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8"/>
+    <title>V3UMDExample</title>
+
+    <!--
+
+    Import UMD (Universal Module Definition) openBIS V3 API Javascript bundle as "openbis".
+    The bundle contains V3 API Javascript facade and all V3 API Javascript classes.
+
+    The facade can be accessed via:
+    - "openbis" name (e.g. var v3 = new openbis.openbis())
+
+    The classes can be accessed via:
+    - simple name (e.g. var space = new openbis.Space()) - works for classes with a unique simple name (see details below)
+    - full name (e.g. var space = new opebis.as.dto.space.Space()) - works for all classes
+
+    Classes with a unique simple name (e.g. Space) can be accessed using both their simple name (e.g. openbis.Space)
+    and their full name (e.g. openbis.as.dto.space.Space).
+    Classes with a non-unique simple name (e.g. ExternalDmsSearchCriteria) can be accessed only using their full name
+    (i.e. as.dto.dataset.search.ExternalDmsSearchCriteria and as.dto.externaldms.search.ExternalDmsSearchCriteria).
+
+    List of classes with duplicated simple names (i.e. accessible only via their full names):
+    - as.dto.dataset.search.ExternalDmsSearchCriteria
+    - as.dto.externaldms.search.ExternalDmsSearchCriteria
+    - as.dto.pat.search.PersonalAccessTokenSessionNameSearchCriteria
+    - as.dto.session.search.PersonalAccessTokenSessionNameSearchCriteria
+
+    -->
+
+    <!-- import the bundle as "openbis" (the bundle cannot be imported with a different name) -->
+    <script src="http://localhost:8888/openbis/resources/api/v3/openbis.umd.js"></script>
+</head>
+<body>
+<script>
+            // create an instance of the Javascript facade
+            var v3 = new openbis.openbis();
+
+            // login to obtain a session token (the token it is automatically stored in openbis object and will be used for all subsequent API calls)
+            v3.login("admin", "admin").done(function() {
+
+                // invoke other API methods, for instance search for spaces
+                v3.searchSpaces(new openbis.SpaceSearchCriteria(), new openbis.SpaceFetchOptions()).done(function(result) {
+
+                    alert("Number of spaces: " + result.getObjects().length);
+
+                    // logout to release the resources related with the session
+                    v3.logout();
+                });
+
+            });
+
+
+</script>
+</body>
+</html>
+```
+
+#### ESM module
+
+Similar to UMD module, ESM module (ECMAScript module) is a bundle that contains the V3 API facade and all V3 API classes. It also exposes the V3 API
+classes via both their simple names and their full names. The main difference between UMD and ESM is the format of the bundle and how and where it can
+be imported.
+
+ESM bundle can be loaded at an HTML page using a standard script tag with type="module". It is also well suited for webapps that bundle all their
+resources with tools like Webpack.
+
+```html
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8"/>
+    <title>V3ESMExample</title>
+</head>
+<body>
+
+<!--
+
+Import ESM (ECMAScript module) openBIS V3 API Javascript bundle as "openbis".
+The bundle contains V3 API Javascript facade and all V3 API Javascript classes.
+
+The facade can be accessed via:
+- "openbis" name (e.g. var v3 = new openbis.openbis())
+
+The classes can be accessed via:
+- simple name (e.g. var space = new openbis.Space()) - works for classes with a unique simple name (see details below)
+- full name (e.g. var space = new opebis.as.dto.space.Space()) - works for all classes
+
+Classes with a unique simple name (e.g. Space) can be accessed using both their simple name (e.g. openbis.Space)
+and their full name (e.g. openbis.as.dto.space.Space).
+Classes with a non-unique simple name (e.g. ExternalDmsSearchCriteria) can be accessed only using their full name
+(i.e. as.dto.dataset.search.ExternalDmsSearchCriteria and as.dto.externaldms.search.ExternalDmsSearchCriteria).
+
+List of classes with duplicated simple names (i.e. accessible only via their full names):
+- as.dto.dataset.search.ExternalDmsSearchCriteria
+- as.dto.externaldms.search.ExternalDmsSearchCriteria
+- as.dto.pat.search.PersonalAccessTokenSessionNameSearchCriteria
+- as.dto.session.search.PersonalAccessTokenSessionNameSearchCriteria
+
+-->
+
+<script type="module">
+            // import the bundle as "openbis" (the bundle can be imported with a different name)
+            import openbis from "http://localhost:8888/openbis/resources/api/v3/openbis.esm.js"
+
+            // create an instance of the Javascript facade
+            var v3 = new openbis.openbis();
+
+            // login to obtain a session token (the token it is automatically stored in openbis object and will be used for all subsequent API calls)
+            v3.login("admin", "admin").done(function() {
+
+                // invoke other API methods, for instance search for spaces
+                v3.searchSpaces(new openbis.SpaceSearchCriteria(), new openbis.SpaceFetchOptions()).done(function(result) {
+
+                    alert("Number of spaces: " + result.getObjects().length);
+
+                    // logout to release the resources related with the session
+                    v3.logout();
+                });
+
+            });
+
+
+</script>
+</body>
+</html>
 ```
-  
 
-##   IV. AS Methods  
+## IV. AS Methods
 
 The sections below describe how to use different methods of the V3 API.
 Each section describes a group of similar methods. For instance, we have
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/index.html b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/index.html
index 89e5b14b6d5d5db13d82ce87ebe604fe9d205ce5..af61da288d39a4b290db6b70bea37cf6eb8e296f 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/index.html
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/index.html
@@ -6,6 +6,16 @@
 
 <link rel="stylesheet" href="test/lib/qunit/css/qunit.css">
 
+<!-- ESM module (assigned to window.openbisESM) -->
+<script type="module">
+    import openbisESM from '/openbis/resources/api/v3/openbis.esm.js'
+    window.openbisESM = openbisESM
+</script>
+
+<!-- UMD module (assigned to window.openbis) -->
+<script src="/openbis/resources/api/v3/openbis.umd.js"></script>
+
+<!-- AMD module (using requireJS) -->
 <script src="/openbis/resources/api/v3/config.js"></script>
 <script>
 	var testPath = "/openbis/webapp/openbis-v3-api-test/test";
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/common.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/common.js
index 718a7a2ee53aa4ffe68aa3bde5aa715a9d389ac1..42a1cdd06c87fa6c1239de158ff426981bbb11a9 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/common.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/common.js
@@ -1,426 +1,16 @@
-define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOpenbis, _, dtos) {
+define([ 'jquery', 'underscore'], function($, _) {
 
 	/*
 	 * These tests should be run against openBIS instance with screening sprint
 	 * server database version
 	 */
 
-	var testProtocol = window.location.protocol;
-	var testHost = window.location.hostname;
-	var testPort = window.location.port;
-	var testUrl = testProtocol + "//" + testHost + ":" + testPort;
-	var testApiUrl = testUrl + "/openbis/openbis/rmi-application-server-v3.json";
-
 	var testUserId = "openbis_test_js";
 	var testUserPassword = "password";
 
-	var Common = function(assert, openbis) {
+	var Common = function(assert, dtos) {
 		this.assert = assert;
 
-		if (!openbis) {
-			openbis = defaultOpenbis;
-		}
-
-		this.SpaceCreation = dtos.SpaceCreation;
-		this.ProjectCreation = dtos.ProjectCreation;
-		this.ExperimentCreation = dtos.ExperimentCreation;
-		this.SampleCreation = dtos.SampleCreation;
-		this.MaterialCreation = dtos.MaterialCreation;
-		this.AttachmentCreation = dtos.AttachmentCreation;
-		this.VocabularyCreation = dtos.VocabularyCreation;
-		this.VocabularyTermCreation = dtos.VocabularyTermCreation;
-		this.TagCreation = dtos.TagCreation;
-		this.AuthorizationGroupCreation = dtos.AuthorizationGroupCreation;
-		this.RoleAssignmentCreation = dtos.RoleAssignmentCreation;
-		this.PersonCreation = dtos.PersonCreation;
-		this.Role = require('as/dto/roleassignment/Role');
-		this.RoleLevel = require('as/dto/roleassignment/RoleLevel');
-		this.DataType = require('as/dto/property/DataType');
-		this.EntityKind = require('as/dto/entitytype/EntityKind');
-		this.DataSetKind = require('as/dto/dataset/DataSetKind');
-		this.PluginKind = require('as/dto/plugin/PluginKind');
-		this.PluginType = require('as/dto/plugin/PluginType');
-		this.SemanticAnnotationCreation = dtos.SemanticAnnotationCreation;
-		this.DataSetCreation = dtos.DataSetCreation;
-		this.FullDataSetCreation = dtos.FullDataSetCreation;
-		this.UploadedDataSetCreation = dtos.UploadedDataSetCreation;
-		this.DataSetFileCreation = dtos.DataSetFileCreation;
-		this.LinkedDataCreation = dtos.LinkedDataCreation;
-		this.ContentCopyCreation = dtos.ContentCopyCreation;
-		this.ExternalDmsCreation = dtos.ExternalDmsCreation;
-		this.WebAppSettingCreation = dtos.WebAppSettingCreation;
-		this.QueryCreation = dtos.QueryCreation;
-		this.PersonalAccessTokenCreation = dtos.PersonalAccessTokenCreation;
-		this.ExternalDmsAddressType = require('as/dto/externaldms/ExternalDmsAddressType');
-		this.SpaceUpdate = dtos.SpaceUpdate;
-		this.ProjectUpdate = dtos.ProjectUpdate;
-		this.ExperimentTypeUpdate = dtos.ExperimentTypeUpdate;
-		this.ExperimentUpdate = dtos.ExperimentUpdate;
-		this.SampleTypeUpdate = dtos.SampleTypeUpdate;
-		this.SampleUpdate = dtos.SampleUpdate;
-		this.DataSetTypeUpdate = dtos.DataSetTypeUpdate;
-		this.DataSetUpdate = dtos.DataSetUpdate;
-		this.PhysicalDataUpdate = dtos.PhysicalDataUpdate;
-		this.LinkedDataUpdate = dtos.LinkedDataUpdate;
-		this.SemanticAnnotationUpdate = dtos.SemanticAnnotationUpdate;
-		this.ContentCopyListUpdateValue = dtos.ContentCopyListUpdateValue;
-		this.DataStorePermId = dtos.DataStorePermId;
-		this.MaterialTypeUpdate = dtos.MaterialTypeUpdate;
-		this.MaterialUpdate = dtos.MaterialUpdate;
-		this.VocabularyUpdate = dtos.VocabularyUpdate;
-		this.VocabularyTermUpdate = dtos.VocabularyTermUpdate;
-		this.ExternalDmsUpdate = dtos.ExternalDmsUpdate;
-		this.TagUpdate = dtos.TagUpdate;
-		this.AuthorizationGroupUpdate = dtos.AuthorizationGroupUpdate;
-		this.PersonUpdate = dtos.PersonUpdate;
-		this.QueryUpdate = dtos.QueryUpdate;
-		this.PersonalAccessTokenUpdate = dtos.PersonalAccessTokenUpdate;
-		this.SpaceDeletionOptions = dtos.SpaceDeletionOptions;
-		this.ProjectDeletionOptions = dtos.ProjectDeletionOptions;
-		this.ExperimentDeletionOptions = dtos.ExperimentDeletionOptions;
-		this.SampleDeletionOptions = dtos.SampleDeletionOptions;
-		this.DataSetDeletionOptions = dtos.DataSetDeletionOptions;
-		this.MaterialDeletionOptions = dtos.MaterialDeletionOptions;
-		this.PluginDeletionOptions = dtos.PluginDeletionOptions;
-		this.VocabularyTermDeletionOptions = dtos.VocabularyTermDeletionOptions;
-		this.ExternalDmsDeletionOptions = dtos.ExternalDmsDeletionOptions;
-		this.TagDeletionOptions = dtos.TagDeletionOptions;
-		this.AuthorizationGroupDeletionOptions = dtos.AuthorizationGroupDeletionOptions;
-		this.RoleAssignmentDeletionOptions = dtos.RoleAssignmentDeletionOptions;
-		this.SemanticAnnotationDeletionOptions = dtos.SemanticAnnotationDeletionOptions;
-		this.QueryDeletionOptions = dtos.QueryDeletionOptions;
-		this.PersonalAccessTokenDeletionOptions = dtos.PersonalAccessTokenDeletionOptions;
-		this.PersonDeletionOptions = dtos.PersonDeletionOptions;
-		this.PersonPermId = dtos.PersonPermId;
-		this.Me = dtos.Me;
-		this.EntityTypePermId = dtos.EntityTypePermId;
-		this.SpacePermId = dtos.SpacePermId;
-		this.ProjectPermId = dtos.ProjectPermId;
-		this.ProjectIdentifier = dtos.ProjectIdentifier;
-		this.ExperimentPermId = dtos.ExperimentPermId;
-		this.ExperimentIdentifier = dtos.ExperimentIdentifier;
-		this.SamplePermId = dtos.SamplePermId;
-		this.SampleIdentifier = dtos.SampleIdentifier;
-		this.DataSetPermId = dtos.DataSetPermId;
-		this.FileFormatTypePermId = dtos.FileFormatTypePermId;
-		this.MaterialPermId = dtos.MaterialPermId;
-		this.ContentCopyPermId = dtos.ContentCopyPermId;
-		this.ExternalDmsPermId = dtos.ExternalDmsPermId;
-		this.VocabularyPermId = dtos.VocabularyPermId;
-		this.VocabularyTermPermId = dtos.VocabularyTermPermId;
-		this.AuthorizationGroupPermId = dtos.AuthorizationGroupPermId;
-		this.RoleAssignmentTechId = dtos.RoleAssignmentTechId;
-		this.TagPermId = dtos.TagPermId;
-		this.TagCode = dtos.TagCode;
-		this.SemanticAnnotationsPermId = dtos.SemanticAnnotationsPermId;
-		this.QueryName = dtos.QueryName;
-		this.QueryType = require('as/dto/query/QueryType');
-		this.QueryDatabaseName = dtos.QueryDatabaseName;
-		this.PersonalAccessTokenPermId = dtos.PersonalAccessTokenPermId;
-		this.SpaceSearchCriteria = dtos.SpaceSearchCriteria;
-		this.ProjectSearchCriteria = dtos.ProjectSearchCriteria;
-		this.ExperimentSearchCriteria = dtos.ExperimentSearchCriteria;
-		this.ExperimentTypeSearchCriteria = dtos.ExperimentTypeSearchCriteria;
-		this.SampleSearchCriteria = dtos.SampleSearchCriteria;
-		this.SampleTypeSearchCriteria = dtos.SampleTypeSearchCriteria;
-		this.DataSetSearchCriteria = dtos.DataSetSearchCriteria;
-		this.DataSetTypeSearchCriteria = dtos.DataSetTypeSearchCriteria;
-		this.MaterialSearchCriteria = dtos.MaterialSearchCriteria;
-		this.MaterialTypeSearchCriteria = dtos.MaterialTypeSearchCriteria;
-		this.ExternalDmsSearchCriteria = dtos.ExternalDmsSearchCriteria;
-		this.PluginSearchCriteria = dtos.PluginSearchCriteria;
-		this.VocabularySearchCriteria = dtos.VocabularySearchCriteria;
-		this.VocabularyTermSearchCriteria = dtos.VocabularyTermSearchCriteria;
-		this.DataSetFileSearchCriteria = dtos.DataSetFileSearchCriteria;
-		this.TagSearchCriteria = dtos.TagSearchCriteria;
-		this.AuthorizationGroupSearchCriteria = dtos.AuthorizationGroupSearchCriteria;
-		this.RoleAssignmentSearchCriteria = dtos.RoleAssignmentSearchCriteria;
-		this.PersonSearchCriteria = dtos.PersonSearchCriteria;
-		this.DataStoreSearchCriteria = dtos.DataStoreSearchCriteria;
-		this.PropertyTypeSearchCriteria = dtos.PropertyTypeSearchCriteria;
-		this.PropertyAssignmentSearchCriteria = dtos.PropertyAssignmentSearchCriteria;
-		this.SemanticAnnotationSearchCriteria = dtos.SemanticAnnotationSearchCriteria;
-		this.QuerySearchCriteria = dtos.QuerySearchCriteria;
-		this.QueryDatabaseSearchCriteria = dtos.QueryDatabaseSearchCriteria;
-		this.PersonalAccessTokenSearchCriteria = dtos.PersonalAccessTokenSearchCriteria;
-		this.SpaceFetchOptions = dtos.SpaceFetchOptions;
-		this.ProjectFetchOptions = dtos.ProjectFetchOptions;
-		this.ExperimentFetchOptions = dtos.ExperimentFetchOptions;
-		this.ExperimentTypeFetchOptions = dtos.ExperimentTypeFetchOptions;
-		this.SampleFetchOptions = dtos.SampleFetchOptions;
-		this.SampleTypeFetchOptions = dtos.SampleTypeFetchOptions;
-		this.DataSetFetchOptions = dtos.DataSetFetchOptions;
-		this.DataSetTypeFetchOptions = dtos.DataSetTypeFetchOptions;
-		this.MaterialFetchOptions = dtos.MaterialFetchOptions;
-		this.MaterialTypeFetchOptions = dtos.MaterialTypeFetchOptions;
-		this.ExternalDmsFetchOptions = dtos.ExternalDmsFetchOptions;
-		this.VocabularyFetchOptions = dtos.VocabularyFetchOptions;
-		this.VocabularyTermFetchOptions = dtos.VocabularyTermFetchOptions;
-		this.TagFetchOptions = dtos.TagFetchOptions;
-		this.AuthorizationGroupFetchOptions = dtos.AuthorizationGroupFetchOptions;
-		this.RoleAssignmentFetchOptions = dtos.RoleAssignmentFetchOptions;
-		this.PersonFetchOptions = dtos.PersonFetchOptions;
-		this.PluginFetchOptions = dtos.PluginFetchOptions;
-		this.PropertyTypeFetchOptions = dtos.PropertyTypeFetchOptions;
-		this.PropertyAssignmentFetchOptions = dtos.PropertyAssignmentFetchOptions;
-		this.SemanticAnnotationFetchOptions = dtos.SemanticAnnotationFetchOptions;
-		this.QueryFetchOptions = dtos.QueryFetchOptions;
-		this.QueryDatabaseFetchOptions = dtos.QueryDatabaseFetchOptions;
-		this.PersonalAccessTokenFetchOptions = dtos.PersonalAccessTokenFetchOptions;
-		this.DeletionFetchOptions = dtos.DeletionFetchOptions;
-		this.DeletionSearchCriteria = dtos.DeletionSearchCriteria;
-		this.EventFetchOptions = dtos.EventFetchOptions;
-		this.EventSearchCriteria = dtos.EventSearchCriteria;
-		this.EventType = require('as/dto/event/EventType');
-		this.EntityType = require('as/dto/event/EntityType');
-		this.CustomASServiceSearchCriteria = dtos.CustomASServiceSearchCriteria;
-		this.CustomASServiceFetchOptions = dtos.CustomASServiceFetchOptions;
-		this.CustomASServiceCode = dtos.CustomASServiceCode;
-		this.DssServicePermId = dtos.DssServicePermId;
-		this.CustomASServiceExecutionOptions = dtos.CustomASServiceExecutionOptions;
-		this.SearchDomainServiceSearchCriteria = dtos.SearchDomainServiceSearchCriteria;
-		this.SearchDomainServiceFetchOptions = dtos.SearchDomainServiceFetchOptions;
-		this.SearchDomainServiceExecutionOptions = dtos.SearchDomainServiceExecutionOptions;
-		this.AggregationServiceExecutionOptions = dtos.AggregationServiceExecutionOptions;
-		this.AggregationServiceSearchCriteria = dtos.AggregationServiceSearchCriteria;
-		this.AggregationServiceFetchOptions = dtos.AggregationServiceFetchOptions;
-		this.ReportingServiceSearchCriteria = dtos.ReportingServiceSearchCriteria;
-		this.ReportingServiceFetchOptions = dtos.ReportingServiceFetchOptions;
-		this.ReportingServiceExecutionOptions = dtos.ReportingServiceExecutionOptions;
-		this.Rights = dtos.Rights;
-		this.RightsFetchOptions = dtos.RightsFetchOptions;
-		this.ProcessingServiceSearchCriteria = dtos.ProcessingServiceSearchCriteria;
-		this.ProcessingServiceFetchOptions = dtos.ProcessingServiceFetchOptions;
-		this.ProcessingServiceExecutionOptions = dtos.ProcessingServiceExecutionOptions;
-		this.QueryExecutionOptions = dtos.QueryExecutionOptions;
-		this.SqlExecutionOptions = dtos.SqlExecutionOptions;
-		this.EvaluatePluginOperation = dtos.EvaluatePluginOperation;
-		this.DynamicPropertyPluginEvaluationOptions = dtos.DynamicPropertyPluginEvaluationOptions;
-		this.EntityValidationPluginEvaluationOptions = dtos.EntityValidationPluginEvaluationOptions;
-		this.GlobalSearchCriteria = dtos.GlobalSearchCriteria;
-		this.GlobalSearchObjectFetchOptions = dtos.GlobalSearchObjectFetchOptions;
-		this.ObjectKindModificationSearchCriteria = dtos.ObjectKindModificationSearchCriteria;
-		this.ObjectKindModificationFetchOptions = dtos.ObjectKindModificationFetchOptions;
-		this.DataSetArchiveOptions = dtos.DataSetArchiveOptions;
-		this.DataSetUnarchiveOptions = dtos.DataSetUnarchiveOptions;
-		this.DataSetLockOptions = dtos.DataSetLockOptions;
-		this.DataSetUnlockOptions = dtos.DataSetUnlockOptions;
-		this.PropertyAssignmentCreation = dtos.PropertyAssignmentCreation;
-		this.PropertyTypePermId = dtos.PropertyTypePermId;
-		this.PropertyAssignmentPermId = dtos.PropertyAssignmentPermId;
-		this.PluginPermId = dtos.PluginPermId;
-		this.Plugin = dtos.Plugin;
-		this.PluginCreation = dtos.PluginCreation;
-		this.ExperimentTypeCreation = dtos.ExperimentTypeCreation;
-		this.SampleTypeCreation = dtos.SampleTypeCreation;
-		this.DataSetTypeCreation = dtos.DataSetTypeCreation;
-		this.MaterialTypeCreation = dtos.MaterialTypeCreation;
-		this.PropertyTypeCreation = dtos.PropertyTypeCreation;
-		this.PropertyTypeUpdate = dtos.PropertyTypeUpdate;
-		this.PluginUpdate = dtos.PluginUpdate;
-		this.WebAppSettings = dtos.WebAppSettings;
-
-		this.VocabularyDeletionOptions = dtos.VocabularyDeletionOptions;
-		this.VocabularyTermDeletionOptions = dtos.VocabularyTermDeletionOptions;
-
-		// operations
-
-		this.GetSessionInformationOperation = dtos.GetSessionInformationOperation;
-		this.GetSpacesOperation = dtos.GetSpacesOperation;
-		this.GetProjectsOperation = dtos.GetProjectsOperation;
-		this.GetExperimentsOperation = dtos.GetExperimentsOperation;
-		this.GetExperimentTypesOperation = dtos.GetExperimentTypesOperation;
-		this.GetSamplesOperation = dtos.GetSamplesOperation;
-		this.GetSampleTypesOperation = dtos.GetSampleTypesOperation;
-		this.GetDataSetsOperation = dtos.GetDataSetsOperation;
-		this.GetDataSetTypesOperation = dtos.GetDataSetTypesOperation;
-		this.GetMaterialsOperation = dtos.GetMaterialsOperation;
-		this.GetMaterialTypesOperation = dtos.GetMaterialTypesOperation;
-		this.GetPluginsOperation = dtos.GetPluginsOperation;
-		this.GetPropertyTypesOperation = dtos.GetPropertyTypesOperation;
-		this.GetVocabulariesOperation = dtos.GetVocabulariesOperation;
-		this.GetVocabularyTermsOperation = dtos.GetVocabularyTermsOperation;
-		this.GetTagsOperation = dtos.GetTagsOperation;
-		this.GetAuthorizationGroupsOperation = dtos.GetAuthorizationGroupsOperation;
-		this.GetRoleAssignmentsOperation = dtos.GetRoleAssignmentsOperation;
-		this.GetRightsOperation = dtos.GetRightsOperation;
-		this.GetPersonsOperation = dtos.GetPersonsOperation;
-		this.GetExternalDmsOperation = dtos.GetExternalDmsOperation;
-		this.GetSemanticAnnotationsOperation = dtos.GetSemanticAnnotationsOperation;
-		this.GetServerInformationOperation = dtos.GetServerInformationOperation;
-		this.GetServerPublicInformationOperation = dtos.GetServerPublicInformationOperation;
-
-		this.CreateSpacesOperation = dtos.CreateSpacesOperation;
-		this.CreateProjectsOperation = dtos.CreateProjectsOperation;
-		this.CreateExperimentsOperation = dtos.CreateExperimentsOperation;
-		this.CreateExperimentTypesOperation = dtos.CreateExperimentTypesOperation;
-		this.CreateSamplesOperation = dtos.CreateSamplesOperation;
-		this.CreateSampleTypesOperation = dtos.CreateSampleTypesOperation;
-		this.CreateDataSetsOperation = dtos.CreateDataSetsOperation;
-		this.CreateDataSetTypesOperation = dtos.CreateDataSetTypesOperation;
-		this.CreateMaterialsOperation = dtos.CreateMaterialsOperation;
-		this.CreateMaterialTypesOperation = dtos.CreateMaterialTypesOperation;
-		this.CreatePropertyTypesOperation = dtos.CreatePropertyTypesOperation;
-		this.CreatePluginsOperation = dtos.CreatePluginsOperation;
-		this.CreateVocabulariesOperation = dtos.CreateVocabulariesOperation;
-		this.CreateVocabularyTermsOperation = dtos.CreateVocabularyTermsOperation;
-		this.CreateTagsOperation = dtos.CreateTagsOperation;
-		this.CreateAuthorizationGroupsOperation = dtos.CreateAuthorizationGroupsOperation;
-		this.CreateRoleAssignmentsOperation = dtos.CreateRoleAssignmentsOperation;
-		this.CreatePersonsOperation = dtos.CreatePersonsOperation;
-		this.CreateSemanticAnnotationsOperation = dtos.CreateSemanticAnnotationsOperation;
-		this.CreateExternalDmsOperation = dtos.CreateExternalDmsOperation;
-		this.CreateQueriesOperation = dtos.CreateQueriesOperation;
-		this.CreateCodesOperation = dtos.CreateCodesOperation;
-		this.CreatePermIdsOperation = dtos.CreatePermIdsOperation;
-		this.CreatePersonalAccessTokensOperation = dtos.CreatePersonalAccessTokensOperation;
-
-		this.UpdateSpacesOperation = dtos.UpdateSpacesOperation;
-		this.UpdateProjectsOperation = dtos.UpdateProjectsOperation;
-		this.UpdateExperimentsOperation = dtos.UpdateExperimentsOperation;
-		this.UpdateExperimentTypesOperation = dtos.UpdateExperimentTypesOperation;
-		this.UpdateSamplesOperation = dtos.UpdateSamplesOperation;
-		this.UpdateSampleTypesOperation = dtos.UpdateSampleTypesOperation;
-		this.UpdateDataSetsOperation = dtos.UpdateDataSetsOperation;
-		this.UpdateDataSetTypesOperation = dtos.UpdateDataSetTypesOperation;
-		this.UpdateMaterialsOperation = dtos.UpdateMaterialsOperation;
-		this.UpdateMaterialTypesOperation = dtos.UpdateMaterialTypesOperation;
-		this.UpdatePropertyTypesOperation = dtos.UpdatePropertyTypesOperation;
-		this.UpdatePluginsOperation = dtos.UpdatePluginsOperation;
-		this.UpdateVocabulariesOperation = dtos.UpdateVocabulariesOperation;
-		this.UpdateVocabularyTermsOperation = dtos.UpdateVocabularyTermsOperation;
-		this.UpdateExternalDmsOperation = dtos.UpdateExternalDmsOperation;
-		this.UpdateTagsOperation = dtos.UpdateTagsOperation;
-		this.UpdateAuthorizationGroupsOperation = dtos.UpdateAuthorizationGroupsOperation;
-		this.UpdatePersonsOperation = dtos.UpdatePersonsOperation;
-		this.UpdateOperationExecutionsOperation = dtos.UpdateOperationExecutionsOperation;
-		this.UpdateSemanticAnnotationsOperation = dtos.UpdateSemanticAnnotationsOperation;
-		this.UpdateQueriesOperation = dtos.UpdateQueriesOperation;
-		this.UpdatePersonalAccessTokensOperation = dtos.UpdatePersonalAccessTokensOperation;
-
-		this.GetSpacesOperation = dtos.GetSpacesOperation;
-		this.GetProjectsOperation = dtos.GetProjectsOperation;
-		this.GetExperimentsOperation = dtos.GetExperimentsOperation;
-		this.GetSamplesOperation = dtos.GetSamplesOperation;
-		this.GetDataSetsOperation = dtos.GetDataSetsOperation;
-		this.GetMaterialsOperation = dtos.GetMaterialsOperation;
-		this.GetVocabularyTermsOperation = dtos.GetVocabularyTermsOperation;
-		this.GetTagsOperation = dtos.GetTagsOperation;
-		this.GetSemanticAnnotationsOperation = dtos.GetSemanticAnnotationsOperation;
-		this.GetOperationExecutionsOperation = dtos.GetOperationExecutionsOperation;
-		this.GetQueriesOperation = dtos.GetQueriesOperation;
-		this.GetQueryDatabasesOperation = dtos.GetQueryDatabasesOperation;
-		this.GetPersonalAccessTokensOperation = dtos.GetPersonalAccessTokensOperation;
-
-		this.SearchSpacesOperation = dtos.SearchSpacesOperation;
-		this.SearchProjectsOperation = dtos.SearchProjectsOperation;
-		this.SearchExperimentsOperation = dtos.SearchExperimentsOperation;
-		this.SearchExperimentTypesOperation = dtos.SearchExperimentTypesOperation;
-		this.SearchSamplesOperation = dtos.SearchSamplesOperation;
-		this.SearchSampleTypesOperation = dtos.SearchSampleTypesOperation;
-		this.SearchDataSetsOperation = dtos.SearchDataSetsOperation;
-		this.SearchDataSetTypesOperation = dtos.SearchDataSetTypesOperation;
-		this.SearchMaterialsOperation = dtos.SearchMaterialsOperation;
-		this.SearchMaterialTypesOperation = dtos.SearchMaterialTypesOperation;
-		this.SearchPluginsOperation = dtos.SearchPluginsOperation;
-		this.SearchVocabulariesOperation = dtos.SearchVocabulariesOperation;
-		this.SearchVocabularyTermsOperation = dtos.SearchVocabularyTermsOperation;
-		this.SearchExternalDmsOperation = dtos.SearchExternalDmsOperation;
-		this.SearchTagsOperation = dtos.SearchTagsOperation;
-		this.SearchAuthorizationGroupsOperation = dtos.SearchAuthorizationGroupsOperation;
-		this.SearchRoleAssignmentsOperation = dtos.SearchRoleAssignmentsOperation;
-		this.SearchPersonsOperation = dtos.SearchPersonsOperation;
-		this.SearchCustomASServicesOperation = dtos.SearchCustomASServicesOperation;
-		this.SearchSearchDomainServicesOperation = dtos.SearchSearchDomainServicesOperation;
-		this.SearchAggregationServicesOperation = dtos.SearchAggregationServicesOperation;
-		this.SearchReportingServicesOperation = dtos.SearchReportingServicesOperation;
-		this.SearchProcessingServicesOperation = dtos.SearchProcessingServicesOperation;
-		this.SearchObjectKindModificationsOperation = dtos.SearchObjectKindModificationsOperation;
-		this.SearchGloballyOperation = dtos.SearchGloballyOperation;
-		this.SearchOperationExecutionsOperation = dtos.SearchOperationExecutionsOperation;
-		this.SearchDeletionsOperation = dtos.SearchDeletionsOperation;
-		this.SearchEventsOperation = dtos.SearchEventsOperation;
-		this.SearchDataStoresOperation = dtos.SearchDataStoresOperation;
-		this.SearchPropertyTypesOperation = dtos.SearchPropertyTypesOperation;
-		this.SearchPropertyAssignmentsOperation = dtos.SearchPropertyAssignmentsOperation;
-		this.SearchSemanticAnnotationsOperation = dtos.SearchSemanticAnnotationsOperation;
-		this.SearchQueriesOperation = dtos.SearchQueriesOperation;
-		this.SearchQueryDatabasesOperation = dtos.SearchQueryDatabasesOperation;
-		this.SearchPersonalAccessTokensOperation = dtos.SearchPersonalAccessTokensOperation;
-		this.SearchSessionInformationOperation = dtos.SearchSessionInformationOperation;
-
-		this.DeleteSpacesOperation = dtos.DeleteSpacesOperation;
-		this.DeleteProjectsOperation = dtos.DeleteProjectsOperation;
-		this.DeleteExperimentsOperation = dtos.DeleteExperimentsOperation;
-		this.DeleteSamplesOperation = dtos.DeleteSamplesOperation;
-		this.DeleteDataSetsOperation = dtos.DeleteDataSetsOperation;
-		this.DeleteMaterialsOperation = dtos.DeleteMaterialsOperation;
-		this.DeleteExternalDmsOperation = dtos.DeleteExternalDmsOperation;
-		this.DeletePluginsOperation = dtos.DeletePluginsOperation;
-		this.DeletePropertyTypesOperation = dtos.DeletePropertyTypesOperation;
-		this.DeleteVocabulariesOperation = dtos.DeleteVocabulariesOperation;
-		this.DeleteVocabularyTermsOperation = dtos.DeleteVocabularyTermsOperation;
-		this.DeleteExperimentTypesOperation = dtos.DeleteExperimentTypesOperation;
-		this.DeleteSampleTypesOperation = dtos.DeleteSampleTypesOperation;
-		this.DeleteDataSetTypesOperation = dtos.DeleteDataSetTypesOperation;
-		this.DeleteMaterialTypesOperation = dtos.DeleteMaterialTypesOperation;
-		this.DeleteTagsOperation = dtos.DeleteTagsOperation;
-		this.DeleteAuthorizationGroupsOperation = dtos.DeleteAuthorizationGroupsOperation;
-		this.DeleteRoleAssignmentsOperation = dtos.DeleteRoleAssignmentsOperation;
-		this.DeleteOperationExecutionsOperation = dtos.DeleteOperationExecutionsOperation;
-		this.DeleteSemanticAnnotationsOperation = dtos.DeleteSemanticAnnotationsOperation;
-		this.DeleteQueriesOperation = dtos.DeleteQueriesOperation;
-		this.DeletePersonsOperation = dtos.DeletePersonsOperation;
-		this.DeletePersonalAccessTokensOperation = dtos.DeletePersonalAccessTokensOperation;
-
-		this.RevertDeletionsOperation = dtos.RevertDeletionsOperation;
-		this.ConfirmDeletionsOperation = dtos.ConfirmDeletionsOperation;
-		this.ExecuteCustomASServiceOperation = dtos.ExecuteCustomASServiceOperation;
-		this.ExecuteAggregationServiceOperation = dtos.ExecuteAggregationServiceOperation;
-		this.ExecuteReportingServiceOperation = dtos.ExecuteReportingServiceOperation;
-		this.ExecuteProcessingServiceOperation = dtos.ExecuteProcessingServiceOperation;
-		this.ExecuteSearchDomainServiceOperation = dtos.ExecuteSearchDomainServiceOperation;
-		this.ExecuteQueryOperation = dtos.ExecuteQueryOperation;
-		this.ExecuteSqlOperation = dtos.ExecuteSqlOperation;
-		this.ArchiveDataSetsOperation = dtos.ArchiveDataSetsOperation;
-		this.UnarchiveDataSetsOperation = dtos.UnarchiveDataSetsOperation;
-		this.LockDataSetsOperation = dtos.LockDataSetsOperation;
-		this.UnlockDataSetsOperation = dtos.UnlockDataSetsOperation;
-
-		this.SynchronousOperationExecutionOptions = dtos.SynchronousOperationExecutionOptions;
-		this.AsynchronousOperationExecutionOptions = dtos.AsynchronousOperationExecutionOptions;
-		this.OperationExecutionDeletionOptions = dtos.OperationExecutionDeletionOptions;
-		this.OperationExecutionFetchOptions = dtos.OperationExecutionFetchOptions;
-		this.OperationExecutionPermId = dtos.OperationExecutionPermId;
-		this.OperationExecutionSearchCriteria = dtos.OperationExecutionSearchCriteria;
-		this.OperationExecutionUpdate = dtos.OperationExecutionUpdate;
-
-		this.AllFields = dtos.AllFields;
-		this.Attribute = dtos.Attribute;
-		this.ExportableKind = dtos.ExportableKind;
-		this.ExportablePermId = dtos.ExportablePermId;
-		this.ExportData = dtos.ExportData;
-		this.IExportableFields = dtos.IExportableFields;
-		this.SelectedFields = dtos.SelectedFields;
-		this.ExportFormat = dtos.ExportFormat;
-		this.ExportOptions = dtos.ExportOptions;
-		this.XlsTextFormat = dtos.XlsTextFormat;
-		this.ExportResult = dtos.ExportResult;
-
-		this.IImportData = dtos.IImportData;
-		this.ImportFormat = dtos.ImportFormat;
-		this.ImportScript = dtos.ImportScript;
-		this.UncompressedImportData = dtos.UncompressedImportData;
-		this.ZipImportData = dtos.ZipImportData;
-		this.ImportMode = dtos.ImportMode;
-		this.ImportOptions = dtos.ImportOptions;
-		this.ImportOperation = dtos.ImportOperation;
-		this.ImportOperationResult = dtos.ImportOperationResult;
-
-		this.getDtos = function() {
-			return dtos;
-		}
-
 		this.getId = function(entity) {
 			if (typeof entity["getPermId"] === 'function') {
 				return entity.getPermId();
@@ -490,11 +80,11 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 				return c.createFileExternalDms(facade).then(function(emdsPermId) {
 					var dataSet = new dtos.DataSetCreation();
 					dataSet.setAutoGeneratedCode(true);
-					dataSet.setTypeId(new c.EntityTypePermId("LINK_TYPE"));
+					dataSet.setTypeId(new dtos.EntityTypePermId("LINK_TYPE"));
 					dataSet.setExperimentId(experimentPermId);
-					dataSet.setDataStoreId(new c.DataStorePermId("DSS1"));
-					var linkedData = new c.LinkedDataCreation();
-					var cc = new c.ContentCopyCreation();
+					dataSet.setDataStoreId(new dtos.DataStorePermId("DSS1"));
+					var linkedData = new dtos.LinkedDataCreation();
+					var cc = new dtos.ContentCopyCreation();
 					cc.setExternalDmsId(emdsPermId);
 					cc.setPath(path);
 					cc.setGitCommitHash(gitCommitHash);
@@ -550,7 +140,7 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 			var start = new Date().getTime();
 
 			var searchAndWait = function() {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withPermId().thatEquals(dataSetCode);
 
 				facade.searchDataSets(criteria, c.createDataSetFetchOptions()).then(function(result) {
@@ -574,7 +164,7 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 		this.getResponseFromJSTestAggregationService = function(facade, params, callback) {
 			var c = this;
 			return $.ajax({
-				"url" : "http://" + testHost + ":20001/datastore_server/rmi-dss-api-v1.json",
+				"url" : "http://" + window.location.hostname + ":20001/datastore_server/rmi-dss-api-v1.json",
 				"type" : "POST",
 				"processData" : false,
 				"dataType" : "json",
@@ -603,7 +193,7 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 			creation.setCode(c.generateId("PROPERTY_TYPE"));
 			creation.setLabel("Testing");
 			creation.setDescription("testing");
-			creation.setDataType(c.DataType.VARCHAR);
+			creation.setDataType(dtos.DataType.VARCHAR);
 			creation.setMultiValue(false);
 			return facade.createPropertyTypes([ creation ]).then(function(permIds) {
 				return permIds[0];
@@ -614,9 +204,9 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 			var c = this;
 			var creation = new dtos.PluginCreation();
 			creation.setName(c.generateId("PLUGIN"));
-			creation.setPluginType(c.PluginType.DYNAMIC_PROPERTY);
+			creation.setPluginType(dtos.PluginType.DYNAMIC_PROPERTY);
 			creation.setScript("42");
-			creation.setEntityKind(c.EntityKind.SAMPLE);
+			creation.setEntityKind(dtos.EntityKind.SAMPLE);
 			return facade.createPlugins([ creation ]).then(function(permIds) {
 				return permIds[0];
 			});
@@ -635,7 +225,7 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 			var c = this;
 			var creation = new dtos.VocabularyTermCreation();
 			creation.setCode(c.generateId("VOCABULARY_TERM"));
-			creation.setVocabularyId(new c.VocabularyPermId("TEST-VOCABULARY"));
+			creation.setVocabularyId(new dtos.VocabularyPermId("TEST-VOCABULARY"));
 			return facade.createVocabularyTerms([ creation ]).then(function(permIds) {
 				return permIds[0];
 			});
@@ -681,7 +271,7 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 			var c = this;
 			var creation = new dtos.ExternalDmsCreation();
 			creation.setCode(c.generateId("EMDS"));
-			creation.setAddressType(c.ExternalDmsAddressType.URL);
+			creation.setAddressType(dtos.ExternalDmsAddressType.URL);
 			creation.setAddress("https://my-server:8443/my-app/q=${term}")
 			return facade.createExternalDms([ creation ]).then(function(permIds) {
 				return permIds[0];
@@ -690,10 +280,10 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 
 		this.createFileExternalDms = function(facade) {
 			var c = this;
-			var creation = new c.ExternalDmsCreation();
+			var creation = new dtos.ExternalDmsCreation();
 			creation.setCode(c.generateId("EMDS"));
 			creation.setLabel("Test File EDMS");
-			creation.setAddressType(c.ExternalDmsAddressType.FILE_SYSTEM);
+			creation.setAddressType(dtos.ExternalDmsAddressType.FILE_SYSTEM);
 			creation.setAddress("host:my/path")
 			return facade.createExternalDms([ creation ]).then(function(permIds) {
 				return permIds[0];
@@ -713,7 +303,7 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 			var c = this;
 			var creation = new dtos.AuthorizationGroupCreation();
 			creation.setCode(c.generateId("AUTHORIZATION_GROUP"));
-			creation.setUserIds([ new c.PersonPermId("power_user") ]);
+			creation.setUserIds([ new dtos.PersonPermId("power_user") ]);
 			return facade.createAuthorizationGroups([ creation ]).then(function(permIds) {
 				return permIds[0];
 			});
@@ -723,11 +313,11 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 			var c = this;
 			return c.createSpace(facade).then(function(spaceId) {
 				var creation = new dtos.RoleAssignmentCreation();
-				creation.setRole(c.Role.ADMIN);
+				creation.setRole(dtos.Role.ADMIN);
 				if (isUser) {
-					creation.setUserId(new c.PersonPermId("power_user"));
+					creation.setUserId(new dtos.PersonPermId("power_user"));
 				} else {
-					creation.setAuthorizationGroupId(new c.AuthorizationGroupPermId("TEST-GROUP"));
+					creation.setAuthorizationGroupId(new dtos.AuthorizationGroupPermId("TEST-GROUP"));
 				}
 				creation.setSpaceId(spaceId);
 				return facade.createRoleAssignments([ creation ]).then(function(permIds) {
@@ -774,8 +364,8 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 			var c = this;
 			var creation = new dtos.QueryCreation();
 			creation.setName(c.generateId("QUERY"));
-			creation.setDatabaseId(new c.QueryDatabaseName("openbisDB"));
-			creation.setQueryType(c.QueryType.GENERIC);
+			creation.setDatabaseId(new dtos.QueryDatabaseName("openbisDB"));
+			creation.setQueryType(dtos.QueryType.GENERIC);
 			creation.setSql("select code from spaces");
 			return facade.createQueries([ creation ]).then(function(techIds) {
 				return techIds[0];
@@ -817,7 +407,7 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 
 		this.findExperimentType = function(facade, id) {
 			var c = this;
-			var criteria = new c.ExperimentTypeSearchCriteria();
+			var criteria = new dtos.ExperimentTypeSearchCriteria();
 			criteria.withId().thatEquals(id);
 			return facade.searchExperimentTypes(criteria, c.createExperimentTypeFetchOptions()).then(function(results) {
 				return results.getObjects()[0];
@@ -833,7 +423,7 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 
 		this.findSampleType = function(facade, id) {
 			var c = this;
-			var criteria = new c.SampleTypeSearchCriteria();
+			var criteria = new dtos.SampleTypeSearchCriteria();
 			criteria.withId().thatEquals(id);
 			return facade.searchSampleTypes(criteria, c.createSampleTypeFetchOptions()).then(function(results) {
 				return results.getObjects()[0];
@@ -849,7 +439,7 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 
 		this.findDataSetType = function(facade, id) {
 			var c = this;
-			var criteria = new c.DataSetTypeSearchCriteria();
+			var criteria = new dtos.DataSetTypeSearchCriteria();
 			criteria.withId().thatEquals(id);
 			return facade.searchDataSetTypes(criteria, c.createDataSetTypeFetchOptions()).then(function(results) {
 				return results.getObjects()[0];
@@ -865,7 +455,7 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 
 		this.findMaterialType = function(facade, id) {
 			var c = this;
-			var criteria = new c.MaterialTypeSearchCriteria();
+			var criteria = new dtos.MaterialTypeSearchCriteria();
 			criteria.withId().thatEquals(id);
 			return facade.searchMaterialTypes(criteria, c.createMaterialTypeFetchOptions()).then(function(results) {
 				return results.getObjects()[0];
@@ -874,7 +464,7 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 
 		this.findPropertyType = function(facade, id) {
 			var c = this;
-			var criteria = new c.PropertyTypeSearchCriteria();
+			var criteria = new dtos.PropertyTypeSearchCriteria();
 			criteria.withId().thatEquals(id);
 			return facade.searchPropertyTypes(criteria, c.createPropertyTypeFetchOptions()).then(function(results) {
 				return results.getObjects()[0];
@@ -1074,7 +664,7 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 			var c = this;
 			var options = new dtos.VocabularyTermDeletionOptions();
 			options.setReason("test reason");
-			options.replace(id, new c.VocabularyTermPermId("TEST-TERM-1", "TEST-VOCABULARY"));
+			options.replace(id, new dtos.VocabularyTermPermId("TEST-TERM-1", "TEST-VOCABULARY"));
 			return facade.deleteVocabularyTerms([ id ], options);
 		}.bind(this);
 
@@ -1142,21 +732,13 @@ define([ 'jquery', 'openbis', 'underscore', 'test/dtos' ], function($, defaultOp
 			return object;
 		};
 
-		this.createFacade = function() {
+		this.login = function(facade) {
 			var dfd = $.Deferred();
-			dfd.resolve(new openbis(testApiUrl));
-			return dfd.promise();
-		};
 
-		this.createFacadeAndLogin = function() {
-			var dfd = $.Deferred();
-
-			this.createFacade().then(function(facade) {
-				facade.login(testUserId, testUserPassword).done(function() {
-					dfd.resolve(facade);
-				}).fail(function() {
-					dfd.reject(arguments);
-				});
+			facade.login(testUserId, testUserPassword).done(function() {
+				dfd.resolve(facade);
+			}).fail(function() {
+				dfd.reject(arguments);
 			});
 
 			return dfd.promise();
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/dtos.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/dtos.js
index d50dff1ff86b180581d34dabc089643af2fc87c6..dea86fa10209e102685516cc553a92739f61c50a 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/dtos.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/dtos.js
@@ -1,933 +1,1006 @@
-	// primitives and abstracts - we don't need to test them as they cannot be instantiated  
+//
+// This list can be generated automatically by api-openbis-javascript/bin/build.sh (the script produces the list and stored it in: api-openbis-javascript/bin/temp/files.js)
+//
+var fullTypes = [
+"as/dto/operation/AbstractOperationExecutionOptions",
+"as/dto/operation/SynchronousOperationExecutionOptions",
+"as/dto/operation/OperationExecutionAvailability",
+"as/dto/operation/OperationExecutionProgress",
+"as/dto/operation/update/UpdateOperationExecutionsOperationResult",
+"as/dto/operation/update/OperationExecutionUpdate",
+"as/dto/operation/update/UpdateOperationExecutionsOperation",
+"as/dto/operation/delete/DeleteOperationExecutionsOperationResult",
+"as/dto/operation/delete/DeleteOperationExecutionsOperation",
+"as/dto/operation/delete/OperationExecutionDeletionOptions",
+"as/dto/operation/SynchronousOperationExecutionResults",
+"as/dto/operation/OperationExecutionError",
+"as/dto/operation/OperationExecutionDetails",
+"as/dto/operation/OperationExecutionSummary",
+"as/dto/operation/OperationExecution",
+"as/dto/operation/fetchoptions/OperationExecutionSortOptions",
+"as/dto/operation/fetchoptions/OperationExecutionSummarySortOptions",
+"as/dto/operation/fetchoptions/OperationExecutionNotificationFetchOptions",
+"as/dto/operation/fetchoptions/OperationExecutionNotificationSortOptions",
+"as/dto/operation/fetchoptions/OperationExecutionSummaryFetchOptions",
+"as/dto/operation/fetchoptions/OperationExecutionFetchOptions",
+"as/dto/operation/fetchoptions/OperationExecutionDetailsSortOptions",
+"as/dto/operation/fetchoptions/OperationExecutionDetailsFetchOptions",
+"as/dto/operation/OperationExecutionEmailNotification",
+"as/dto/operation/get/GetOperationExecutionsOperation",
+"as/dto/operation/get/GetOperationExecutionsOperationResult",
+"as/dto/operation/search/SearchOperationExecutionsOperationResult",
+"as/dto/operation/search/SearchOperationExecutionsOperation",
+"as/dto/operation/search/OperationExecutionSearchCriteria",
+"as/dto/operation/IOperationExecutionResults",
+"as/dto/operation/OperationExecutionState",
+"as/dto/operation/IOperationExecutionOptions",
+"as/dto/operation/IOperationExecutionNotification",
+"as/dto/operation/id/OperationExecutionPermId",
+"as/dto/operation/id/IOperationExecutionId",
+"as/dto/operation/AsynchronousOperationExecutionResults",
+"as/dto/operation/AsynchronousOperationExecutionOptions",
+"as/dto/deletion/revert/RevertDeletionsOperation",
+"as/dto/deletion/revert/RevertDeletionsOperationResult",
+"as/dto/deletion/fetchoptions/DeletionFetchOptions",
+"as/dto/deletion/fetchoptions/DeletionSortOptions",
+"as/dto/deletion/fetchoptions/DeletedObjectFetchOptions",
+"as/dto/deletion/confirm/ConfirmDeletionsOperation",
+"as/dto/deletion/confirm/ConfirmDeletionsOperationResult",
+"as/dto/deletion/search/SearchDeletionsOperation",
+"as/dto/deletion/search/SearchDeletionsOperationResult",
+"as/dto/deletion/search/DeletionSearchCriteria",
+"as/dto/deletion/AbstractObjectDeletionOptions",
+"as/dto/deletion/id/DeletionTechId",
+"as/dto/deletion/id/IDeletionId",
+"as/dto/deletion/Deletion",
+"as/dto/deletion/DeletedObject",
+"as/dto/importer/options/ImportOptions",
+"as/dto/importer/options/ImportMode",
+"as/dto/importer/ImportOperation",
+"as/dto/importer/ImportOperationResult",
+"as/dto/importer/data/ImportFormat",
+"as/dto/importer/data/ZipImportData",
+"as/dto/importer/data/UncompressedImportData",
+"as/dto/importer/data/ImportScript",
+"as/dto/importer/data/IImportData",
+"as/dto/entitytype/update/IEntityTypeUpdate",
+"as/dto/entitytype/update/PropertyAssignmentListUpdateValue",
+"as/dto/entitytype/EntityKind",
+"as/dto/entitytype/fetchoptions/EntityTypeFetchOptions",
+"as/dto/entitytype/fetchoptions/EntityTypeSortOptions",
+"as/dto/entitytype/search/EntityTypeSearchCriteria",
+"as/dto/entitytype/search/AbstractEntityTypeSearchCriteria",
+"as/dto/entitytype/search/EntityKindSearchCriteria",
+"as/dto/entitytype/id/EntityTypePermId",
+"as/dto/entitytype/id/IEntityTypeId",
+"as/dto/entitytype/create/IEntityTypeCreation",
+"as/dto/person/update/UpdatePersonsOperation",
+"as/dto/person/update/UpdatePersonsOperationResult",
+"as/dto/person/update/PersonUpdate",
+"as/dto/person/delete/PersonDeletionOptions",
+"as/dto/person/delete/DeletePersonsOperationResult",
+"as/dto/person/delete/DeletePersonsOperation",
+"as/dto/person/fetchoptions/PersonFetchOptions",
+"as/dto/person/fetchoptions/PersonSortOptions",
+"as/dto/person/get/GetPersonsOperation",
+"as/dto/person/get/GetPersonsOperationResult",
+"as/dto/person/Person",
+"as/dto/person/search/SearchPersonsOperation",
+"as/dto/person/search/PersonSearchCriteria",
+"as/dto/person/search/EmailSearchCriteria",
+"as/dto/person/search/RegistratorSearchCriteria",
+"as/dto/person/search/UserIdsSearchCriteria",
+"as/dto/person/search/ModifierSearchCriteria",
+"as/dto/person/search/FirstNameSearchCriteria",
+"as/dto/person/search/UserIdSearchCriteria",
+"as/dto/person/search/LastNameSearchCriteria",
+"as/dto/person/search/SearchPersonsOperationResult",
+"as/dto/person/id/Me",
+"as/dto/person/id/IPersonId",
+"as/dto/person/id/PersonPermId",
+"as/dto/person/create/CreatePersonsOperationResult",
+"as/dto/person/create/PersonCreation",
+"as/dto/person/create/CreatePersonsOperation",
+"as/dto/property/update/UpdatePropertyTypesOperationResult",
+"as/dto/property/update/PropertyTypeUpdate",
+"as/dto/property/update/UpdatePropertyTypesOperation",
+"as/dto/property/delete/PropertyTypeDeletionOptions",
+"as/dto/property/delete/DeletePropertyTypesOperationResult",
+"as/dto/property/delete/DeletePropertyTypesOperation",
+"as/dto/property/fetchoptions/PropertyTypeFetchOptions",
+"as/dto/property/fetchoptions/PropertyTypeSortOptions",
+"as/dto/property/fetchoptions/PropertyAssignmentSortOptions",
+"as/dto/property/fetchoptions/PropertyAssignmentFetchOptions",
+"as/dto/property/fetchoptions/PropertyFetchOptions",
+"as/dto/property/get/GetPropertyTypesOperation",
+"as/dto/property/get/GetPropertyTypesOperationResult",
+"as/dto/property/search/SearchPropertyTypesOperationResult",
+"as/dto/property/search/PropertyTypeSearchCriteria",
+"as/dto/property/search/SearchPropertyAssignmentsOperation",
+"as/dto/property/search/SearchPropertyTypesOperation",
+"as/dto/property/search/SearchPropertyAssignmentsOperationResult",
+"as/dto/property/search/PropertyAssignmentSearchCriteria",
+"as/dto/property/DataType",
+"as/dto/property/PropertyAssignment",
+"as/dto/property/PropertyType",
+"as/dto/property/id/PropertyAssignmentPermId",
+"as/dto/property/id/PropertyTypePermId",
+"as/dto/property/id/IPropertyAssignmentId",
+"as/dto/property/id/IPropertyTypeId",
+"as/dto/property/create/PropertyTypeCreation",
+"as/dto/property/create/CreatePropertyTypesOperationResult",
+"as/dto/property/create/CreatePropertyTypesOperation",
+"as/dto/property/create/PropertyAssignmentCreation",
+"as/dto/entity/create/CreateCodesOperationResult",
+"as/dto/entity/create/CreatePermIdsOperationResult",
+"as/dto/entity/create/CreatePermIdsOperation",
+"as/dto/entity/create/CreateCodesOperation",
+"as/dto/dataset/ContentCopy",
+"as/dto/dataset/LocatorType",
+"as/dto/dataset/ArchivingStatus",
+"as/dto/dataset/archive/ArchiveDataSetsOperation",
+"as/dto/dataset/archive/ArchiveDataSetsOperationResult",
+"as/dto/dataset/archive/DataSetArchiveOptions",
+"as/dto/dataset/update/LinkedDataUpdate",
+"as/dto/dataset/update/UpdateDataSetTypesOperation",
+"as/dto/dataset/update/UpdateDataSetTypesOperationResult",
+"as/dto/dataset/update/PhysicalDataUpdate",
+"as/dto/dataset/update/ContentCopyListUpdateValue",
+"as/dto/dataset/update/UpdateDataSetsOperationResult",
+"as/dto/dataset/update/DataSetTypeUpdate",
+"as/dto/dataset/update/UpdateDataSetsOperation",
+"as/dto/dataset/update/DataSetUpdate",
+"as/dto/dataset/delete/DeleteDataSetTypesOperationResult",
+"as/dto/dataset/delete/DataSetDeletionOptions",
+"as/dto/dataset/delete/DeleteDataSetsOperationResult",
+"as/dto/dataset/delete/DataSetTypeDeletionOptions",
+"as/dto/dataset/delete/DeleteDataSetTypesOperation",
+"as/dto/dataset/delete/DeleteDataSetsOperation",
+"as/dto/dataset/StorageFormat",
+"as/dto/dataset/fetchoptions/DataSetTypeFetchOptions",
+"as/dto/dataset/fetchoptions/FileFormatTypeSortOptions",
+"as/dto/dataset/fetchoptions/LocatorTypeSortOptions",
+"as/dto/dataset/fetchoptions/LinkedDataSortOptions",
+"as/dto/dataset/fetchoptions/StorageFormatFetchOptions",
+"as/dto/dataset/fetchoptions/DataSetTypeSortOptions",
+"as/dto/dataset/fetchoptions/LocatorTypeFetchOptions",
+"as/dto/dataset/fetchoptions/LinkedDataFetchOptions",
+"as/dto/dataset/fetchoptions/PhysicalDataFetchOptions",
+"as/dto/dataset/fetchoptions/PhysicalDataSortOptions",
+"as/dto/dataset/fetchoptions/FileFormatTypeFetchOptions",
+"as/dto/dataset/fetchoptions/DataSetFetchOptions",
+"as/dto/dataset/fetchoptions/DataSetSortOptions",
+"as/dto/dataset/fetchoptions/StorageFormatSortOptions",
+"as/dto/dataset/lock/LockDataSetsOperationResult",
+"as/dto/dataset/lock/LockDataSetsOperation",
+"as/dto/dataset/lock/DataSetLockOptions",
+"as/dto/dataset/get/GetDataSetTypesOperationResult",
+"as/dto/dataset/get/GetDataSetTypesOperation",
+"as/dto/dataset/get/GetDataSetsOperation",
+"as/dto/dataset/get/GetDataSetsOperationResult",
+"as/dto/dataset/PhysicalData",
+"as/dto/dataset/search/GitRepositoryIdSearchCriteria",
+"as/dto/dataset/search/PathSearchCriteria",
+"as/dto/dataset/search/ContentCopySearchCriteria",
+"as/dto/dataset/search/StorageFormatSearchCriteria",
+"as/dto/dataset/search/DataSetSearchRelation",
+"as/dto/dataset/search/StorageConfirmationSearchCriteria",
+"as/dto/dataset/search/DataSetSearchCriteria",
+"as/dto/dataset/search/SearchDataSetTypesOperation",
+"as/dto/dataset/search/LinkedDataSearchCriteria",
+"as/dto/dataset/search/SizeSearchCriteria",
+"as/dto/dataset/search/SearchDataSetsOperationResult",
+"as/dto/dataset/search/GitCommitHashSearchCriteria",
+"as/dto/dataset/search/ShareIdSearchCriteria",
+"as/dto/dataset/search/LocatorTypeSearchCriteria",
+"as/dto/dataset/search/LocationSearchCriteria",
+"as/dto/dataset/search/DataSetTypeSearchCriteria",
+"as/dto/dataset/search/SearchDataSetsOperation",
+"as/dto/dataset/search/ArchivingRequestedSearchCriteria",
+"as/dto/dataset/search/PresentInArchiveSearchCriteria",
+"as/dto/dataset/search/SpeedHintSearchCriteria",
+"as/dto/dataset/search/CompleteSearchCriteria",
+"as/dto/dataset/search/FileFormatTypeSearchCriteria",
+"as/dto/dataset/search/SearchDataSetTypesOperationResult",
+"as/dto/dataset/search/PhysicalDataSearchCriteria",
+"as/dto/dataset/search/StatusSearchCriteria",
+"as/dto/dataset/search/ExternalCodeSearchCriteria",
+"as/dto/dataset/search/ExternalDmsSearchCriteria",
+"as/dto/dataset/unarchive/UnarchiveDataSetsOperation",
+"as/dto/dataset/unarchive/DataSetUnarchiveOptions",
+"as/dto/dataset/unarchive/UnarchiveDataSetsOperationResult",
+"as/dto/dataset/DataSetType",
+"as/dto/dataset/history/DataSetRelationType",
+"as/dto/dataset/unlock/UnlockDataSetsOperationResult",
+"as/dto/dataset/unlock/UnlockDataSetsOperation",
+"as/dto/dataset/unlock/DataSetUnlockOptions",
+"as/dto/dataset/id/StorageFormatPermId",
+"as/dto/dataset/id/BdsDirectoryStorageFormatPermId",
+"as/dto/dataset/id/ProprietaryStorageFormatPermId",
+"as/dto/dataset/id/RelativeLocationLocatorTypePermId",
+"as/dto/dataset/id/ILocatorTypeId",
+"as/dto/dataset/id/IDataSetId",
+"as/dto/dataset/id/IStorageFormatId",
+"as/dto/dataset/id/IFileFormatTypeId",
+"as/dto/dataset/id/ContentCopyPermId",
+"as/dto/dataset/id/LocatorTypePermId",
+"as/dto/dataset/id/IContentCopyId",
+"as/dto/dataset/id/DataSetPermId",
+"as/dto/dataset/id/FileFormatTypePermId",
+"as/dto/dataset/LinkedData",
+"as/dto/dataset/FileFormatType",
+"as/dto/dataset/DataSet",
+"as/dto/dataset/create/DataSetTypeCreation",
+"as/dto/dataset/create/CreateDataSetsOperationResult",
+"as/dto/dataset/create/ContentCopyCreation",
+"as/dto/dataset/create/CreateDataSetTypesOperation",
+"as/dto/dataset/create/DataSetCreation",
+"as/dto/dataset/create/CreateDataSetTypesOperationResult",
+"as/dto/dataset/create/CreateDataSetsOperation",
+"as/dto/dataset/create/LinkedDataCreation",
+"as/dto/dataset/Complete",
+"as/dto/dataset/DataSetKind",
+"as/dto/attachment/update/AttachmentListUpdateValue",
+"as/dto/attachment/fetchoptions/AttachmentSortOptions",
+"as/dto/attachment/fetchoptions/AttachmentFetchOptions",
+"as/dto/attachment/id/IAttachmentId",
+"as/dto/attachment/id/AttachmentFileName",
+"as/dto/attachment/Attachment",
+"as/dto/attachment/create/AttachmentCreation",
+"as/dto/roleassignment/Role",
+"as/dto/roleassignment/delete/RoleAssignmentDeletionOptions",
+"as/dto/roleassignment/delete/DeleteRoleAssignmentsOperation",
+"as/dto/roleassignment/delete/DeleteRoleAssignmentsOperationResult",
+"as/dto/roleassignment/fetchoptions/RoleAssignmentFetchOptions",
+"as/dto/roleassignment/fetchoptions/RoleAssignmentSortOptions",
+"as/dto/roleassignment/get/GetRoleAssignmentsOperation",
+"as/dto/roleassignment/get/GetRoleAssignmentsOperationResult",
+"as/dto/roleassignment/RoleLevel",
+"as/dto/roleassignment/search/RoleAssignmentSearchCriteria",
+"as/dto/roleassignment/search/SearchRoleAssignmentsOperationResult",
+"as/dto/roleassignment/search/SearchRoleAssignmentsOperation",
+"as/dto/roleassignment/id/RoleAssignmentTechId",
+"as/dto/roleassignment/id/IRoleAssignmentId",
+"as/dto/roleassignment/create/CreateRoleAssignmentsOperationResult",
+"as/dto/roleassignment/create/RoleAssignmentCreation",
+"as/dto/roleassignment/create/CreateRoleAssignmentsOperation",
+"as/dto/roleassignment/RoleAssignment",
+"as/dto/webapp/update/WebAppSettingsUpdateValue",
+"as/dto/webapp/WebAppSettings",
+"as/dto/webapp/fetchoptions/WebAppSettingsFetchOptions",
+"as/dto/webapp/fetchoptions/WebAppSettingsSortOptions",
+"as/dto/webapp/WebAppSetting",
+"as/dto/webapp/create/WebAppSettingCreation",
+"as/dto/plugin/PluginType",
+"as/dto/plugin/update/UpdatePluginsOperationResult",
+"as/dto/plugin/update/PluginUpdate",
+"as/dto/plugin/update/UpdatePluginsOperation",
+"as/dto/plugin/delete/DeletePluginsOperation",
+"as/dto/plugin/delete/PluginDeletionOptions",
+"as/dto/plugin/delete/DeletePluginsOperationResult",
+"as/dto/plugin/fetchoptions/PluginSortOptions",
+"as/dto/plugin/fetchoptions/PluginFetchOptions",
+"as/dto/plugin/PluginKind",
+"as/dto/plugin/get/GetPluginsOperationResult",
+"as/dto/plugin/get/GetPluginsOperation",
+"as/dto/plugin/search/SearchPluginsOperationResult",
+"as/dto/plugin/search/PluginTypeSearchCriteria",
+"as/dto/plugin/search/SearchPluginsOperation",
+"as/dto/plugin/search/PluginSearchCriteria",
+"as/dto/plugin/search/PluginKindSearchCriteria",
+"as/dto/plugin/evaluate/EvaluatePluginOperation",
+"as/dto/plugin/evaluate/PluginEvaluationOptions",
+"as/dto/plugin/evaluate/DynamicPropertyPluginEvaluationOptions",
+"as/dto/plugin/evaluate/DynamicPropertyPluginEvaluationResult",
+"as/dto/plugin/evaluate/EntityValidationPluginEvaluationResult",
+"as/dto/plugin/evaluate/PluginEvaluationResult",
+"as/dto/plugin/evaluate/EntityValidationPluginEvaluationOptions",
+"as/dto/plugin/evaluate/EvaluatePluginOperationResult",
+"as/dto/plugin/id/IPluginId",
+"as/dto/plugin/id/PluginPermId",
+"as/dto/plugin/create/CreatePluginsOperation",
+"as/dto/plugin/create/PluginCreation",
+"as/dto/plugin/create/CreatePluginsOperationResult",
+"as/dto/plugin/Plugin",
+"as/dto/server/ServerInformation",
+"as/dto/externaldms/update/ExternalDmsUpdate",
+"as/dto/externaldms/update/UpdateExternalDmsOperationResult",
+"as/dto/externaldms/update/UpdateExternalDmsOperation",
+"as/dto/externaldms/delete/ExternalDmsDeletionOptions",
+"as/dto/externaldms/delete/DeleteExternalDmsOperationResult",
+"as/dto/externaldms/delete/DeleteExternalDmsOperation",
+"as/dto/externaldms/ExternalDmsAddressType",
+"as/dto/externaldms/fetchoptions/ExternalDmsSortOptions",
+"as/dto/externaldms/fetchoptions/ExternalDmsFetchOptions",
+"as/dto/externaldms/get/GetExternalDmsOperationResult",
+"as/dto/externaldms/get/GetExternalDmsOperation",
+"as/dto/externaldms/search/LabelSearchCriteria",
+"as/dto/externaldms/search/AddressSearchCriteria",
+"as/dto/externaldms/search/SearchExternalDmsOperationResult",
+"as/dto/externaldms/search/ExternalDmsTypeSearchCriteria",
+"as/dto/externaldms/search/SearchExternalDmsOperation",
+"as/dto/externaldms/search/ExternalDmsSearchCriteria",
+"as/dto/externaldms/id/ExternalDmsPermId",
+"as/dto/externaldms/id/IExternalDmsId",
+"as/dto/externaldms/create/ExternalDmsCreation",
+"as/dto/externaldms/create/CreateExternalDmsOperation",
+"as/dto/externaldms/create/CreateExternalDmsOperationResult",
+"as/dto/externaldms/ExternalDms",
+"as/dto/project/update/UpdateProjectsOperationResult",
+"as/dto/project/update/UpdateProjectsOperation",
+"as/dto/project/update/ProjectUpdate",
+"as/dto/project/delete/ProjectDeletionOptions",
+"as/dto/project/delete/DeleteProjectsOperationResult",
+"as/dto/project/delete/DeleteProjectsOperation",
+"as/dto/project/fetchoptions/ProjectFetchOptions",
+"as/dto/project/fetchoptions/ProjectSortOptions",
+"as/dto/project/get/GetProjectsOperation",
+"as/dto/project/get/GetProjectsOperationResult",
+"as/dto/project/search/ProjectSearchCriteria",
+"as/dto/project/search/SearchProjectsOperationResult",
+"as/dto/project/search/SearchProjectsOperation",
+"as/dto/project/search/NoProjectSearchCriteria",
+"as/dto/project/Project",
+"as/dto/project/history/ProjectRelationType",
+"as/dto/project/id/IProjectId",
+"as/dto/project/id/ProjectPermId",
+"as/dto/project/id/ProjectIdentifier",
+"as/dto/project/create/CreateProjectsOperationResult",
+"as/dto/project/create/ProjectCreation",
+"as/dto/project/create/CreateProjectsOperation",
+"as/dto/datastore/fetchoptions/DataStoreSortOptions",
+"as/dto/datastore/fetchoptions/DataStoreFetchOptions",
+"as/dto/datastore/search/DataStoreSearchCriteria",
+"as/dto/datastore/search/SearchDataStoresOperationResult",
+"as/dto/datastore/search/SearchDataStoresOperation",
+"as/dto/datastore/DataStore",
+"as/dto/datastore/id/IDataStoreId",
+"as/dto/datastore/id/DataStorePermId",
+"as/dto/common/operation/IOperationExecutionProgress",
+"as/dto/common/operation/IOperationExecutionError",
+"as/dto/common/operation/IOperation",
+"as/dto/common/operation/IOperationResult",
+"as/dto/common/ITableCell",
+"as/dto/common/TableDoubleCell",
+"as/dto/common/update/ListUpdateValue",
+"as/dto/common/update/ListUpdateActionSet",
+"as/dto/common/update/FieldUpdateValue",
+"as/dto/common/update/IUpdate",
+"as/dto/common/update/ListUpdateMapValues",
+"as/dto/common/update/ListUpdateAction",
+"as/dto/common/update/IdListUpdateValue",
+"as/dto/common/update/UpdateObjectsOperation",
+"as/dto/common/update/ListUpdateActionAdd",
+"as/dto/common/update/RelationshipUpdate",
+"as/dto/common/update/IObjectUpdate",
+"as/dto/common/update/UpdateObjectsOperationResult",
+"as/dto/common/update/ListUpdateActionRemove",
+"as/dto/common/delete/DeleteObjectsOperation",
+"as/dto/common/delete/DeleteObjectsWithTrashOperationResult",
+"as/dto/common/delete/DeleteObjectsOperationResult",
+"as/dto/common/delete/DeleteObjectsWithoutTrashOperationResult",
+"as/dto/common/TableColumn",
+"as/dto/common/fetchoptions/EntitySortOptions",
+"as/dto/common/fetchoptions/Sorting",
+"as/dto/common/fetchoptions/CacheMode",
+"as/dto/common/fetchoptions/FetchOptions",
+"as/dto/common/fetchoptions/EntityWithPropertiesSortOptions",
+"as/dto/common/fetchoptions/EmptyFetchOptions",
+"as/dto/common/fetchoptions/SortParameter",
+"as/dto/common/fetchoptions/SortOrder",
+"as/dto/common/fetchoptions/SortOptions",
+"as/dto/common/Relationship",
+"as/dto/common/get/GetObjectsOperationResult",
+"as/dto/common/get/GetServerPublicInformationOperation",
+"as/dto/common/get/GetServerInformationOperationResult",
+"as/dto/common/get/GetServerInformationOperation",
+"as/dto/common/get/GetServerPublicInformationOperationResult",
+"as/dto/common/get/GetObjectsOperation",
+"as/dto/common/TableModel",
+"as/dto/common/TableStringCell",
+"as/dto/common/search/SamplePropertySearchCriteria",
+"as/dto/common/search/StringContainsExactlyValue",
+"as/dto/common/search/AbstractFieldSearchCriteria",
+"as/dto/common/search/StringLessThanOrEqualToValue",
+"as/dto/common/search/IdSearchCriteria",
+"as/dto/common/search/AbstractNumberValue",
+"as/dto/common/search/CodesSearchCriteria",
+"as/dto/common/search/AnyStringValue",
+"as/dto/common/search/NumberGreaterThanOrEqualToValue",
+"as/dto/common/search/DateEarlierThanOrEqualToValue",
+"as/dto/common/search/IDate",
+"as/dto/common/search/StringEqualToValue",
+"as/dto/common/search/AbstractObjectSearchCriteria",
+"as/dto/common/search/DateObjectLaterThanValue",
+"as/dto/common/search/DateLaterThanOrEqualToValue",
+"as/dto/common/search/ModificationDateSearchCriteria",
+"as/dto/common/search/CodeSearchCriteria",
+"as/dto/common/search/BooleanFieldSearchCriteria",
+"as/dto/common/search/SearchObjectsOperationResult",
+"as/dto/common/search/DateEarlierThanValue",
+"as/dto/common/search/LongDateFormat",
+"as/dto/common/search/CollectionFieldSearchCriteria",
+"as/dto/common/search/IdsSearchCriteria",
+"as/dto/common/search/AbstractTimeZoneValue",
+"as/dto/common/search/DateEqualToValue",
+"as/dto/common/search/AbstractEntitySearchCriteria",
+"as/dto/common/search/DateObjectEarlierThanValue",
+"as/dto/common/search/StringFieldSearchCriteria",
+"as/dto/common/search/AnyPropertySearchCriteria",
+"as/dto/common/search/DateLaterThanValue",
+"as/dto/common/search/AbstractValue",
+"as/dto/common/search/DescriptionSearchCriteria",
+"as/dto/common/search/AbstractDateObjectValue",
+"as/dto/common/search/AnyNumberPropertySearchCriteria",
+"as/dto/common/search/StringPropertySearchCriteria",
+"as/dto/common/search/StringGreaterThanValue",
+"as/dto/common/search/DatePropertySearchCriteria",
+"as/dto/common/search/SearchFieldType",
+"as/dto/common/search/NumberFieldSearchCriteria",
+"as/dto/common/search/AnyBooleanPropertySearchCriteria",
+"as/dto/common/search/AnyFieldSearchCriteria",
+"as/dto/common/search/DateObjectEarlierThanOrEqualToValue",
+"as/dto/common/search/NameSearchCriteria",
+"as/dto/common/search/TimeZone",
+"as/dto/common/search/AbstractDateValue",
+"as/dto/common/search/ISearchCriteria",
+"as/dto/common/search/SearchOperator",
+"as/dto/common/search/StringMatchesValue",
+"as/dto/common/search/StringContainsValue",
+"as/dto/common/search/NumberPropertySearchCriteria",
+"as/dto/common/search/StringStartsWithValue",
+"as/dto/common/search/ControlledVocabularyPropertySearchCriteria",
+"as/dto/common/search/StringEndsWithValue",
+"as/dto/common/search/StringLessThanValue",
+"as/dto/common/search/DateObjectLaterThanOrEqualToValue",
+"as/dto/common/search/AnyStringPropertySearchCriteria",
+"as/dto/common/search/TextAttributeSearchCriteria",
+"as/dto/common/search/AbstractSearchCriteria",
+"as/dto/common/search/NormalDateFormat",
+"as/dto/common/search/RegistrationDateSearchCriteria",
+"as/dto/common/search/BooleanPropertySearchCriteria",
+"as/dto/common/search/NumberLessThanValue",
+"as/dto/common/search/ShortDateFormat",
+"as/dto/common/search/AbstractCompositeSearchCriteria",
+"as/dto/common/search/IdentifierSearchCriteria",
+"as/dto/common/search/NumberLessThanOrEqualToValue",
+"as/dto/common/search/SearchObjectsOperation",
+"as/dto/common/search/EnumFieldSearchCriteria",
+"as/dto/common/search/NumberGreaterThanValue",
+"as/dto/common/search/PermIdSearchCriteria",
+"as/dto/common/search/DateFieldSearchCriteria",
+"as/dto/common/search/ITimeZone",
+"as/dto/common/search/StringGreaterThanOrEqualToValue",
+"as/dto/common/search/SearchResult",
+"as/dto/common/search/DateObjectEqualToValue",
+"as/dto/common/search/StrictlyStringPropertySearchCriteria",
+"as/dto/common/search/AbstractStringValue",
+"as/dto/common/search/TechIdSearchCriteria",
+"as/dto/common/search/AnyDatePropertySearchCriteria",
+"as/dto/common/search/IDateFormat",
+"as/dto/common/search/ServerTimeZone",
+"as/dto/common/search/NumberEqualToValue",
+"as/dto/common/Enum",
+"as/dto/common/TableLongCell",
+"as/dto/common/id/ObjectIdentifier",
+"as/dto/common/id/IObjectId",
+"as/dto/common/id/ObjectTechId",
+"as/dto/common/id/CreationId",
+"as/dto/common/id/ObjectPermId",
+"as/dto/common/create/CreateObjectsOperation",
+"as/dto/common/create/ICreation",
+"as/dto/common/create/CreateObjectsOperationResult",
+"as/dto/common/create/IObjectCreation",
+"as/dto/common/interfaces/IModificationDateHolder",
+"as/dto/common/interfaces/IProjectHolder",
+"as/dto/common/interfaces/IDescriptionHolder",
+"as/dto/common/interfaces/IMetaDataUpdateHolder",
+"as/dto/common/interfaces/ISpaceHolder",
+"as/dto/common/interfaces/IMaterialsHolder",
+"as/dto/common/interfaces/IExperimentsHolder",
+"as/dto/common/interfaces/IRegistrationDateHolder",
+"as/dto/common/interfaces/IPropertiesHolder",
+"as/dto/common/interfaces/IExperimentHolder",
+"as/dto/common/interfaces/IEntityType",
+"as/dto/common/interfaces/IDataSetCodesHolder",
+"as/dto/common/interfaces/IPermIdHolder",
+"as/dto/common/interfaces/IMaterialPropertiesHolder",
+"as/dto/common/interfaces/IPropertyAssignmentsHolder",
+"as/dto/common/interfaces/IRegistratorHolder",
+"as/dto/common/interfaces/ICreationIdHolder",
+"as/dto/common/interfaces/INameHolder",
+"as/dto/common/interfaces/IProjectsHolder",
+"as/dto/common/interfaces/ISamplesHolder",
+"as/dto/common/interfaces/IEntityTypeHolder",
+"as/dto/common/interfaces/IModifierHolder",
+"as/dto/common/interfaces/ITagsHolder",
+"as/dto/common/interfaces/ISampleHolder",
+"as/dto/common/interfaces/IPropertyTypeHolder",
+"as/dto/common/interfaces/ICodeHolder",
+"as/dto/common/interfaces/IParentChildrenHolder",
+"as/dto/common/interfaces/ILabelHolder",
+"as/dto/common/interfaces/IAttachmentsHolder",
+"as/dto/common/interfaces/IIdentifierHolder",
+"as/dto/common/interfaces/IValidationPluginHolder",
+"as/dto/common/interfaces/IOwnerHolder",
+"as/dto/common/interfaces/IDataSetsHolder",
+"as/dto/common/interfaces/ISemanticAnnotationsHolder",
+"as/dto/common/interfaces/SortIgnore",
+"as/dto/rights/Right",
+"as/dto/rights/fetchoptions/RightsFetchOptions",
+"as/dto/rights/get/GetRightsOperation",
+"as/dto/rights/get/GetRightsOperationResult",
+"as/dto/rights/Rights",
+"as/dto/history/HistoryEntry",
+"as/dto/history/RelationHistoryEntry",
+"as/dto/history/fetchoptions/HistoryEntrySortOptions",
+"as/dto/history/fetchoptions/HistoryEntryFetchOptions",
+"as/dto/history/PropertyHistoryEntry",
+"as/dto/history/IRelationType",
+"as/dto/history/id/UnknownRelatedObjectId",
+"as/dto/history/ContentCopyHistoryEntry",
+"as/dto/sample/update/SampleUpdate",
+"as/dto/sample/update/SampleTypeUpdate",
+"as/dto/sample/update/UpdateSampleTypesOperation",
+"as/dto/sample/update/UpdateSampleTypesOperationResult",
+"as/dto/sample/update/UpdateSamplesOperation",
+"as/dto/sample/update/UpdateSamplesOperationResult",
+"as/dto/sample/delete/SampleTypeDeletionOptions",
+"as/dto/sample/delete/DeleteSamplesOperation",
+"as/dto/sample/delete/SampleDeletionOptions",
+"as/dto/sample/delete/DeleteSampleTypesOperation",
+"as/dto/sample/delete/DeleteSampleTypesOperationResult",
+"as/dto/sample/delete/DeleteSamplesOperationResult",
+"as/dto/sample/fetchoptions/SampleTypeSortOptions",
+"as/dto/sample/fetchoptions/SampleSortOptions",
+"as/dto/sample/fetchoptions/SampleFetchOptions",
+"as/dto/sample/fetchoptions/SampleTypeFetchOptions",
+"as/dto/sample/get/GetSampleTypesOperation",
+"as/dto/sample/get/GetSamplesOperationResult",
+"as/dto/sample/get/GetSamplesOperation",
+"as/dto/sample/get/GetSampleTypesOperationResult",
+"as/dto/sample/search/NoSampleContainerSearchCriteria",
+"as/dto/sample/search/NoSampleSearchCriteria",
+"as/dto/sample/search/SampleTypeSearchCriteria",
+"as/dto/sample/search/SearchSamplesOperationResult",
+"as/dto/sample/search/SampleSearchCriteria",
+"as/dto/sample/search/SampleSearchRelation",
+"as/dto/sample/search/SearchSamplesOperation",
+"as/dto/sample/search/SearchSampleTypesOperation",
+"as/dto/sample/search/ListableSampleTypeSearchCriteria",
+"as/dto/sample/search/SearchSampleTypesOperationResult",
+"as/dto/sample/history/SampleRelationType",
+"as/dto/sample/id/SamplePermId",
+"as/dto/sample/id/ISampleId",
+"as/dto/sample/id/SampleIdentifier",
+"as/dto/sample/SampleType",
+"as/dto/sample/create/SampleTypeCreation",
+"as/dto/sample/create/CreateSampleTypesOperationResult",
+"as/dto/sample/create/CreateSamplesOperation",
+"as/dto/sample/create/SampleCreation",
+"as/dto/sample/create/CreateSampleTypesOperation",
+"as/dto/sample/create/CreateSamplesOperationResult",
+"as/dto/sample/Sample",
+"as/dto/experiment/update/UpdateExperimentsOperationResult",
+"as/dto/experiment/update/ExperimentTypeUpdate",
+"as/dto/experiment/update/ExperimentUpdate",
+"as/dto/experiment/update/UpdateExperimentsOperation",
+"as/dto/experiment/update/UpdateExperimentTypesOperation",
+"as/dto/experiment/update/UpdateExperimentTypesOperationResult",
+"as/dto/experiment/delete/DeleteExperimentsOperationResult",
+"as/dto/experiment/delete/DeleteExperimentTypesOperation",
+"as/dto/experiment/delete/ExperimentDeletionOptions",
+"as/dto/experiment/delete/ExperimentTypeDeletionOptions",
+"as/dto/experiment/delete/DeleteExperimentTypesOperationResult",
+"as/dto/experiment/delete/DeleteExperimentsOperation",
+"as/dto/experiment/fetchoptions/ExperimentSortOptions",
+"as/dto/experiment/fetchoptions/ExperimentTypeFetchOptions",
+"as/dto/experiment/fetchoptions/ExperimentFetchOptions",
+"as/dto/experiment/fetchoptions/ExperimentTypeSortOptions",
+"as/dto/experiment/get/GetExperimentsOperationResult",
+"as/dto/experiment/get/GetExperimentTypesOperationResult",
+"as/dto/experiment/get/GetExperimentsOperation",
+"as/dto/experiment/get/GetExperimentTypesOperation",
+"as/dto/experiment/search/NoExperimentSearchCriteria",
+"as/dto/experiment/search/SearchExperimentsOperationResult",
+"as/dto/experiment/search/SearchExperimentTypesOperation",
+"as/dto/experiment/search/ExperimentSearchCriteria",
+"as/dto/experiment/search/SearchExperimentTypesOperationResult",
+"as/dto/experiment/search/ExperimentTypeSearchCriteria",
+"as/dto/experiment/search/SearchExperimentsOperation",
+"as/dto/experiment/history/ExperimentRelationType",
+"as/dto/experiment/id/ExperimentIdentifier",
+"as/dto/experiment/id/IExperimentId",
+"as/dto/experiment/id/ExperimentPermId",
+"as/dto/experiment/Experiment",
+"as/dto/experiment/ExperimentType",
+"as/dto/experiment/create/CreateExperimentTypesOperationResult",
+"as/dto/experiment/create/CreateExperimentTypesOperation",
+"as/dto/experiment/create/ExperimentCreation",
+"as/dto/experiment/create/CreateExperimentsOperation",
+"as/dto/experiment/create/ExperimentTypeCreation",
+"as/dto/experiment/create/CreateExperimentsOperationResult",
+"as/dto/exporter/options/XlsTextFormat",
+"as/dto/exporter/options/ExportOptions",
+"as/dto/exporter/options/ExportFormat",
+"as/dto/exporter/ExportResult",
+"as/dto/exporter/data/AllFields",
+"as/dto/exporter/data/IExportableFields",
+"as/dto/exporter/data/ExportablePermId",
+"as/dto/exporter/data/SelectedFields",
+"as/dto/exporter/data/ExportData",
+"as/dto/exporter/data/Attribute",
+"as/dto/exporter/data/ExportableKind",
+"as/dto/authorizationgroup/update/AuthorizationGroupUpdate",
+"as/dto/authorizationgroup/update/UpdateAuthorizationGroupsOperation",
+"as/dto/authorizationgroup/update/UpdateAuthorizationGroupsOperationResult",
+"as/dto/authorizationgroup/delete/DeleteAuthorizationGroupsOperation",
+"as/dto/authorizationgroup/delete/DeleteAuthorizationGroupsOperationResult",
+"as/dto/authorizationgroup/delete/AuthorizationGroupDeletionOptions",
+"as/dto/authorizationgroup/fetchoptions/AuthorizationGroupFetchOptions",
+"as/dto/authorizationgroup/fetchoptions/AuthorizationGroupSortOptions",
+"as/dto/authorizationgroup/get/GetAuthorizationGroupsOperation",
+"as/dto/authorizationgroup/get/GetAuthorizationGroupsOperationResult",
+"as/dto/authorizationgroup/search/AuthorizationGroupSearchCriteria",
+"as/dto/authorizationgroup/search/SearchAuthorizationGroupsOperationResult",
+"as/dto/authorizationgroup/search/SearchAuthorizationGroupsOperation",
+"as/dto/authorizationgroup/id/AuthorizationGroupPermId",
+"as/dto/authorizationgroup/id/IAuthorizationGroupId",
+"as/dto/authorizationgroup/AuthorizationGroup",
+"as/dto/authorizationgroup/create/AuthorizationGroupCreation",
+"as/dto/authorizationgroup/create/CreateAuthorizationGroupsOperation",
+"as/dto/authorizationgroup/create/CreateAuthorizationGroupsOperationResult",
+"as/dto/service/CustomASService",
+"as/dto/service/ReportingService",
+"as/dto/service/AggregationService",
+"as/dto/service/fetchoptions/AggregationServiceFetchOptions",
+"as/dto/service/fetchoptions/ReportingServiceFetchOptions",
+"as/dto/service/fetchoptions/AggregationServiceSortOptions",
+"as/dto/service/fetchoptions/ProcessingServiceFetchOptions",
+"as/dto/service/fetchoptions/ReportingServiceSortOptions",
+"as/dto/service/fetchoptions/SearchDomainServiceSortOptions",
+"as/dto/service/fetchoptions/CustomASServiceFetchOptions",
+"as/dto/service/fetchoptions/SearchDomainServiceFetchOptions",
+"as/dto/service/fetchoptions/ProcessingServiceSortOptions",
+"as/dto/service/fetchoptions/CustomASServiceSortOptions",
+"as/dto/service/CustomASServiceExecutionOptions",
+"as/dto/service/search/SearchDomainServiceSearchCriteria",
+"as/dto/service/search/SearchProcessingServicesOperationResult",
+"as/dto/service/search/SearchReportingServicesOperation",
+"as/dto/service/search/ReportingServiceSearchCriteria",
+"as/dto/service/search/SearchCustomASServicesOperationResult",
+"as/dto/service/search/AggregationServiceSearchCriteria",
+"as/dto/service/search/SearchSearchDomainServicesOperationResult",
+"as/dto/service/search/CustomASServiceSearchCriteria",
+"as/dto/service/search/SearchReportingServicesOperationResult",
+"as/dto/service/search/ProcessingServiceSearchCriteria",
+"as/dto/service/search/SearchAggregationServicesOperationResult",
+"as/dto/service/search/SearchCustomASServicesOperation",
+"as/dto/service/search/SearchAggregationServicesOperation",
+"as/dto/service/search/SearchProcessingServicesOperation",
+"as/dto/service/search/SearchSearchDomainServicesOperation",
+"as/dto/service/ProcessingService",
+"as/dto/service/SearchDomainService",
+"as/dto/service/SearchDomainServiceExecutionResult",
+"as/dto/service/SearchDomainServiceSearchOption",
+"as/dto/service/id/CustomASServiceCode",
+"as/dto/service/id/ICustomASServiceId",
+"as/dto/service/id/DssServicePermId",
+"as/dto/service/id/IDssServiceId",
+"as/dto/service/execute/ExecuteProcessingServiceOperation",
+"as/dto/service/execute/ExecuteCustomASServiceOperation",
+"as/dto/service/execute/ProcessingServiceExecutionOptions",
+"as/dto/service/execute/AggregationServiceExecutionOptions",
+"as/dto/service/execute/SearchDomainServiceExecutionOptions",
+"as/dto/service/execute/ExecuteAggregationServiceOperation",
+"as/dto/service/execute/ExecuteAggregationServiceOperationResult",
+"as/dto/service/execute/ExecuteSearchDomainServiceOperationResult",
+"as/dto/service/execute/ExecuteSearchDomainServiceOperation",
+"as/dto/service/execute/ExecuteReportingServiceOperation",
+"as/dto/service/execute/ExecuteProcessingServiceOperationResult",
+"as/dto/service/execute/AbstractExecutionOptionsWithParameters",
+"as/dto/service/execute/ExecuteCustomASServiceOperationResult",
+"as/dto/service/execute/ExecuteReportingServiceOperationResult",
+"as/dto/service/execute/ReportingServiceExecutionOptions",
+"as/dto/semanticannotation/update/SemanticAnnotationUpdate",
+"as/dto/semanticannotation/update/UpdateSemanticAnnotationsOperationResult",
+"as/dto/semanticannotation/update/UpdateSemanticAnnotationsOperation",
+"as/dto/semanticannotation/delete/SemanticAnnotationDeletionOptions",
+"as/dto/semanticannotation/delete/DeleteSemanticAnnotationsOperationResult",
+"as/dto/semanticannotation/delete/DeleteSemanticAnnotationsOperation",
+"as/dto/semanticannotation/fetchoptions/SemanticAnnotationSortOptions",
+"as/dto/semanticannotation/fetchoptions/SemanticAnnotationFetchOptions",
+"as/dto/semanticannotation/get/GetSemanticAnnotationsOperation",
+"as/dto/semanticannotation/get/GetSemanticAnnotationsOperationResult",
+"as/dto/semanticannotation/search/PredicateOntologyIdSearchCriteria",
+"as/dto/semanticannotation/search/SemanticAnnotationSearchCriteria",
+"as/dto/semanticannotation/search/SearchSemanticAnnotationsOperation",
+"as/dto/semanticannotation/search/SearchSemanticAnnotationsOperationResult",
+"as/dto/semanticannotation/search/PredicateAccessionIdSearchCriteria",
+"as/dto/semanticannotation/search/PredicateOntologyVersionSearchCriteria",
+"as/dto/semanticannotation/search/DescriptorAccessionIdSearchCriteria",
+"as/dto/semanticannotation/search/DescriptorOntologyVersionSearchCriteria",
+"as/dto/semanticannotation/search/DescriptorOntologyIdSearchCriteria",
+"as/dto/semanticannotation/SemanticAnnotation",
+"as/dto/semanticannotation/id/SemanticAnnotationPermId",
+"as/dto/semanticannotation/id/ISemanticAnnotationId",
+"as/dto/semanticannotation/create/CreateSemanticAnnotationsOperationResult",
+"as/dto/semanticannotation/create/SemanticAnnotationCreation",
+"as/dto/semanticannotation/create/CreateSemanticAnnotationsOperation",
+"as/dto/space/update/SpaceUpdate",
+"as/dto/space/update/UpdateSpacesOperationResult",
+"as/dto/space/update/UpdateSpacesOperation",
+"as/dto/space/delete/SpaceDeletionOptions",
+"as/dto/space/delete/DeleteSpacesOperationResult",
+"as/dto/space/delete/DeleteSpacesOperation",
+"as/dto/space/fetchoptions/SpaceSortOptions",
+"as/dto/space/fetchoptions/SpaceFetchOptions",
+"as/dto/space/get/GetSpacesOperationResult",
+"as/dto/space/get/GetSpacesOperation",
+"as/dto/space/search/SearchSpacesOperation",
+"as/dto/space/search/SpaceSearchCriteria",
+"as/dto/space/search/NoSpaceSearchCriteria",
+"as/dto/space/search/SearchSpacesOperationResult",
+"as/dto/space/Space",
+"as/dto/space/id/SpacePermId",
+"as/dto/space/id/ISpaceId",
+"as/dto/space/id/SpaceTechId",
+"as/dto/space/create/SpaceCreation",
+"as/dto/space/create/CreateSpacesOperation",
+"as/dto/space/create/CreateSpacesOperationResult",
+"as/dto/query/update/UpdateQueriesOperationResult",
+"as/dto/query/update/UpdateQueriesOperation",
+"as/dto/query/update/QueryUpdate",
+"as/dto/query/delete/DeleteQueriesOperationResult",
+"as/dto/query/delete/QueryDeletionOptions",
+"as/dto/query/delete/DeleteQueriesOperation",
+"as/dto/query/fetchoptions/QuerySortOptions",
+"as/dto/query/fetchoptions/QueryDatabaseFetchOptions",
+"as/dto/query/fetchoptions/QueryDatabaseSortOptions",
+"as/dto/query/fetchoptions/QueryFetchOptions",
+"as/dto/query/Query",
+"as/dto/query/get/GetQueriesOperation",
+"as/dto/query/get/GetQueryDatabasesOperation",
+"as/dto/query/get/GetQueriesOperationResult",
+"as/dto/query/get/GetQueryDatabasesOperationResult",
+"as/dto/query/search/DatabaseIdSearchCriteria",
+"as/dto/query/search/QueryDatabaseSearchCriteria",
+"as/dto/query/search/SearchQueryDatabasesOperationResult",
+"as/dto/query/search/SearchQueriesOperation",
+"as/dto/query/search/EntityTypeCodePatternSearchCriteria",
+"as/dto/query/search/SqlSearchCriteria",
+"as/dto/query/search/SearchQueriesOperationResult",
+"as/dto/query/search/SearchQueryDatabasesOperation",
+"as/dto/query/search/QuerySearchCriteria",
+"as/dto/query/search/QueryTypeSearchCriteria",
+"as/dto/query/QueryDatabase",
+"as/dto/query/id/QueryDatabaseName",
+"as/dto/query/id/QueryName",
+"as/dto/query/id/IQueryDatabaseId",
+"as/dto/query/id/QueryTechId",
+"as/dto/query/id/IQueryId",
+"as/dto/query/execute/ExecuteQueryOperation",
+"as/dto/query/execute/ExecuteSqlOperationResult",
+"as/dto/query/execute/QueryExecutionOptions",
+"as/dto/query/execute/ExecuteQueryOperationResult",
+"as/dto/query/execute/SqlExecutionOptions",
+"as/dto/query/execute/ExecuteSqlOperation",
+"as/dto/query/QueryType",
+"as/dto/query/create/CreateQueriesOperationResult",
+"as/dto/query/create/CreateQueriesOperation",
+"as/dto/query/create/QueryCreation",
+"as/dto/event/EntityType",
+"as/dto/event/Event",
+"as/dto/event/fetchoptions/EventFetchOptions",
+"as/dto/event/fetchoptions/EventSortOptions",
+"as/dto/event/search/EventReasonSearchCriteria",
+"as/dto/event/search/EventSearchCriteria",
+"as/dto/event/search/EventEntityTypeSearchCriteria",
+"as/dto/event/search/EventEntitySpaceSearchCriteria",
+"as/dto/event/search/SearchEventsOperation",
+"as/dto/event/search/SearchEventsOperationResult",
+"as/dto/event/search/EventDescriptionSearchCriteria",
+"as/dto/event/search/EventEntityProjectSearchCriteria",
+"as/dto/event/search/EventEntityRegistratorSearchCriteria",
+"as/dto/event/search/EventEntityRegistrationDateSearchCriteria",
+"as/dto/event/search/EventEntityProjectIdSearchCriteria",
+"as/dto/event/search/EventTypeSearchCriteria",
+"as/dto/event/search/EventIdentifierSearchCriteria",
+"as/dto/event/search/EventEntitySpaceIdSearchCriteria",
+"as/dto/event/id/EventTechId",
+"as/dto/event/id/IEventId",
+"as/dto/event/EventType",
+"as/dto/tag/update/UpdateTagsOperationResult",
+"as/dto/tag/update/UpdateTagsOperation",
+"as/dto/tag/update/TagUpdate",
+"as/dto/tag/delete/DeleteTagsOperationResult",
+"as/dto/tag/delete/DeleteTagsOperation",
+"as/dto/tag/delete/TagDeletionOptions",
+"as/dto/tag/fetchoptions/TagSortOptions",
+"as/dto/tag/fetchoptions/TagFetchOptions",
+"as/dto/tag/get/GetTagsOperationResult",
+"as/dto/tag/get/GetTagsOperation",
+"as/dto/tag/search/SearchTagsOperationResult",
+"as/dto/tag/search/TagSearchCriteria",
+"as/dto/tag/search/SearchTagsOperation",
+"as/dto/tag/Tag",
+"as/dto/tag/id/TagPermId",
+"as/dto/tag/id/TagCode",
+"as/dto/tag/id/ITagId",
+"as/dto/tag/create/TagCreation",
+"as/dto/tag/create/CreateTagsOperationResult",
+"as/dto/tag/create/CreateTagsOperation",
+"as/dto/global/fetchoptions/GlobalSearchObjectSortOptions",
+"as/dto/global/fetchoptions/MatchFetchOptions",
+"as/dto/global/fetchoptions/GlobalSearchObjectFetchOptions",
+"as/dto/global/search/SearchGloballyOperation",
+"as/dto/global/search/GlobalSearchWildCardsCriteria",
+"as/dto/global/search/GlobalSearchObjectKind",
+"as/dto/global/search/SearchGloballyOperationResult",
+"as/dto/global/search/GlobalSearchCriteria",
+"as/dto/global/search/GlobalSearchObjectKindCriteria",
+"as/dto/global/search/GlobalSearchTextCriteria",
+"as/dto/global/GlobalSearchObject",
+"as/dto/material/update/UpdateMaterialsOperation",
+"as/dto/material/update/MaterialTypeUpdate",
+"as/dto/material/update/UpdateMaterialTypesOperation",
+"as/dto/material/update/UpdateMaterialsOperationResult",
+"as/dto/material/update/UpdateMaterialTypesOperationResult",
+"as/dto/material/update/MaterialUpdate",
+"as/dto/material/delete/DeleteMaterialsOperation",
+"as/dto/material/delete/DeleteMaterialTypesOperation",
+"as/dto/material/delete/DeleteMaterialsOperationResult",
+"as/dto/material/delete/DeleteMaterialTypesOperationResult",
+"as/dto/material/delete/MaterialTypeDeletionOptions",
+"as/dto/material/delete/MaterialDeletionOptions",
+"as/dto/material/Material",
+"as/dto/material/fetchoptions/MaterialTypeSortOptions",
+"as/dto/material/fetchoptions/MaterialSortOptions",
+"as/dto/material/fetchoptions/MaterialFetchOptions",
+"as/dto/material/fetchoptions/MaterialTypeFetchOptions",
+"as/dto/material/get/GetMaterialTypesOperationResult",
+"as/dto/material/get/GetMaterialsOperationResult",
+"as/dto/material/get/GetMaterialsOperation",
+"as/dto/material/get/GetMaterialTypesOperation",
+"as/dto/material/search/SearchMaterialsOperation",
+"as/dto/material/search/SearchMaterialTypesOperationResult",
+"as/dto/material/search/SearchMaterialTypesOperation",
+"as/dto/material/search/MaterialSearchCriteria",
+"as/dto/material/search/SearchMaterialsOperationResult",
+"as/dto/material/search/MaterialTypeSearchCriteria",
+"as/dto/material/MaterialType",
+"as/dto/material/id/IMaterialId",
+"as/dto/material/id/MaterialPermId",
+"as/dto/material/create/MaterialCreation",
+"as/dto/material/create/CreateMaterialsOperation",
+"as/dto/material/create/MaterialTypeCreation",
+"as/dto/material/create/CreateMaterialTypesOperation",
+"as/dto/material/create/CreateMaterialsOperationResult",
+"as/dto/material/create/CreateMaterialTypesOperationResult",
+"as/dto/pat/update/UpdatePersonalAccessTokensOperation",
+"as/dto/pat/update/UpdatePersonalAccessTokensOperationResult",
+"as/dto/pat/update/PersonalAccessTokenUpdate",
+"as/dto/pat/delete/PersonalAccessTokenDeletionOptions",
+"as/dto/pat/delete/DeletePersonalAccessTokensOperationResult",
+"as/dto/pat/delete/DeletePersonalAccessTokensOperation",
+"as/dto/pat/PersonalAccessToken",
+"as/dto/pat/fetchoptions/PersonalAccessTokenSortOptions",
+"as/dto/pat/fetchoptions/PersonalAccessTokenFetchOptions",
+"as/dto/pat/get/GetPersonalAccessTokensOperationResult",
+"as/dto/pat/get/GetPersonalAccessTokensOperation",
+"as/dto/pat/search/SearchPersonalAccessTokensOperation",
+"as/dto/pat/search/PersonalAccessTokenSearchCriteria",
+"as/dto/pat/search/PersonalAccessTokenOwnerSearchCriteria",
+"as/dto/pat/search/PersonalAccessTokenSessionNameSearchCriteria",
+"as/dto/pat/search/SearchPersonalAccessTokensOperationResult",
+"as/dto/pat/id/IPersonalAccessTokenId",
+"as/dto/pat/id/PersonalAccessTokenPermId",
+"as/dto/pat/create/CreatePersonalAccessTokensOperationResult",
+"as/dto/pat/create/PersonalAccessTokenCreation",
+"as/dto/pat/create/CreatePersonalAccessTokensOperation",
+"as/dto/vocabulary/VocabularyTerm",
+"as/dto/vocabulary/update/VocabularyTermUpdate",
+"as/dto/vocabulary/update/UpdateVocabulariesOperationResult",
+"as/dto/vocabulary/update/VocabularyUpdate",
+"as/dto/vocabulary/update/UpdateVocabularyTermsOperation",
+"as/dto/vocabulary/update/UpdateVocabularyTermsOperationResult",
+"as/dto/vocabulary/update/UpdateVocabulariesOperation",
+"as/dto/vocabulary/delete/DeleteVocabulariesOperation",
+"as/dto/vocabulary/delete/VocabularyTermDeletionOptions",
+"as/dto/vocabulary/delete/DeleteVocabulariesOperationResult",
+"as/dto/vocabulary/delete/DeleteVocabularyTermsOperationResult",
+"as/dto/vocabulary/delete/VocabularyDeletionOptions",
+"as/dto/vocabulary/delete/VocabularyTermReplacement",
+"as/dto/vocabulary/delete/DeleteVocabularyTermsOperation",
+"as/dto/vocabulary/fetchoptions/VocabularyFetchOptions",
+"as/dto/vocabulary/fetchoptions/VocabularyTermSortOptions",
+"as/dto/vocabulary/fetchoptions/VocabularyTermFetchOptions",
+"as/dto/vocabulary/fetchoptions/VocabularySortOptions",
+"as/dto/vocabulary/get/GetVocabulariesOperation",
+"as/dto/vocabulary/get/GetVocabulariesOperationResult",
+"as/dto/vocabulary/get/GetVocabularyTermsOperation",
+"as/dto/vocabulary/get/GetVocabularyTermsOperationResult",
+"as/dto/vocabulary/search/SearchVocabularyTermsOperationResult",
+"as/dto/vocabulary/search/VocabularySearchCriteria",
+"as/dto/vocabulary/search/SearchVocabularyTermsOperation",
+"as/dto/vocabulary/search/SearchVocabulariesOperationResult",
+"as/dto/vocabulary/search/SearchVocabulariesOperation",
+"as/dto/vocabulary/search/VocabularyTermSearchCriteria",
+"as/dto/vocabulary/Vocabulary",
+"as/dto/vocabulary/id/VocabularyTermPermId",
+"as/dto/vocabulary/id/VocabularyPermId",
+"as/dto/vocabulary/id/IVocabularyTermId",
+"as/dto/vocabulary/id/IVocabularyId",
+"as/dto/vocabulary/create/CreateVocabularyTermsOperationResult",
+"as/dto/vocabulary/create/CreateVocabularyTermsOperation",
+"as/dto/vocabulary/create/CreateVocabulariesOperationResult",
+"as/dto/vocabulary/create/VocabularyTermCreation",
+"as/dto/vocabulary/create/VocabularyCreation",
+"as/dto/vocabulary/create/CreateVocabulariesOperation",
+"as/dto/session/fetchoptions/SessionInformationFetchOptions",
+"as/dto/session/fetchoptions/SessionInformationSortOptions",
+"as/dto/session/get/GetSessionInformationOperationResult",
+"as/dto/session/get/GetSessionInformationOperation",
+"as/dto/session/search/SearchSessionInformationOperation",
+"as/dto/session/search/SearchSessionInformationOperationResult",
+"as/dto/session/search/UserNameSearchCriteria",
+"as/dto/session/search/SessionInformationSearchCriteria",
+"as/dto/session/search/PersonalAccessTokenSessionSearchCriteria",
+"as/dto/session/search/PersonalAccessTokenSessionNameSearchCriteria",
+"as/dto/session/SessionInformation",
+"as/dto/session/id/ISessionInformationId",
+"as/dto/session/id/SessionInformationPermId",
+"as/dto/objectkindmodification/ObjectKindModification",
+"as/dto/objectkindmodification/ObjectKind",
+"as/dto/objectkindmodification/fetchoptions/ObjectKindModificationSortOptions",
+"as/dto/objectkindmodification/fetchoptions/ObjectKindModificationFetchOptions",
+"as/dto/objectkindmodification/search/ObjectKindCriteria",
+"as/dto/objectkindmodification/search/ObjectKindModificationSearchCriteria",
+"as/dto/objectkindmodification/search/SearchObjectKindModificationsOperationResult",
+"as/dto/objectkindmodification/search/OperationKindCriteria",
+"as/dto/objectkindmodification/search/SearchObjectKindModificationsOperation",
+"as/dto/objectkindmodification/OperationKind",
+"dss/dto/dataset/create/FullDataSetCreation",
+"dss/dto/dataset/create/UploadedDataSetCreation",
+"dss/dto/datasetfile/fastdownload/FastDownloadSessionOptions",
+"dss/dto/datasetfile/fastdownload/FastDownloadSession",
+"dss/dto/datasetfile/fetchoptions/DataSetFileSortOptions",
+"dss/dto/datasetfile/fetchoptions/DataSetFileFetchOptions",
+"dss/dto/datasetfile/DataSetFile",
+"dss/dto/datasetfile/search/DataSetFileSearchCriteria",
+"dss/dto/datasetfile/id/DataSetFilePermId",
+"dss/dto/datasetfile/id/IDataSetFileId",
+"dss/dto/datasetfile/create/DataSetFileCreation",
+"util/DateFormat",
+"util/Json",
+"util/Exceptions",
+]
 
-	// 'as/dto/common/fetchoptions/CacheMode',
-	// 'as/dto/common/search/AbstractCompositeSearchCriteria',
-	// 'as/dto/common/search/AbstractDateObjectValue',
-	// 'as/dto/common/search/AbstractDateValue',
-	// 'as/dto/common/search/AbstractEntitySearchCriteria',
-	// 'as/dto/common/search/AbstractFieldSearchCriteria',
-	// 'as/dto/common/search/AbstractNumberValue',
-	// 'as/dto/common/search/AbstractObjectSearchCriteria',
-	// 'as/dto/common/search/AbstractSearchCriteria',
-	// 'as/dto/common/search/AbstractStringValue',
-	// 'as/dto/common/search/AbstractTimeZoneValue',
-	// 'as/dto/common/search/AbstractValue',
-	// 'as/dto/common/search/SearchFieldType',
-	// 'as/dto/common/search/SearchOperator',
-	// 'as/dto/dataset/ArchivingStatus',
-	// 'as/dto/dataset/Complete',
-	// 'as/dto/dataset/DataSetKind',
-	// 'as/dto/dataset/history/DataSetRelationType',
-	// 'as/dto/dataset/search/DataSetSearchRelation',
-	// 'as/dto/deletion/AbstractObjectDeletionOptions',
-	// 'as/dto/deletion/id/DeletionTechId',
-	// 'as/dto/experiment/history/ExperimentRelationType',
-	// 'as/dto/global/search/GlobalSearchObjectKind',
-	// 'as/dto/objectkindmodification/ObjectKind',
-	// 'as/dto/objectkindmodification/OperationKind',
-	// 'as/dto/project/history/ProjectRelationType',
-	// 'as/dto/sample/history/SampleRelationType',
-	// 'as/dto/sample/search/SampleSearchRelation',
+define(fullTypes, function () {
+    var dtos = Array.prototype.slice.call(arguments)
 
-	// 'as/dto/deletion/id/IDeletionId',
-	// 'as/dto/entitytype/id/IEntityTypeId',
-	// 'as/dto/experiment/id/IExperimentId',
-	// 'as/dto/externaldms/id/IExternalDmsId',
-	// 'as/dto/history/IRelationType',
-	// 'as/dto/attachment/id/IAttachmentId',
-	// 'as/dto/common/id/IObjectId',
-	// 'as/dto/common/id/ObjectTechId',
-	// 'as/dto/common/interfaces/IAttachmentsHolder',
-	// 'as/dto/common/interfaces/ICodeHolder',
-	// 'as/dto/common/interfaces/ICreationIdHolder',
-	// 'as/dto/common/interfaces/IModificationDateHolder',
-	// 'as/dto/common/interfaces/IModifierHolder',
-	// 'as/dto/common/interfaces/IParentChildrenHolder',
-	// 'as/dto/common/interfaces/IPermIdHolder',
-	// 'as/dto/common/interfaces/IPropertiesHolder',
-	// 'as/dto/common/interfaces/IRegistrationDateHolder',
-	// 'as/dto/common/interfaces/IRegistratorHolder',
-	// 'as/dto/common/interfaces/ISpaceHolder',
-	// 'as/dto/common/interfaces/ITagsHolder',
-	// 'as/dto/common/operations/IOperation',
-	// 'as/dto/common/operations/IOperationResult',
-	// 'as/dto/common/search/IDate',
-	// 'as/dto/common/search/IDateFormat',
-	// 'as/dto/common/search/IdSearchCriteria',
-	// 'as/dto/common/search/ISearchCriteria',
-	// 'as/dto/common/search/ITimeZone',
-	// 'as/dto/dataset/id/IDataSetId',
-	// 'as/dto/dataset/id/IFileFormatTypeId',
-	// 'as/dto/dataset/id/ILocatorTypeId',
-	// 'as/dto/dataset/id/IStorageFormatId',
-	// 'as/dto/datastore/id/IDataStoreId',
-	// 'as/dto/material/id/IMaterialId',
-	// 'as/dto/person/id/IPersonId',
-	// 'as/dto/project/id/IProjectId',
-	// 'as/dto/sample/id/ISampleId',
-	// 'as/dto/service/id/ICustomASServiceId',
-	// 'as/dto/space/id/ISpaceId',
-	// 'as/dto/tag/id/ITagId',
-	// 'as/dto/common/fetchoptions/SortOptions',
-	// 'as/dto/common/fetchoptions/FetchOptions',
-	// 'as/dto/common/id/ObjectIdentifier',
-	// 'as/dto/common/id/ObjectPermId',
-	// 'as/dto/common/search/DateFieldSearchCriteria', 
-	// 'as/dto/common/search/NumberFieldSearchCriteria',
-	// 'as/dto/common/search/StringFieldSearchCriteria',
-	// 'as/dto/common/search/TimeZone',
-	// 'as/dto/vocabulary/id/IVocabularyId',
-	// 'as/dto/vocabulary/id/IVocabularyTermId',
-	// 'as/dto/roleassignment/id/RoleAssignmentTechId',
-	// 'as/dto/rights/Right',
-	// 'as/dto/plugin/evaluate/PluginEvaluationOptions',
-	// 'as/dto/plugin/evaluate/PluginEvaluationResult',
+    var Dtos = function () {
+        for (var i = 0; i < fullTypes.length; i++) {
+            var typeName = fullTypes[i].split("/").slice(-1)[0]
+            var typePath = fullTypes[i].split("/").slice(0, -1)
+            
+            var package = this
 
+            typePath.forEach(part => {
+                if(!package[part]){
+                    package[part] = {}
+                }
+                package = package[part]
+            })
 
+            if(this[typeName] === undefined){
+                this[typeName] = dtos[i]
+            }else if(this[typeName] !== dtos[i]){
+                this[typeName] = null
+            }
 
-// these are the DTOs that can be "manually" created on the client
-var sources = [
-	'as/dto/attachment/Attachment',
-	'as/dto/attachment/create/AttachmentCreation',
-	'as/dto/attachment/fetchoptions/AttachmentFetchOptions',
-	'as/dto/attachment/fetchoptions/AttachmentSortOptions',
-	'as/dto/attachment/id/AttachmentFileName',
-	'as/dto/attachment/update/AttachmentListUpdateValue',
-	
-	'as/dto/authorizationgroup/create/AuthorizationGroupCreation',
-	'as/dto/authorizationgroup/create/CreateAuthorizationGroupsOperation',
-	'as/dto/authorizationgroup/create/CreateAuthorizationGroupsOperationResult',
-	'as/dto/authorizationgroup/delete/AuthorizationGroupDeletionOptions',
-	'as/dto/authorizationgroup/delete/DeleteAuthorizationGroupsOperation',
-	'as/dto/authorizationgroup/delete/DeleteAuthorizationGroupsOperationResult',
-	'as/dto/authorizationgroup/fetchoptions/AuthorizationGroupFetchOptions',
-	'as/dto/authorizationgroup/fetchoptions/AuthorizationGroupSortOptions',
-	'as/dto/authorizationgroup/get/GetAuthorizationGroupsOperation',
-	'as/dto/authorizationgroup/get/GetAuthorizationGroupsOperationResult',
-	'as/dto/authorizationgroup/id/AuthorizationGroupPermId',
-	'as/dto/authorizationgroup/search/AuthorizationGroupSearchCriteria',
-	'as/dto/authorizationgroup/search/SearchAuthorizationGroupsOperation',
-	'as/dto/authorizationgroup/search/SearchAuthorizationGroupsOperationResult',
-	'as/dto/authorizationgroup/update/AuthorizationGroupUpdate',
-	'as/dto/authorizationgroup/update/UpdateAuthorizationGroupsOperation',
-	'as/dto/authorizationgroup/update/UpdateAuthorizationGroupsOperationResult',
-	'as/dto/authorizationgroup/AuthorizationGroup',
-	
-	'as/dto/common/Enum',
-	'as/dto/common/ITableCell',
-	'as/dto/common/TableStringCell',
-	'as/dto/common/TableLongCell',
-	'as/dto/common/TableDoubleCell',
-	'as/dto/common/TableColumn',
-	'as/dto/common/TableModel',
-	'as/dto/common/fetchoptions/EmptyFetchOptions',
-	'as/dto/common/fetchoptions/EntitySortOptions',
-	'as/dto/common/fetchoptions/EntityWithPropertiesSortOptions',
-	'as/dto/common/fetchoptions/Sorting',
-	'as/dto/common/fetchoptions/SortOrder',
-	'as/dto/common/get/GetServerInformationOperation',
-	'as/dto/common/get/GetServerInformationOperationResult',
-	'as/dto/common/get/GetServerPublicInformationOperation',
-	'as/dto/common/get/GetServerPublicInformationOperationResult',
-	'as/dto/common/id/CreationId',
-	'as/dto/common/search/AnyFieldSearchCriteria',
-	'as/dto/common/search/AnyPropertySearchCriteria',
-	'as/dto/common/search/AnyStringValue',
-	'as/dto/common/search/CodeSearchCriteria',
-	'as/dto/common/search/DateEarlierThanOrEqualToValue', 
-	'as/dto/common/search/DateEqualToValue',
-	'as/dto/common/search/DateLaterThanOrEqualToValue',
-	'as/dto/common/search/DateObjectEarlierThanOrEqualToValue',
-	'as/dto/common/search/DateObjectEqualToValue',
-	'as/dto/common/search/DateObjectLaterThanOrEqualToValue',
-	'as/dto/common/search/DatePropertySearchCriteria',
-	'as/dto/common/search/LongDateFormat',
-	'as/dto/common/search/ModificationDateSearchCriteria',
-	'as/dto/common/search/DescriptionSearchCriteria',
-	'as/dto/common/search/NameSearchCriteria',
-	'as/dto/common/search/NormalDateFormat',
-	'as/dto/common/search/NumberEqualToValue',
-	'as/dto/common/search/NumberGreaterThanOrEqualToValue',
-	'as/dto/common/search/NumberGreaterThanValue',
-	'as/dto/common/search/NumberLessThanOrEqualToValue',
-	'as/dto/common/search/NumberLessThanValue',
-	'as/dto/common/search/NumberPropertySearchCriteria',
-	'as/dto/common/search/PermIdSearchCriteria',
-	'as/dto/common/search/IdentifierSearchCriteria',
-	'as/dto/common/search/RegistrationDateSearchCriteria',
-	'as/dto/common/search/SearchResult',
-	'as/dto/common/search/ServerTimeZone',
-	'as/dto/common/search/ShortDateFormat',
-	'as/dto/common/search/StringContainsExactlyValue',
-	'as/dto/common/search/StringContainsValue',
-	'as/dto/common/search/StringEndsWithValue',
-	'as/dto/common/search/StringEqualToValue',
-	'as/dto/common/search/StringPropertySearchCriteria',
-	'as/dto/common/search/StringStartsWithValue',
-	'as/dto/common/search/StringGreaterThanOrEqualToValue',
-	'as/dto/common/search/StringGreaterThanValue',
-	'as/dto/common/search/StringLessThanOrEqualToValue',
-	'as/dto/common/search/StringLessThanValue',
-	'as/dto/common/search/TechIdSearchCriteria',
-	'as/dto/common/search/CodesSearchCriteria',
-	'as/dto/common/search/IdsSearchCriteria',
-	'as/dto/common/update/FieldUpdateValue',
-	'as/dto/common/update/IdListUpdateValue',
-	'as/dto/common/update/ListUpdateAction',
-	'as/dto/common/update/ListUpdateActionAdd',
-	'as/dto/common/update/ListUpdateActionRemove',
-	'as/dto/common/update/ListUpdateActionSet',
-	'as/dto/common/update/ListUpdateValue',
-	
-	'as/dto/dataset/DataSet',
-	'as/dto/dataset/DataSetKind',
-	'as/dto/dataset/DataSetType',
-	'as/dto/dataset/archive/DataSetArchiveOptions',
-	'as/dto/dataset/archive/ArchiveDataSetsOperation',
-	'as/dto/dataset/archive/ArchiveDataSetsOperationResult',
-	'as/dto/dataset/unarchive/DataSetUnarchiveOptions',
-	'as/dto/dataset/unarchive/UnarchiveDataSetsOperation',
-	'as/dto/dataset/unarchive/UnarchiveDataSetsOperationResult',
-	'as/dto/dataset/lock/DataSetLockOptions',
-	'as/dto/dataset/lock/LockDataSetsOperation',
-	'as/dto/dataset/lock/LockDataSetsOperationResult',
-	'as/dto/dataset/unlock/DataSetUnlockOptions',
-	'as/dto/dataset/unlock/UnlockDataSetsOperation',
-	'as/dto/dataset/unlock/UnlockDataSetsOperationResult',
-	'as/dto/dataset/create/DataSetCreation',
-	'as/dto/dataset/create/LinkedDataCreation',
-	'as/dto/dataset/create/DataSetTypeCreation',
-	'as/dto/dataset/create/ContentCopyCreation',
-	'as/dto/dataset/create/CreateDataSetsOperation',
-	'as/dto/dataset/create/CreateDataSetsOperationResult',
-	'as/dto/dataset/create/CreateDataSetTypesOperation',
-	'as/dto/dataset/create/CreateDataSetTypesOperationResult',
-	'as/dto/dataset/delete/DataSetDeletionOptions',
-	'as/dto/dataset/delete/DeleteDataSetsOperation',
-	'as/dto/dataset/delete/DeleteDataSetsOperationResult',
-	'as/dto/dataset/delete/DataSetTypeDeletionOptions',
-	'as/dto/dataset/delete/DeleteDataSetTypesOperation',
-	'as/dto/dataset/delete/DeleteDataSetTypesOperationResult',
-	'as/dto/dataset/get/GetDataSetsOperation',
-	'as/dto/dataset/get/GetDataSetsOperationResult',
-	'as/dto/dataset/get/GetDataSetTypesOperation',
-	'as/dto/dataset/get/GetDataSetTypesOperationResult',
-	'as/dto/dataset/fetchoptions/DataSetFetchOptions',
-	'as/dto/dataset/fetchoptions/DataSetSortOptions',
-	'as/dto/dataset/fetchoptions/DataSetTypeFetchOptions',
-	'as/dto/dataset/fetchoptions/DataSetTypeSortOptions',
-	'as/dto/dataset/fetchoptions/FileFormatTypeFetchOptions',
-	'as/dto/dataset/fetchoptions/FileFormatTypeSortOptions',
-	'as/dto/dataset/fetchoptions/LinkedDataFetchOptions',
-	'as/dto/dataset/fetchoptions/LinkedDataSortOptions',
-	'as/dto/dataset/fetchoptions/LocatorTypeFetchOptions',
-	'as/dto/dataset/fetchoptions/LocatorTypeSortOptions',
-	'as/dto/dataset/fetchoptions/PhysicalDataFetchOptions',
-	'as/dto/dataset/fetchoptions/PhysicalDataSortOptions',
-	'as/dto/dataset/fetchoptions/StorageFormatFetchOptions',
-	'as/dto/dataset/fetchoptions/StorageFormatSortOptions',
-	'as/dto/dataset/FileFormatType',
-	'as/dto/dataset/id/BdsDirectoryStorageFormatPermId',
-	'as/dto/dataset/id/ContentCopyPermId',
-	'as/dto/dataset/id/DataSetPermId',
-	'as/dto/dataset/id/FileFormatTypePermId',
-	'as/dto/dataset/id/IContentCopyId',
-	'as/dto/dataset/id/LocatorTypePermId',
-	'as/dto/dataset/id/ProprietaryStorageFormatPermId',
-	'as/dto/dataset/id/RelativeLocationLocatorTypePermId',
-	'as/dto/dataset/id/StorageFormatPermId',
-	'as/dto/dataset/ContentCopy',
-	'as/dto/dataset/LinkedData',
-	'as/dto/dataset/LocatorType',
-	'as/dto/dataset/PhysicalData',
-	'as/dto/dataset/search/DataSetSearchCriteria',
-	'as/dto/dataset/search/DataSetTypeSearchCriteria',
-	'as/dto/dataset/search/CompleteSearchCriteria',
-	'as/dto/dataset/search/ExternalCodeSearchCriteria',
-	'as/dto/dataset/search/ExternalDmsSearchCriteria',
-	'as/dto/dataset/search/FileFormatTypeSearchCriteria',
-	'as/dto/dataset/search/LinkedDataSearchCriteria',
-	'as/dto/dataset/search/LocationSearchCriteria',
-	'as/dto/dataset/search/LocatorTypeSearchCriteria',
-	'as/dto/dataset/search/PhysicalDataSearchCriteria',
-	'as/dto/dataset/search/ArchivingRequestedSearchCriteria',
-	'as/dto/dataset/search/PresentInArchiveSearchCriteria',
-	'as/dto/dataset/search/ShareIdSearchCriteria',
-	'as/dto/dataset/search/SizeSearchCriteria',
-	'as/dto/dataset/search/SpeedHintSearchCriteria',
-	'as/dto/dataset/search/StatusSearchCriteria',
-	'as/dto/dataset/search/StorageConfirmationSearchCriteria',
-	'as/dto/dataset/search/StorageFormatSearchCriteria',
-	'as/dto/dataset/search/SearchDataSetsOperation',
-	'as/dto/dataset/search/SearchDataSetsOperationResult',
-	'as/dto/dataset/search/SearchDataSetTypesOperation',
-	'as/dto/dataset/search/SearchDataSetTypesOperationResult',
-	'as/dto/dataset/StorageFormat',
-	'as/dto/dataset/update/DataSetUpdate',
-	'as/dto/dataset/update/DataSetTypeUpdate',
-	'as/dto/dataset/update/ContentCopyListUpdateValue',
-	'as/dto/dataset/update/LinkedDataUpdate',
-	'as/dto/dataset/update/PhysicalDataUpdate',
-	'as/dto/dataset/update/UpdateDataSetsOperation',
-	'as/dto/dataset/update/UpdateDataSetsOperationResult',
-	'as/dto/dataset/update/UpdateDataSetTypesOperation',
-	'as/dto/dataset/update/UpdateDataSetTypesOperationResult',
-	
-	'as/dto/datastore/DataStore',
-	'as/dto/datastore/fetchoptions/DataStoreFetchOptions',
-	'as/dto/datastore/fetchoptions/DataStoreSortOptions',
-	'as/dto/datastore/id/DataStorePermId',
-	'as/dto/datastore/search/DataStoreSearchCriteria',
-	'as/dto/datastore/search/SearchDataStoresOperation',
-	'as/dto/datastore/search/SearchDataStoresOperationResult',
-	
-	'as/dto/deletion/DeletedObject',
-	'as/dto/deletion/Deletion',
-	'as/dto/deletion/confirm/ConfirmDeletionsOperation',
-	'as/dto/deletion/confirm/ConfirmDeletionsOperationResult',
-	'as/dto/deletion/fetchoptions/DeletedObjectFetchOptions',
-	'as/dto/deletion/fetchoptions/DeletionFetchOptions',
-	'as/dto/deletion/fetchoptions/DeletionSortOptions',
-	'as/dto/deletion/revert/RevertDeletionsOperation',
-	'as/dto/deletion/revert/RevertDeletionsOperationResult',
-	'as/dto/deletion/search/DeletionSearchCriteria',
-	'as/dto/deletion/search/SearchDeletionsOperation',
-	'as/dto/deletion/search/SearchDeletionsOperationResult',
-
-    'as/dto/event/Event',
-    'as/dto/event/EventType',
-    'as/dto/event/EntityType',
-    'as/dto/event/fetchoptions/EventFetchOptions',
-    'as/dto/event/fetchoptions/EventSortOptions',
-    'as/dto/event/search/EventEntityProjectIdSearchCriteria',
-    'as/dto/event/search/EventEntityProjectSearchCriteria',
-    'as/dto/event/search/EventEntityRegistrationDateSearchCriteria',
-    'as/dto/event/search/EventEntityRegistratorSearchCriteria',
-    'as/dto/event/search/EventEntitySpaceIdSearchCriteria',
-    'as/dto/event/search/EventEntitySpaceSearchCriteria',
-    'as/dto/event/search/EventEntityTypeSearchCriteria',
-    'as/dto/event/search/EventIdentifierSearchCriteria',
-    'as/dto/event/search/EventDescriptionSearchCriteria',
-    'as/dto/event/search/EventReasonSearchCriteria',
-    'as/dto/event/search/EventSearchCriteria',
-    'as/dto/event/search/EventTypeSearchCriteria',
-    'as/dto/event/search/SearchEventsOperation',
-    'as/dto/event/search/SearchEventsOperationResult',
-
-	'as/dto/entity/create/CreateCodesOperation',
-	'as/dto/entity/create/CreateCodesOperationResult',
-	'as/dto/entity/create/CreatePermIdsOperation',
-	'as/dto/entity/create/CreatePermIdsOperationResult',
-	
-	'as/dto/entitytype/id/EntityTypePermId',
-	'as/dto/entitytype/fetchoptions/EntityTypeFetchOptions',
-	'as/dto/entitytype/fetchoptions/EntityTypeSortOptions',
-	'as/dto/entitytype/search/EntityKindSearchCriteria',
-	'as/dto/entitytype/search/EntityTypeSearchCriteria',
-	'as/dto/entitytype/EntityKind',
-	'as/dto/entitytype/update/PropertyAssignmentListUpdateValue',
-	
-	'as/dto/experiment/create/ExperimentCreation',
-	'as/dto/experiment/create/CreateExperimentsOperation',
-	'as/dto/experiment/create/CreateExperimentsOperationResult',
-	'as/dto/experiment/create/ExperimentTypeCreation',
-	'as/dto/experiment/create/CreateExperimentTypesOperation',
-	'as/dto/experiment/create/CreateExperimentTypesOperationResult',
-	'as/dto/experiment/delete/ExperimentDeletionOptions',
-	'as/dto/experiment/delete/DeleteExperimentsOperation',
-	'as/dto/experiment/delete/DeleteExperimentsOperationResult',
-	'as/dto/experiment/delete/ExperimentTypeDeletionOptions',	
-	'as/dto/experiment/delete/DeleteExperimentTypesOperation',
-	'as/dto/experiment/delete/DeleteExperimentTypesOperationResult',
-	'as/dto/experiment/Experiment',
-	'as/dto/experiment/ExperimentType',
-	'as/dto/experiment/fetchoptions/ExperimentFetchOptions',
-	'as/dto/experiment/fetchoptions/ExperimentSortOptions',
-	'as/dto/experiment/fetchoptions/ExperimentTypeFetchOptions',
-	'as/dto/experiment/fetchoptions/ExperimentTypeSortOptions',
-	'as/dto/experiment/get/GetExperimentsOperation',
-	'as/dto/experiment/get/GetExperimentsOperationResult',
-	'as/dto/experiment/get/GetExperimentTypesOperation',
-	'as/dto/experiment/get/GetExperimentTypesOperationResult',
-	'as/dto/experiment/id/ExperimentIdentifier',
-	'as/dto/experiment/id/ExperimentPermId',
-	'as/dto/experiment/search/ExperimentSearchCriteria',
-	'as/dto/experiment/search/ExperimentTypeSearchCriteria',
-	'as/dto/experiment/search/NoExperimentSearchCriteria',
-	'as/dto/experiment/search/SearchExperimentsOperation',
-	'as/dto/experiment/search/SearchExperimentsOperationResult',
-	'as/dto/experiment/search/SearchExperimentTypesOperation',
-	'as/dto/experiment/search/SearchExperimentTypesOperationResult',
-	'as/dto/experiment/update/ExperimentUpdate',
-	'as/dto/experiment/update/UpdateExperimentsOperation',
-	'as/dto/experiment/update/UpdateExperimentsOperationResult',
-	'as/dto/experiment/update/ExperimentTypeUpdate',
-	'as/dto/experiment/update/UpdateExperimentTypesOperation',
-	'as/dto/experiment/update/UpdateExperimentTypesOperationResult',
-	
-	'as/dto/externaldms/ExternalDms',
-	'as/dto/externaldms/delete/ExternalDmsDeletionOptions',
-	'as/dto/externaldms/delete/DeleteExternalDmsOperation',
-	'as/dto/externaldms/delete/DeleteExternalDmsOperationResult',
-	'as/dto/externaldms/fetchoptions/ExternalDmsFetchOptions',
-	'as/dto/externaldms/fetchoptions/ExternalDmsSortOptions',
-	'as/dto/externaldms/id/ExternalDmsPermId',
-	'as/dto/externaldms/create/CreateExternalDmsOperation',
-	'as/dto/externaldms/create/CreateExternalDmsOperationResult',
-	'as/dto/externaldms/create/ExternalDmsCreation',
-	'as/dto/externaldms/ExternalDmsAddressType',
-	'as/dto/externaldms/get/GetExternalDmsOperation',
-	'as/dto/externaldms/get/GetExternalDmsOperationResult',
-	'as/dto/externaldms/search/ExternalDmsSearchCriteria',
-	'as/dto/externaldms/search/SearchExternalDmsOperation',
-	'as/dto/externaldms/search/SearchExternalDmsOperationResult',
-	'as/dto/externaldms/update/ExternalDmsUpdate',
-	'as/dto/externaldms/update/UpdateExternalDmsOperation',
-	'as/dto/externaldms/update/UpdateExternalDmsOperationResult',
-	
-	'as/dto/global/fetchoptions/GlobalSearchObjectFetchOptions',
-	'as/dto/global/fetchoptions/GlobalSearchObjectSortOptions',
-	'as/dto/global/GlobalSearchObject',
-	'as/dto/global/search/GlobalSearchCriteria',
-	'as/dto/global/search/GlobalSearchObjectKindCriteria',
-	'as/dto/global/search/GlobalSearchTextCriteria',
-	'as/dto/global/search/GlobalSearchWildCardsCriteria',
-	'as/dto/global/search/SearchGloballyOperation',
-	'as/dto/global/search/SearchGloballyOperationResult',
-	
-	'as/dto/history/fetchoptions/HistoryEntryFetchOptions',
-	'as/dto/history/fetchoptions/HistoryEntrySortOptions',
-	'as/dto/history/HistoryEntry',
-	'as/dto/history/PropertyHistoryEntry',
-	'as/dto/history/RelationHistoryEntry',
-	'as/dto/history/ContentCopyHistoryEntry',
-	
-	'as/dto/material/create/MaterialCreation',
-	'as/dto/material/create/CreateMaterialsOperation',
-	'as/dto/material/create/CreateMaterialsOperationResult',
-	'as/dto/material/create/MaterialTypeCreation',
-	'as/dto/material/create/CreateMaterialTypesOperation',
-	'as/dto/material/create/CreateMaterialTypesOperationResult',
-	'as/dto/material/delete/MaterialDeletionOptions',
-	'as/dto/material/delete/DeleteMaterialsOperation',
-	'as/dto/material/delete/DeleteMaterialsOperationResult',
-	'as/dto/material/delete/MaterialTypeDeletionOptions',
-	'as/dto/material/delete/DeleteMaterialTypesOperation',
-	'as/dto/material/delete/DeleteMaterialTypesOperationResult',
-	'as/dto/material/fetchoptions/MaterialFetchOptions',
-	'as/dto/material/fetchoptions/MaterialSortOptions',
-	'as/dto/material/fetchoptions/MaterialTypeFetchOptions',
-	'as/dto/material/fetchoptions/MaterialTypeSortOptions',
-	'as/dto/material/get/GetMaterialsOperation',
-	'as/dto/material/get/GetMaterialsOperationResult',
-	'as/dto/material/get/GetMaterialTypesOperation',
-	'as/dto/material/get/GetMaterialTypesOperationResult',
-	'as/dto/material/id/MaterialPermId',
-	'as/dto/material/Material',
-	'as/dto/material/MaterialType',
-	'as/dto/material/search/MaterialSearchCriteria',
-	'as/dto/material/search/MaterialTypeSearchCriteria',
-	'as/dto/material/search/SearchMaterialsOperation',
-	'as/dto/material/search/SearchMaterialsOperationResult',
-	'as/dto/material/search/SearchMaterialTypesOperation',
-	'as/dto/material/search/SearchMaterialTypesOperationResult',
-	'as/dto/material/update/MaterialUpdate',
-	'as/dto/material/update/UpdateMaterialsOperation',
-	'as/dto/material/update/UpdateMaterialsOperationResult',
-	'as/dto/material/update/MaterialTypeUpdate',
-	'as/dto/material/update/UpdateMaterialTypesOperation',
-	'as/dto/material/update/UpdateMaterialTypesOperationResult',
-	
-	'as/dto/objectkindmodification/fetchoptions/ObjectKindModificationFetchOptions',
-	'as/dto/objectkindmodification/fetchoptions/ObjectKindModificationSortOptions',
-	'as/dto/objectkindmodification/ObjectKindModification',
-	'as/dto/objectkindmodification/search/ObjectKindCriteria',
-	'as/dto/objectkindmodification/search/ObjectKindModificationSearchCriteria',
-	'as/dto/objectkindmodification/search/OperationKindCriteria',
-	'as/dto/objectkindmodification/search/SearchObjectKindModificationsOperation',
-	'as/dto/objectkindmodification/search/SearchObjectKindModificationsOperationResult',
-	
-	'as/dto/person/fetchoptions/PersonFetchOptions',
-	'as/dto/person/fetchoptions/PersonSortOptions',
-	'as/dto/person/create/PersonCreation',
-	'as/dto/person/create/CreatePersonsOperation',
-	'as/dto/person/create/CreatePersonsOperationResult',
-	'as/dto/person/delete/DeletePersonsOperation',
-	'as/dto/person/delete/DeletePersonsOperationResult',
-	'as/dto/person/delete/PersonDeletionOptions',
-	'as/dto/person/get/GetPersonsOperation',
-	'as/dto/person/get/GetPersonsOperationResult',
-	'as/dto/person/id/Me',
-	'as/dto/person/id/PersonPermId',
-	'as/dto/person/search/EmailSearchCriteria',
-	'as/dto/person/search/FirstNameSearchCriteria',
-	'as/dto/person/search/LastNameSearchCriteria',
-	'as/dto/person/search/ModifierSearchCriteria',
-	'as/dto/person/search/RegistratorSearchCriteria',
-	'as/dto/person/search/PersonSearchCriteria',
-	'as/dto/person/search/UserIdSearchCriteria',
-	'as/dto/person/search/UserIdsSearchCriteria',
-	'as/dto/person/search/SearchPersonsOperation',
-	'as/dto/person/search/SearchPersonsOperationResult',
-	'as/dto/person/update/PersonUpdate',
-	'as/dto/person/update/UpdatePersonsOperation',
-	'as/dto/person/update/UpdatePersonsOperationResult',
-	'as/dto/person/Person',
-	
-	'as/dto/project/create/ProjectCreation',
-	'as/dto/project/create/CreateProjectsOperation',
-	'as/dto/project/create/CreateProjectsOperationResult',
-	'as/dto/project/delete/ProjectDeletionOptions',
-	'as/dto/project/delete/DeleteProjectsOperation',
-	'as/dto/project/delete/DeleteProjectsOperationResult',
-	'as/dto/project/fetchoptions/ProjectFetchOptions',
-	'as/dto/project/fetchoptions/ProjectSortOptions',
-	'as/dto/project/get/GetProjectsOperation',
-	'as/dto/project/get/GetProjectsOperationResult',
-	'as/dto/project/id/ProjectIdentifier',
-	'as/dto/project/id/ProjectPermId',
-	'as/dto/project/Project',
-	'as/dto/project/search/NoProjectSearchCriteria',
-	'as/dto/project/search/ProjectSearchCriteria',
-	'as/dto/project/search/SearchProjectsOperation',
-	'as/dto/project/search/SearchProjectsOperationResult',
-	'as/dto/project/update/ProjectUpdate',
-	'as/dto/project/update/UpdateProjectsOperation',
-	'as/dto/project/update/UpdateProjectsOperationResult',
-	
-	'as/dto/property/create/PropertyAssignmentCreation',
-	'as/dto/property/create/PropertyTypeCreation',
-	'as/dto/property/create/CreatePropertyTypesOperation',
-	'as/dto/property/create/CreatePropertyTypesOperationResult',
-	'as/dto/property/delete/DeletePropertyTypesOperation',
-	'as/dto/property/delete/PropertyTypeDeletionOptions',
-	'as/dto/property/delete/DeletePropertyTypesOperationResult',
-	'as/dto/property/get/GetPropertyTypesOperation',
-	'as/dto/property/get/GetPropertyTypesOperationResult',
-	'as/dto/property/id/PropertyTypePermId',
-	'as/dto/property/id/PropertyAssignmentPermId',
-	'as/dto/property/fetchoptions/PropertyAssignmentFetchOptions',
-	'as/dto/property/fetchoptions/PropertyAssignmentSortOptions',
-	'as/dto/property/fetchoptions/PropertyFetchOptions',
-	'as/dto/property/fetchoptions/PropertyTypeFetchOptions',
-	'as/dto/property/fetchoptions/PropertyTypeSortOptions',
-	'as/dto/property/search/PropertyTypeSearchCriteria',
-	'as/dto/property/search/PropertyAssignmentSearchCriteria',
-	'as/dto/property/search/SearchPropertyTypesOperation',
-	'as/dto/property/search/SearchPropertyTypesOperationResult',
-	'as/dto/property/search/SearchPropertyAssignmentsOperation',
-	'as/dto/property/search/SearchPropertyAssignmentsOperationResult',
-	'as/dto/property/update/PropertyTypeUpdate',
-	'as/dto/property/update/UpdatePropertyTypesOperation',
-	'as/dto/property/update/UpdatePropertyTypesOperationResult',
-	'as/dto/property/DataType',
-	'as/dto/property/PropertyAssignment',
-	'as/dto/property/PropertyType',
-
-	'as/dto/query/create/CreateQueriesOperation',
-	'as/dto/query/create/CreateQueriesOperationResult',
-	'as/dto/query/create/QueryCreation',
-	'as/dto/query/delete/DeleteQueriesOperation',
-	'as/dto/query/delete/DeleteQueriesOperationResult',
-	'as/dto/query/delete/QueryDeletionOptions',
-	'as/dto/query/execute/ExecuteQueryOperation',
-	'as/dto/query/execute/ExecuteQueryOperationResult',
-	'as/dto/query/execute/ExecuteSqlOperation',
-	'as/dto/query/execute/ExecuteSqlOperationResult',
-	'as/dto/query/execute/QueryExecutionOptions',
-	'as/dto/query/execute/SqlExecutionOptions',
-	'as/dto/query/fetchoptions/QueryFetchOptions',
-	'as/dto/query/fetchoptions/QuerySortOptions',
-	'as/dto/query/fetchoptions/QueryDatabaseFetchOptions',
-	'as/dto/query/fetchoptions/QueryDatabaseSortOptions',
-	'as/dto/query/get/GetQueriesOperation',
-	'as/dto/query/get/GetQueriesOperationResult',
-	'as/dto/query/get/GetQueryDatabasesOperation',
-	'as/dto/query/get/GetQueryDatabasesOperationResult',
-	'as/dto/query/id/QueryDatabaseName',
-	'as/dto/query/id/QueryName',
-	'as/dto/query/search/DatabaseIdSearchCriteria',
-	'as/dto/query/search/EntityTypeCodePatternSearchCriteria',
-	'as/dto/query/search/QuerySearchCriteria',
-	'as/dto/query/search/QueryDatabaseSearchCriteria',
-	'as/dto/query/search/QueryTypeSearchCriteria',
-	'as/dto/query/search/SearchQueriesOperation',
-	'as/dto/query/search/SearchQueriesOperationResult',
-	'as/dto/query/search/SearchQueryDatabasesOperation',
-	'as/dto/query/search/SearchQueryDatabasesOperationResult',
-	'as/dto/query/search/SqlSearchCriteria',
-	'as/dto/query/update/QueryUpdate',
-	'as/dto/query/update/UpdateQueriesOperation',
-	'as/dto/query/update/UpdateQueriesOperationResult',
-	'as/dto/query/Query',
-	'as/dto/query/QueryDatabase',
-	'as/dto/query/QueryType',
-
-	'as/dto/pat/create/CreatePersonalAccessTokensOperation',
-	'as/dto/pat/create/CreatePersonalAccessTokensOperationResult',
-	'as/dto/pat/create/PersonalAccessTokenCreation',
-	'as/dto/pat/delete/DeletePersonalAccessTokensOperation',
-	'as/dto/pat/delete/DeletePersonalAccessTokensOperationResult',
-	'as/dto/pat/delete/PersonalAccessTokenDeletionOptions',
-	'as/dto/pat/fetchoptions/PersonalAccessTokenFetchOptions',
-	'as/dto/pat/fetchoptions/PersonalAccessTokenSortOptions',
-	'as/dto/pat/get/GetPersonalAccessTokensOperation',
-	'as/dto/pat/get/GetPersonalAccessTokensOperationResult',
-	'as/dto/pat/id/PersonalAccessTokenPermId',
-	'as/dto/pat/search/PersonalAccessTokenSearchCriteria',
-	'as/dto/pat/search/SearchPersonalAccessTokensOperation',
-	'as/dto/pat/search/SearchPersonalAccessTokensOperationResult',
-	'as/dto/pat/update/PersonalAccessTokenUpdate',
-	'as/dto/pat/update/UpdatePersonalAccessTokensOperation',
-	'as/dto/pat/update/UpdatePersonalAccessTokensOperationResult',
-	'as/dto/pat/PersonalAccessToken',
-
-	'as/dto/roleassignment/create/RoleAssignmentCreation',
-	'as/dto/roleassignment/create/CreateRoleAssignmentsOperation',
-	'as/dto/roleassignment/create/CreateRoleAssignmentsOperationResult',
-	'as/dto/roleassignment/delete/RoleAssignmentDeletionOptions',
-	'as/dto/roleassignment/delete/DeleteRoleAssignmentsOperation',
-	'as/dto/roleassignment/delete/DeleteRoleAssignmentsOperationResult',
-	'as/dto/roleassignment/fetchoptions/RoleAssignmentFetchOptions',
-	'as/dto/roleassignment/fetchoptions/RoleAssignmentSortOptions',
-	'as/dto/roleassignment/get/GetRoleAssignmentsOperation',
-	'as/dto/roleassignment/get/GetRoleAssignmentsOperationResult',
-	'as/dto/roleassignment/id/IRoleAssignmentId',
-	'as/dto/roleassignment/search/RoleAssignmentSearchCriteria',
-	'as/dto/roleassignment/search/SearchRoleAssignmentsOperation',
-	'as/dto/roleassignment/search/SearchRoleAssignmentsOperationResult',
-	'as/dto/roleassignment/Role',
-	'as/dto/roleassignment/RoleLevel',
-	'as/dto/roleassignment/RoleAssignment',
-	
-	'as/dto/rights/fetchoptions/RightsFetchOptions',
-	'as/dto/rights/get/GetRightsOperation',
-	'as/dto/rights/get/GetRightsOperationResult',
-	'as/dto/rights/Rights',
-	
-	'as/dto/plugin/create/PluginCreation',
-	'as/dto/plugin/create/CreatePluginsOperation',
-	'as/dto/plugin/create/CreatePluginsOperationResult',
-	'as/dto/plugin/delete/PluginDeletionOptions',
-	'as/dto/plugin/delete/DeletePluginsOperation',
-	'as/dto/plugin/delete/DeletePluginsOperationResult',
-	'as/dto/plugin/evaluate/DynamicPropertyPluginEvaluationOptions',
-	'as/dto/plugin/evaluate/DynamicPropertyPluginEvaluationResult',
-	'as/dto/plugin/evaluate/EntityValidationPluginEvaluationOptions',
-	'as/dto/plugin/evaluate/EntityValidationPluginEvaluationResult',
-	'as/dto/plugin/evaluate/EvaluatePluginOperation',
-	'as/dto/plugin/evaluate/EvaluatePluginOperationResult',
-	'as/dto/plugin/fetchoptions/PluginFetchOptions',
-	'as/dto/plugin/fetchoptions/PluginSortOptions',
-	'as/dto/plugin/get/GetPluginsOperation',
-	'as/dto/plugin/get/GetPluginsOperationResult',
-	'as/dto/plugin/id/PluginPermId',
-	'as/dto/plugin/search/PluginSearchCriteria',
-	'as/dto/plugin/search/PluginKindSearchCriteria',
-	'as/dto/plugin/search/PluginTypeSearchCriteria',
-	'as/dto/plugin/search/SearchPluginsOperation',
-	'as/dto/plugin/search/SearchPluginsOperationResult',
-	'as/dto/plugin/update/PluginUpdate',
-	'as/dto/plugin/update/UpdatePluginsOperation',
-	'as/dto/plugin/update/UpdatePluginsOperationResult',
-	'as/dto/plugin/Plugin',
-	'as/dto/plugin/PluginKind',
-	'as/dto/plugin/PluginType',
-	
-	'as/dto/sample/create/SampleCreation',
-	'as/dto/sample/create/CreateSamplesOperation',
-	'as/dto/sample/create/CreateSamplesOperationResult',
-	'as/dto/sample/create/SampleTypeCreation',
-	'as/dto/sample/create/CreateSampleTypesOperation',
-	'as/dto/sample/create/CreateSampleTypesOperationResult',
-	'as/dto/sample/delete/SampleDeletionOptions',
-	'as/dto/sample/delete/DeleteSamplesOperation',
-	'as/dto/sample/delete/DeleteSamplesOperationResult',
-	'as/dto/sample/delete/SampleTypeDeletionOptions',
-	'as/dto/sample/delete/DeleteSampleTypesOperation',
-	'as/dto/sample/delete/DeleteSampleTypesOperationResult',
-	'as/dto/sample/fetchoptions/SampleFetchOptions',
-	'as/dto/sample/fetchoptions/SampleSortOptions',
-	'as/dto/sample/fetchoptions/SampleTypeFetchOptions',
-	'as/dto/sample/fetchoptions/SampleTypeSortOptions',
-	'as/dto/sample/get/GetSamplesOperation',
-	'as/dto/sample/get/GetSamplesOperationResult',
-	'as/dto/sample/get/GetSampleTypesOperation',
-	'as/dto/sample/get/GetSampleTypesOperationResult',
-	'as/dto/sample/id/SampleIdentifier',
-	'as/dto/sample/id/SamplePermId',
-	'as/dto/sample/Sample',
-	'as/dto/sample/SampleType',
-	'as/dto/sample/search/SampleTypeSearchCriteria',
-	'as/dto/sample/search/NoSampleContainerSearchCriteria',
-	'as/dto/sample/search/NoSampleSearchCriteria',
-	'as/dto/sample/search/SampleSearchCriteria',
-	'as/dto/sample/search/SampleTypeSearchCriteria',
-	'as/dto/sample/search/ListableSampleTypeSearchCriteria',
-	'as/dto/sample/search/SearchSamplesOperation',
-	'as/dto/sample/search/SearchSamplesOperationResult',
-	'as/dto/sample/search/SearchSampleTypesOperation',
-	'as/dto/sample/search/SearchSampleTypesOperationResult',
-	'as/dto/sample/update/SampleUpdate',
-	'as/dto/sample/update/UpdateSamplesOperation',
-	'as/dto/sample/update/UpdateSamplesOperationResult',
-	'as/dto/sample/update/SampleTypeUpdate',
-	'as/dto/sample/update/UpdateSampleTypesOperation',
-	'as/dto/sample/update/UpdateSampleTypesOperationResult',
-	
-	'as/dto/service/CustomASService',
-	'as/dto/service/CustomASServiceExecutionOptions',
-	'as/dto/service/SearchDomainService',
-	'as/dto/service/AggregationService',
-	'as/dto/service/ReportingService',
-	'as/dto/service/ProcessingService',
-	'as/dto/service/SearchDomainServiceSearchOption',
-	'as/dto/service/SearchDomainServiceExecutionResult',
-	'as/dto/service/execute/ExecuteAggregationServiceOperation',
-	'as/dto/service/execute/ExecuteAggregationServiceOperationResult',
-	'as/dto/service/execute/ExecuteCustomASServiceOperation',
-	'as/dto/service/execute/ExecuteCustomASServiceOperationResult',
-	'as/dto/service/execute/ExecuteProcessingServiceOperation',
-	'as/dto/service/execute/ExecuteProcessingServiceOperationResult',
-	'as/dto/service/execute/ExecuteReportingServiceOperation',
-	'as/dto/service/execute/ExecuteReportingServiceOperationResult',
-	'as/dto/service/execute/ExecuteSearchDomainServiceOperation',
-	'as/dto/service/execute/ExecuteSearchDomainServiceOperationResult',
-	'as/dto/service/execute/AggregationServiceExecutionOptions',
-	'as/dto/service/execute/ProcessingServiceExecutionOptions',
-	'as/dto/service/execute/ReportingServiceExecutionOptions',
-	'as/dto/service/execute/SearchDomainServiceExecutionOptions',
-	'as/dto/service/fetchoptions/CustomASServiceFetchOptions',
-	'as/dto/service/fetchoptions/CustomASServiceSortOptions',
-	'as/dto/service/fetchoptions/SearchDomainServiceFetchOptions',
-	'as/dto/service/fetchoptions/SearchDomainServiceSortOptions',
-	'as/dto/service/fetchoptions/AggregationServiceFetchOptions',
-	'as/dto/service/fetchoptions/AggregationServiceSortOptions',
-	'as/dto/service/fetchoptions/ReportingServiceFetchOptions',
-	'as/dto/service/fetchoptions/ReportingServiceSortOptions',
-	'as/dto/service/fetchoptions/ProcessingServiceFetchOptions',
-	'as/dto/service/fetchoptions/ProcessingServiceSortOptions',
-	'as/dto/service/id/CustomASServiceCode',
-	'as/dto/service/id/DssServicePermId',
-	'as/dto/service/search/CustomASServiceSearchCriteria',
-	'as/dto/service/search/SearchCustomASServicesOperation',
-	'as/dto/service/search/SearchCustomASServicesOperationResult',
-	'as/dto/service/search/SearchDomainServiceSearchCriteria',
-	'as/dto/service/search/SearchSearchDomainServicesOperation',
-	'as/dto/service/search/SearchSearchDomainServicesOperationResult',
-	'as/dto/service/search/AggregationServiceSearchCriteria',
-	'as/dto/service/search/SearchAggregationServicesOperation',
-	'as/dto/service/search/SearchAggregationServicesOperationResult',
-	'as/dto/service/search/ReportingServiceSearchCriteria',
-	'as/dto/service/search/SearchReportingServicesOperation',
-	'as/dto/service/search/SearchReportingServicesOperationResult',
-	'as/dto/service/search/ProcessingServiceSearchCriteria',
-	'as/dto/service/search/SearchProcessingServicesOperation',
-	'as/dto/service/search/SearchProcessingServicesOperationResult',
-
-	'as/dto/session/fetchoptions/SessionInformationFetchOptions',
-	'as/dto/session/fetchoptions/SessionInformationSortOptions',
-	'as/dto/session/get/GetSessionInformationOperation',
-	'as/dto/session/get/GetSessionInformationOperationResult',
-	'as/dto/session/id/SessionInformationPermId',
-	'as/dto/session/search/SearchSessionInformationOperation',
-	'as/dto/session/search/SearchSessionInformationOperationResult',
-	'as/dto/session/search/SessionInformationSearchCriteria',
-	'as/dto/session/SessionInformation',
-
-	'as/dto/space/create/SpaceCreation',
-	'as/dto/space/create/CreateSpacesOperation',
-	'as/dto/space/create/CreateSpacesOperationResult',
-	'as/dto/space/delete/SpaceDeletionOptions',
-	'as/dto/space/delete/DeleteSpacesOperation',
-	'as/dto/space/delete/DeleteSpacesOperationResult',
-	'as/dto/space/fetchoptions/SpaceFetchOptions',
-	'as/dto/space/fetchoptions/SpaceSortOptions',
-	'as/dto/space/get/GetSpacesOperation',
-	'as/dto/space/get/GetSpacesOperationResult',
-	'as/dto/space/id/SpacePermId',
-	'as/dto/space/search/NoSpaceSearchCriteria',
-	'as/dto/space/search/SpaceSearchCriteria',
-	'as/dto/space/search/SearchSpacesOperation',
-	'as/dto/space/search/SearchSpacesOperationResult',
-	'as/dto/space/Space',
-	'as/dto/space/update/SpaceUpdate',
-	'as/dto/space/update/UpdateSpacesOperation',
-	'as/dto/space/update/UpdateSpacesOperationResult',
-	
-	'as/dto/semanticannotation/create/SemanticAnnotationCreation',
-	'as/dto/semanticannotation/create/CreateSemanticAnnotationsOperation',
-	'as/dto/semanticannotation/create/CreateSemanticAnnotationsOperationResult',
-	'as/dto/semanticannotation/delete/SemanticAnnotationDeletionOptions',
-	'as/dto/semanticannotation/delete/DeleteSemanticAnnotationsOperation',
-	'as/dto/semanticannotation/delete/DeleteSemanticAnnotationsOperationResult',
-	'as/dto/semanticannotation/fetchoptions/SemanticAnnotationFetchOptions',
-	'as/dto/semanticannotation/fetchoptions/SemanticAnnotationSortOptions',
-	'as/dto/semanticannotation/get/GetSemanticAnnotationsOperation',
-	'as/dto/semanticannotation/get/GetSemanticAnnotationsOperationResult',
-	'as/dto/semanticannotation/id/SemanticAnnotationPermId',
-	'as/dto/semanticannotation/search/SemanticAnnotationSearchCriteria',
-	'as/dto/semanticannotation/search/SearchSemanticAnnotationsOperation',
-	'as/dto/semanticannotation/search/SearchSemanticAnnotationsOperationResult',
-	'as/dto/semanticannotation/search/DescriptorAccessionIdSearchCriteria',
-	'as/dto/semanticannotation/search/DescriptorOntologyIdSearchCriteria',
-	'as/dto/semanticannotation/search/DescriptorOntologyVersionSearchCriteria',
-	'as/dto/semanticannotation/search/PredicateAccessionIdSearchCriteria',
-	'as/dto/semanticannotation/search/PredicateOntologyIdSearchCriteria',
-	'as/dto/semanticannotation/search/PredicateOntologyVersionSearchCriteria',
-	'as/dto/semanticannotation/update/SemanticAnnotationUpdate',
-	'as/dto/semanticannotation/update/UpdateSemanticAnnotationsOperation',
-	'as/dto/semanticannotation/update/UpdateSemanticAnnotationsOperationResult',
-	'as/dto/semanticannotation/SemanticAnnotation',
-	
-	'as/dto/tag/fetchoptions/TagFetchOptions',
-	'as/dto/tag/fetchoptions/TagSortOptions',
-	'as/dto/tag/id/TagCode',
-	'as/dto/tag/id/TagPermId',
-	'as/dto/tag/search/TagSearchCriteria',
-	'as/dto/tag/search/SearchTagsOperation',
-	'as/dto/tag/search/SearchTagsOperationResult',
-	'as/dto/tag/Tag',
-	'as/dto/tag/update/TagUpdate',
-	'as/dto/tag/update/UpdateTagsOperation',
-	'as/dto/tag/update/UpdateTagsOperationResult',
-	'as/dto/tag/create/TagCreation',
-	'as/dto/tag/create/CreateTagsOperation',
-	'as/dto/tag/create/CreateTagsOperationResult',
-   	'as/dto/tag/delete/TagDeletionOptions',
-   	'as/dto/tag/delete/DeleteTagsOperation',
-   	'as/dto/tag/delete/DeleteTagsOperationResult',
-   	'as/dto/tag/get/GetTagsOperation',
-   	'as/dto/tag/get/GetTagsOperationResult',
-   	
-	'as/dto/vocabulary/fetchoptions/VocabularyFetchOptions',
-	'as/dto/vocabulary/fetchoptions/VocabularySortOptions',
-	'as/dto/vocabulary/fetchoptions/VocabularyTermFetchOptions',
-	'as/dto/vocabulary/fetchoptions/VocabularyTermSortOptions',
-	'as/dto/vocabulary/id/VocabularyPermId',
-	'as/dto/vocabulary/id/VocabularyTermPermId',
-	'as/dto/vocabulary/Vocabulary',
-	'as/dto/vocabulary/VocabularyTerm',	
-	'as/dto/vocabulary/search/VocabularySearchCriteria',
-	'as/dto/vocabulary/search/VocabularyTermSearchCriteria',
-	'as/dto/vocabulary/search/SearchVocabulariesOperation',
-	'as/dto/vocabulary/search/SearchVocabulariesOperationResult',
-	'as/dto/vocabulary/search/SearchVocabularyTermsOperation',
-	'as/dto/vocabulary/search/SearchVocabularyTermsOperationResult',
-	'as/dto/vocabulary/create/VocabularyCreation',
-	'as/dto/vocabulary/create/CreateVocabulariesOperation',
-	'as/dto/vocabulary/create/CreateVocabulariesOperationResult',
-	'as/dto/vocabulary/create/VocabularyTermCreation',
-	'as/dto/vocabulary/create/CreateVocabularyTermsOperation',
-	'as/dto/vocabulary/create/CreateVocabularyTermsOperationResult',
-	'as/dto/vocabulary/delete/VocabularyDeletionOptions',
-	'as/dto/vocabulary/delete/DeleteVocabulariesOperation',
-	'as/dto/vocabulary/delete/DeleteVocabulariesOperationResult',
-	'as/dto/vocabulary/delete/VocabularyTermDeletionOptions',
-	'as/dto/vocabulary/delete/VocabularyTermReplacement',
-	'as/dto/vocabulary/delete/DeleteVocabularyTermsOperation',
-	'as/dto/vocabulary/delete/DeleteVocabularyTermsOperationResult',
-	'as/dto/vocabulary/get/GetVocabulariesOperation',
-	'as/dto/vocabulary/get/GetVocabulariesOperationResult',
-	'as/dto/vocabulary/get/GetVocabularyTermsOperation',
-	'as/dto/vocabulary/get/GetVocabularyTermsOperationResult',
-	'as/dto/vocabulary/update/VocabularyUpdate',
-	'as/dto/vocabulary/update/UpdateVocabulariesOperation',
-	'as/dto/vocabulary/update/UpdateVocabulariesOperationResult',
-	'as/dto/vocabulary/update/VocabularyTermUpdate',
-	'as/dto/vocabulary/update/UpdateVocabularyTermsOperation',
-	'as/dto/vocabulary/update/UpdateVocabularyTermsOperationResult',
-	
-	'as/dto/webapp/create/WebAppSettingCreation',
-	'as/dto/webapp/fetchoptions/WebAppSettingsFetchOptions',
-	'as/dto/webapp/fetchoptions/WebAppSettingsSortOptions',
-	'as/dto/webapp/update/WebAppSettingsUpdateValue',
-	'as/dto/webapp/WebAppSetting',
-	'as/dto/webapp/WebAppSettings',
-	
-	'as/dto/operation/delete/OperationExecutionDeletionOptions',
-	'as/dto/operation/delete/DeleteOperationExecutionsOperation',
-	'as/dto/operation/delete/DeleteOperationExecutionsOperationResult',
-	'as/dto/operation/fetchoptions/OperationExecutionDetailsFetchOptions',
-	'as/dto/operation/fetchoptions/OperationExecutionDetailsSortOptions',
-	'as/dto/operation/fetchoptions/OperationExecutionFetchOptions',
-	'as/dto/operation/fetchoptions/OperationExecutionNotificationFetchOptions',
-	'as/dto/operation/fetchoptions/OperationExecutionNotificationSortOptions',
-	'as/dto/operation/fetchoptions/OperationExecutionSortOptions',
-	'as/dto/operation/fetchoptions/OperationExecutionSummaryFetchOptions',
-	'as/dto/operation/fetchoptions/OperationExecutionSummarySortOptions',
-	'as/dto/operation/get/GetOperationExecutionsOperation',
-	'as/dto/operation/get/GetOperationExecutionsOperationResult',
-	'as/dto/operation/id/OperationExecutionPermId',
-	'as/dto/operation/search/OperationExecutionSearchCriteria',
-	'as/dto/operation/search/SearchOperationExecutionsOperation',
-	'as/dto/operation/search/SearchOperationExecutionsOperationResult',
-	'as/dto/operation/update/OperationExecutionUpdate',
-	'as/dto/operation/update/UpdateOperationExecutionsOperation',
-	'as/dto/operation/update/UpdateOperationExecutionsOperationResult',
-	'as/dto/operation/AsynchronousOperationExecutionOptions',
-	'as/dto/operation/AsynchronousOperationExecutionResults',
-	'as/dto/operation/OperationExecution',
-	'as/dto/operation/OperationExecutionDetails',
-	'as/dto/operation/OperationExecutionEmailNotification',
-	'as/dto/operation/OperationExecutionError',
-	'as/dto/operation/OperationExecutionProgress',
-	'as/dto/operation/OperationExecutionSummary',
-	'as/dto/operation/SynchronousOperationExecutionOptions',
-	'as/dto/operation/SynchronousOperationExecutionResults',
-
-	'as/dto/exporter/data/AllFields',
-	'as/dto/exporter/data/Attribute',
-	'as/dto/exporter/data/ExportableKind',
-	'as/dto/exporter/data/ExportablePermId',
-	'as/dto/exporter/data/ExportData',
-	'as/dto/exporter/data/IExportableFields',
-	'as/dto/exporter/data/SelectedFields',
-	'as/dto/exporter/options/ExportFormat',
-	'as/dto/exporter/options/ExportOptions',
-	'as/dto/exporter/options/XlsTextFormat',
-	'as/dto/exporter/ExportResult',
-
-	'as/dto/importer/data/IImportData',
-	'as/dto/importer/data/ImportFormat',
-	'as/dto/importer/data/ImportScript',
-	'as/dto/importer/data/UncompressedImportData',
-	'as/dto/importer/data/ZipImportData',
-	'as/dto/importer/options/ImportMode',
-	'as/dto/importer/options/ImportOptions',
-	'as/dto/importer/ImportOperation',
-	'as/dto/importer/ImportOperationResult',
-
-	'dss/dto/dataset/create/FullDataSetCreation',
-	'dss/dto/dataset/create/UploadedDataSetCreation',
-	'dss/dto/datasetfile/DataSetFile',
-	'dss/dto/datasetfile/create/DataSetFileCreation',
-	'dss/dto/datasetfile/fetchoptions/DataSetFileSortOptions',
-	'dss/dto/datasetfile/fetchoptions/DataSetFileFetchOptions',
-	'dss/dto/datasetfile/id/DataSetFilePermId',
-	'dss/dto/datasetfile/search/DataSetFileSearchCriteria'
-
- ];
-
-define(sources, 
-		function() 
-{
-	var allDTOConstructors = Array.prototype.slice.call(arguments);
-
-	var Dtos = function() {
-		for (var x=0; x<allDTOConstructors.length; x++) {
-			var arg = allDTOConstructors[x];
-			if (arg.prototype) {
-				var fullType = arg.prototype['@type'];
-				if (fullType) {
-					var type = fullType.split('.').slice(-1)[0];
-					this[type] = arg;
-				}
-			} else {
-				console.log(sources[x] + ' has no prototype');
-			}
-		}
-
-	};
-	return new Dtos();
+            package[typeName] = dtos[i]
+        }
+    }
+    return new Dtos()
 })
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/openbis-execute-operations.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/openbis-execute-operations.js
index 6648c0da8c6a37802d20613cff5de097f072a131..efef67902c8de1c616c966a9cf5924d5f01e09e7 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/openbis-execute-operations.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/openbis-execute-operations.js
@@ -1,14 +1,11 @@
-define([ 'jquery', 'openbis', 'test/common' ], function($, openbis, common) {
+define([], function() {
 
-	var c = new common();
-
-	var facade = function() {
+	var executeOperationsFacade = function(facade, dtos) {
 
 		this._private = {};
-		this._openbis = new openbis();
 
 		this._executeOperation = function(operation) {
-			return this._openbis.executeOperations([ operation ], new c.SynchronousOperationExecutionOptions());
+			return facade.executeOperations([ operation ], new dtos.SynchronousOperationExecutionOptions());
 		}
 
 		this._executeCreateOperation = function(operation) {
@@ -46,668 +43,672 @@ define([ 'jquery', 'openbis', 'test/common' ], function($, openbis, common) {
 
 		this.login = function(user, password) {
 			var thisFacade = this;
-			return this._openbis.login(user, password).done(function(sessionToken) {
+			return facade.login(user, password).done(function(sessionToken) {
 				thisFacade._private.sessionToken = sessionToken;
 			});
 		}
 
 		this.loginAs = function(user, password, asUserId) {
 			var thisFacade = this;
-			return this._openbis.loginAs(user, password, asUserId).done(function(sessionToken) {
+			return facade.loginAs(user, password, asUserId).done(function(sessionToken) {
 				thisFacade._private.sessionToken = sessionToken;
 			});
 		}
 
 		this.loginAsAnonymousUser = function() {
 			var thisFacade = this;
-			return this._openbis.loginAsAnonymousUser().done(function(sessionToken) {
+			return facade.loginAsAnonymousUser().done(function(sessionToken) {
 				thisFacade._private.sessionToken = sessionToken;
 			});
 		}
 
 		this.logout = function() {
 			var thisFacade = this;
-			return this._openbis.logout().done(function() {
+			return facade.logout().done(function() {
 				thisFacade._private.sessionToken = null;
 			});
 		}
 
 		this.getSessionInformation = function() {
-			return this._executeOperation(new c.GetSessionInformationOperation()).then(function(results) {
+			return this._executeOperation(new dtos.GetSessionInformationOperation()).then(function(results) {
 				return results.getResults()[0].getSessionInformation();
 			});
 		}
 
 		this.getServerInformation = function() {
-			return this._executeOperation(new c.GetServerInformationOperation()).then(function(results) {
+			return this._executeOperation(new dtos.GetServerInformationOperation()).then(function(results) {
 				return results.getResults()[0].getServerInformation();
 			});
 		}
 
 		this.getServerPublicInformation = function() {
-			return this._executeOperation(new c.GetServerPublicInformationOperation()).then(function(results) {
+			return this._executeOperation(new dtos.GetServerPublicInformationOperation()).then(function(results) {
 				return results.getResults()[0].getServerInformation();
 			});
 		}
 
 		this.createPermIdStrings = function(count) {
-			return this._executeOperation(new c.CreatePermIdsOperation(count)).then(function(results) {
+			return this._executeOperation(new dtos.CreatePermIdsOperation(count)).then(function(results) {
 				return results.getResults()[0].getPermIds();
 			});
 		}
 
 		this.createCodes = function(prefix, entityKind, count) {
-			return this._executeOperation(new c.CreateCodesOperation(prefix, entityKind, count)).then(function(results) {
+			return this._executeOperation(new dtos.CreateCodesOperation(prefix, entityKind, count)).then(function(results) {
 				return results.getResults()[0].getCodes();
 			});
 		}
 
 		this.createSpaces = function(creations) {
-			return this._executeCreateOperation(new c.CreateSpacesOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateSpacesOperation(creations));
 		}
 
 		this.createProjects = function(creations) {
-			return this._executeCreateOperation(new c.CreateProjectsOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateProjectsOperation(creations));
 		}
 
 		this.createExperiments = function(creations) {
-			return this._executeCreateOperation(new c.CreateExperimentsOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateExperimentsOperation(creations));
 		}
 
 		this.createExperimentTypes = function(creations) {
-			return this._executeCreateOperation(new c.CreateExperimentTypesOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateExperimentTypesOperation(creations));
 		}
 
 		this.createExternalDms = function(creations) {
-			return this._executeCreateOperation(new c.CreateExternalDmsOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateExternalDmsOperation(creations));
 		}
 
 		this.createSamples = function(creations) {
-			return this._executeCreateOperation(new c.CreateSamplesOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateSamplesOperation(creations));
 		}
 
 		this.createSampleTypes = function(creations) {
-			return this._executeCreateOperation(new c.CreateSampleTypesOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateSampleTypesOperation(creations));
 		}
 
 		this.createDataSetTypes = function(creations) {
-			return this._executeCreateOperation(new c.CreateDataSetTypesOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateDataSetTypesOperation(creations));
 		}
 
 		this.createDataSets = function(creations) {
-			return this._executeCreateOperation(new c.CreateDataSetsOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateDataSetsOperation(creations));
 		}
 
 		this.createMaterials = function(creations) {
-			return this._executeCreateOperation(new c.CreateMaterialsOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateMaterialsOperation(creations));
 		}
 
 		this.createMaterialTypes = function(creations) {
-			return this._executeCreateOperation(new c.CreateMaterialTypesOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateMaterialTypesOperation(creations));
 		}
 
 		this.createPropertyTypes = function(creations) {
-			return this._executeCreateOperation(new c.CreatePropertyTypesOperation(creations));
+			return this._executeCreateOperation(new dtos.CreatePropertyTypesOperation(creations));
 		}
 
 		this.createPlugins = function(creations) {
-			return this._executeCreateOperation(new c.CreatePluginsOperation(creations));
+			return this._executeCreateOperation(new dtos.CreatePluginsOperation(creations));
 		}
 
 		this.createVocabularyTerms = function(creations) {
-			return this._executeCreateOperation(new c.CreateVocabularyTermsOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateVocabularyTermsOperation(creations));
 		}
 
 		this.createVocabularies = function(creations) {
-			return this._executeCreateOperation(new c.CreateVocabulariesOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateVocabulariesOperation(creations));
 		}
 
 		this.createTags = function(creations) {
-			return this._executeCreateOperation(new c.CreateTagsOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateTagsOperation(creations));
 		}
 
 		this.createAuthorizationGroups = function(creations) {
-			return this._executeCreateOperation(new c.CreateAuthorizationGroupsOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateAuthorizationGroupsOperation(creations));
 		}
 
 		this.createRoleAssignments = function(creations) {
-			return this._executeCreateOperation(new c.CreateRoleAssignmentsOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateRoleAssignmentsOperation(creations));
 		}
 
 		this.createPersons = function(creations) {
-			return this._executeCreateOperation(new c.CreatePersonsOperation(creations));
+			return this._executeCreateOperation(new dtos.CreatePersonsOperation(creations));
 		}
 
 		this.createSemanticAnnotations = function(creations) {
-			return this._executeCreateOperation(new c.CreateSemanticAnnotationsOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateSemanticAnnotationsOperation(creations));
 		}
 
 		this.createQueries = function(creations) {
-			return this._executeCreateOperation(new c.CreateQueriesOperation(creations));
+			return this._executeCreateOperation(new dtos.CreateQueriesOperation(creations));
 		}
 
 		this.createPersonalAccessTokens = function(creations) {
-			return this._executeCreateOperation(new c.CreatePersonalAccessTokensOperation(creations));
+			return this._executeCreateOperation(new dtos.CreatePersonalAccessTokensOperation(creations));
 		}
 
 		this.updateSpaces = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateSpacesOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateSpacesOperation(updates));
 		}
 
 		this.updateProjects = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateProjectsOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateProjectsOperation(updates));
 		}
 
 		this.updateExperiments = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateExperimentsOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateExperimentsOperation(updates));
 		}
 
 		this.updateExperimentTypes = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateExperimentTypesOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateExperimentTypesOperation(updates));
 		}
 
 		this.updateSamples = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateSamplesOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateSamplesOperation(updates));
 		}
 
 		this.updateSampleTypes = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateSampleTypesOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateSampleTypesOperation(updates));
 		}
 
 		this.updateDataSets = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateDataSetsOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateDataSetsOperation(updates));
 		}
 
 		this.updateDataSetTypes = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateDataSetTypesOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateDataSetTypesOperation(updates));
 		}
 
 		this.updateMaterials = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateMaterialsOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateMaterialsOperation(updates));
 		}
 
 		this.updateMaterialTypes = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateMaterialTypesOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateMaterialTypesOperation(updates));
 		}
 
 		this.updateVocabularies = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateVocabulariesOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateVocabulariesOperation(updates));
 		}
 
 		this.updatePropertyTypes = function(updates) {
-			return this._executeUpdateOperation(new c.UpdatePropertyTypesOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdatePropertyTypesOperation(updates));
 		}
 
 		this.updatePlugins = function(updates) {
-			return this._executeUpdateOperation(new c.UpdatePluginsOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdatePluginsOperation(updates));
 		}
 
 		this.updateVocabularyTerms = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateVocabularyTermsOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateVocabularyTermsOperation(updates));
 		}
 
 		this.updateExternalDataManagementSystems = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateExternalDmsOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateExternalDmsOperation(updates));
 		}
 
 		this.updateTags = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateTagsOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateTagsOperation(updates));
 		}
 
 		this.updateAuthorizationGroups = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateAuthorizationGroupsOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateAuthorizationGroupsOperation(updates));
 		}
 
 		this.updatePersons = function(updates) {
-			return this._executeUpdateOperation(new c.UpdatePersonsOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdatePersonsOperation(updates));
 		}
 
 		this.updateOperationExecutions = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateOperationExecutionsOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateOperationExecutionsOperation(updates));
 		}
 
 		this.updateSemanticAnnotations = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateSemanticAnnotationsOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateSemanticAnnotationsOperation(updates));
 		}
 
 		this.updateQueries = function(updates) {
-			return this._executeUpdateOperation(new c.UpdateQueriesOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdateQueriesOperation(updates));
 		}
 
 		this.updatePersonalAccessTokens = function(updates) {
-			return this._executeUpdateOperation(new c.UpdatePersonalAccessTokensOperation(updates));
+			return this._executeUpdateOperation(new dtos.UpdatePersonalAccessTokensOperation(updates));
 		}
 
 		this.getSpaces = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetSpacesOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetSpacesOperation(ids, fetchOptions));
 		}
 
 		this.getProjects = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetProjectsOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetProjectsOperation(ids, fetchOptions));
 		}
 
 		this.getExperiments = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetExperimentsOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetExperimentsOperation(ids, fetchOptions));
 		}
 
 		this.getExperimentTypes = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetExperimentTypesOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetExperimentTypesOperation(ids, fetchOptions));
 		}
 
 		this.getSamples = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetSamplesOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetSamplesOperation(ids, fetchOptions));
 		}
 
 		this.getSampleTypes = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetSampleTypesOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetSampleTypesOperation(ids, fetchOptions));
 		}
 
 		this.getDataSets = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetDataSetsOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetDataSetsOperation(ids, fetchOptions));
 		}
 
 		this.getDataSetTypes = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetDataSetTypesOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetDataSetTypesOperation(ids, fetchOptions));
 		}
 
 		this.getMaterials = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetMaterialsOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetMaterialsOperation(ids, fetchOptions));
 		}
 
 		this.getMaterialTypes = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetMaterialTypesOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetMaterialTypesOperation(ids, fetchOptions));
 		}
 
 		this.getPropertyTypes = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetPropertyTypesOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetPropertyTypesOperation(ids, fetchOptions));
 		}
 
 		this.getPlugins = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetPluginsOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetPluginsOperation(ids, fetchOptions));
 		}
 
 		this.getVocabularies = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetVocabulariesOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetVocabulariesOperation(ids, fetchOptions));
 		}
 
 		this.getVocabularyTerms = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetVocabularyTermsOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetVocabularyTermsOperation(ids, fetchOptions));
 		}
 
 		this.getTags = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetTagsOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetTagsOperation(ids, fetchOptions));
 		}
 
 		this.getAuthorizationGroups = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetAuthorizationGroupsOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetAuthorizationGroupsOperation(ids, fetchOptions));
 		}
 
 		this.getRoleAssignments = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetRoleAssignmentsOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetRoleAssignmentsOperation(ids, fetchOptions));
+		}
+
+		this.getRights = function(ids, fetchOptions) {
+			return this._executeGetOperation(new dtos.GetRightsOperation(ids, fetchOptions));
 		}
 
 		this.getPersons = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetPersonsOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetPersonsOperation(ids, fetchOptions));
 		}
 
 		this.getSemanticAnnotations = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetSemanticAnnotationsOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetSemanticAnnotationsOperation(ids, fetchOptions));
 		}
 
 		this.getExternalDataManagementSystems = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetExternalDmsOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetExternalDmsOperation(ids, fetchOptions));
 		}
 
 		this.getOperationExecutions = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetOperationExecutionsOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetOperationExecutionsOperation(ids, fetchOptions));
 		}
 
 		this.getQueries = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetQueriesOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetQueriesOperation(ids, fetchOptions));
 		}
 
 		this.getQueryDatabases = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetQueryDatabasesOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetQueryDatabasesOperation(ids, fetchOptions));
 		}
 
 		this.getPersonalAccessTokens = function(ids, fetchOptions) {
-			return this._executeGetOperation(new c.GetPersonalAccessTokensOperation(ids, fetchOptions));
+			return this._executeGetOperation(new dtos.GetPersonalAccessTokensOperation(ids, fetchOptions));
 		}
 
 		this.searchSpaces = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchSpacesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchSpacesOperation(criteria, fetchOptions));
 		}
 
 		this.searchProjects = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchProjectsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchProjectsOperation(criteria, fetchOptions));
 		}
 
 		this.searchExperiments = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchExperimentsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchExperimentsOperation(criteria, fetchOptions));
 		}
 
 		this.searchExperimentTypes = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchExperimentTypesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchExperimentTypesOperation(criteria, fetchOptions));
 		}
 
 		this.searchSamples = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchSamplesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchSamplesOperation(criteria, fetchOptions));
 		}
 
 		this.searchSampleTypes = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchSampleTypesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchSampleTypesOperation(criteria, fetchOptions));
 		}
 
 		this.searchDataSets = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchDataSetsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchDataSetsOperation(criteria, fetchOptions));
 		}
 
 		this.searchDataSetTypes = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchDataSetTypesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchDataSetTypesOperation(criteria, fetchOptions));
 		}
 
 		this.searchMaterials = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchMaterialsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchMaterialsOperation(criteria, fetchOptions));
 		}
 
 		this.searchMaterialTypes = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchMaterialTypesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchMaterialTypesOperation(criteria, fetchOptions));
 		}
 
 		this.searchPlugins = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchPluginsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchPluginsOperation(criteria, fetchOptions));
 		}
 
 		this.searchVocabularies = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchVocabulariesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchVocabulariesOperation(criteria, fetchOptions));
 		}
 
 		this.searchVocabularyTerms = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchVocabularyTermsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchVocabularyTermsOperation(criteria, fetchOptions));
 		}
 
 		this.searchExternalDataManagementSystems = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchExternalDmsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchExternalDmsOperation(criteria, fetchOptions));
 		}
 
 		this.searchTags = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchTagsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchTagsOperation(criteria, fetchOptions));
 		}
 
 		this.searchAuthorizationGroups = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchAuthorizationGroupsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchAuthorizationGroupsOperation(criteria, fetchOptions));
 		}
 
 		this.searchRoleAssignments = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchRoleAssignmentsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchRoleAssignmentsOperation(criteria, fetchOptions));
 		}
 
 		this.searchPersons = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchPersonsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchPersonsOperation(criteria, fetchOptions));
 		}
 
 		this.searchCustomASServices = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchCustomASServicesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchCustomASServicesOperation(criteria, fetchOptions));
 		}
 
 		this.searchSearchDomainServices = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchSearchDomainServicesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchSearchDomainServicesOperation(criteria, fetchOptions));
 		}
 
 		this.searchAggregationServices = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchAggregationServicesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchAggregationServicesOperation(criteria, fetchOptions));
 		}
 
 		this.searchReportingServices = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchReportingServicesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchReportingServicesOperation(criteria, fetchOptions));
 		}
 
 		this.searchProcessingServices = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchProcessingServicesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchProcessingServicesOperation(criteria, fetchOptions));
 		}
 
 		this.searchObjectKindModifications = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchObjectKindModificationsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchObjectKindModificationsOperation(criteria, fetchOptions));
 		}
 
 		this.searchGlobally = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchGloballyOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchGloballyOperation(criteria, fetchOptions));
 		}
 
 		this.searchOperationExecutions = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchOperationExecutionsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchOperationExecutionsOperation(criteria, fetchOptions));
 		}
 
 		this.searchDataStores = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchDataStoresOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchDataStoresOperation(criteria, fetchOptions));
 		}
 
 		this.searchPropertyTypes = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchPropertyTypesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchPropertyTypesOperation(criteria, fetchOptions));
 		}
 
 		this.searchPropertyAssignments = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchPropertyAssignmentsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchPropertyAssignmentsOperation(criteria, fetchOptions));
 		}
 
 		this.searchSemanticAnnotations = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchSemanticAnnotationsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchSemanticAnnotationsOperation(criteria, fetchOptions));
 		}
 
 		this.searchQueries = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchQueriesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchQueriesOperation(criteria, fetchOptions));
 		}
 
 		this.searchQueryDatabases = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchQueryDatabasesOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchQueryDatabasesOperation(criteria, fetchOptions));
 		}
 
 		this.searchPersonalAccessTokens = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchPersonalAccessTokensOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchPersonalAccessTokensOperation(criteria, fetchOptions));
 		}
 
 		this.searchSessionInformation = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchSessionInformationOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchSessionInformationOperation(criteria, fetchOptions));
 		}
 
 		this.deleteSpaces = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteSpacesOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteSpacesOperation(ids, deletionOptions));
 		}
 
 		this.deleteProjects = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteProjectsOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteProjectsOperation(ids, deletionOptions));
 		}
 
 		this.deleteExperiments = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteExperimentsOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteExperimentsOperation(ids, deletionOptions));
 		}
 
 		this.deleteSamples = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteSamplesOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteSamplesOperation(ids, deletionOptions));
 		}
 
 		this.deleteDataSets = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteDataSetsOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteDataSetsOperation(ids, deletionOptions));
 		}
 
 		this.deleteMaterials = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteMaterialsOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteMaterialsOperation(ids, deletionOptions));
 		}
 
 		this.deleteExternalDataManagementSystems = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteExternalDmsOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteExternalDmsOperation(ids, deletionOptions));
 		}
 
 		this.deletePlugins = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeletePluginsOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeletePluginsOperation(ids, deletionOptions));
 		}
 
 		this.deletePropertyTypes = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeletePropertyTypesOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeletePropertyTypesOperation(ids, deletionOptions));
 		}
 
 		this.deleteVocabularies = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteVocabulariesOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteVocabulariesOperation(ids, deletionOptions));
 		}
 
 		this.deleteVocabularyTerms = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteVocabularyTermsOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteVocabularyTermsOperation(ids, deletionOptions));
 		}
 
 		this.deleteExperimentTypes = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteExperimentTypesOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteExperimentTypesOperation(ids, deletionOptions));
 		}
 
 		this.deleteSampleTypes = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteSampleTypesOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteSampleTypesOperation(ids, deletionOptions));
 		}
 
 		this.deleteDataSetTypes = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteDataSetTypesOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteDataSetTypesOperation(ids, deletionOptions));
 		}
 
 		this.deleteMaterialTypes = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteMaterialTypesOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteMaterialTypesOperation(ids, deletionOptions));
 		}
 
 		this.deleteTags = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteTagsOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteTagsOperation(ids, deletionOptions));
 		}
 
 		this.deleteAuthorizationGroups = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteAuthorizationGroupsOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteAuthorizationGroupsOperation(ids, deletionOptions));
 		}
 
 		this.deleteRoleAssignments = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteRoleAssignmentsOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteRoleAssignmentsOperation(ids, deletionOptions));
 		}
 
 		this.deleteOperationExecutions = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteOperationExecutionsOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteOperationExecutionsOperation(ids, deletionOptions));
 		}
 
 		this.deleteSemanticAnnotations = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteSemanticAnnotationsOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteSemanticAnnotationsOperation(ids, deletionOptions));
 		}
 
 		this.deleteQueries = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeleteQueriesOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeleteQueriesOperation(ids, deletionOptions));
 		}
 
 		this.deletePersonalAccessTokens = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeletePersonalAccessTokensOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeletePersonalAccessTokensOperation(ids, deletionOptions));
 		}
 
 		this.deletePersons = function(ids, deletionOptions) {
-			return this._executeDeleteOperation(new c.DeletePersonsOperation(ids, deletionOptions));
+			return this._executeDeleteOperation(new dtos.DeletePersonsOperation(ids, deletionOptions));
 		}
 
 		this.searchDeletions = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchDeletionsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchDeletionsOperation(criteria, fetchOptions));
 		}
 
 		this.searchEvents = function(criteria, fetchOptions) {
-			return this._executeSearchOperation(new c.SearchEventsOperation(criteria, fetchOptions));
+			return this._executeSearchOperation(new dtos.SearchEventsOperation(criteria, fetchOptions));
 		}
 
 		this.revertDeletions = function(ids) {
-			return this._executeOperation(new c.RevertDeletionsOperation(ids)).then(function(results) {
+			return this._executeOperation(new dtos.RevertDeletionsOperation(ids)).then(function(results) {
 				return results.getResults()[0];
 			});
 		}
 
 		this.confirmDeletions = function(ids) {
-			return this._executeOperation(new c.ConfirmDeletionsOperation(ids)).then(function(results) {
+			return this._executeOperation(new dtos.ConfirmDeletionsOperation(ids)).then(function(results) {
 				return results.getResults()[0];
 			});
 		}
 
 		this.executeCustomASService = function(serviceId, options) {
-			return this._executeOperation(new c.ExecuteCustomASServiceOperation(serviceId, options)).then(function(results) {
+			return this._executeOperation(new dtos.ExecuteCustomASServiceOperation(serviceId, options)).then(function(results) {
 				return results.getResults()[0].getResult();
 			});
 		}
 
 		this.executeAggregationService = function(serviceId, options) {
-			return this._executeOperation(new c.ExecuteAggregationServiceOperation(serviceId, options)).then(function(results) {
+			return this._executeOperation(new dtos.ExecuteAggregationServiceOperation(serviceId, options)).then(function(results) {
 				return results.getResults()[0].getResult();
 			});
 		}
 
 		this.executeReportingService = function(serviceId, options) {
-			return this._executeOperation(new c.ExecuteReportingServiceOperation(serviceId, options)).then(function(results) {
+			return this._executeOperation(new dtos.ExecuteReportingServiceOperation(serviceId, options)).then(function(results) {
 				return results.getResults()[0].getResult();
 			});
 		}
 
 		this.executeProcessingService = function(serviceId, options) {
-			return this._executeOperation(new c.ExecuteProcessingServiceOperation(serviceId, options)).then(function(results) {
+			return this._executeOperation(new dtos.ExecuteProcessingServiceOperation(serviceId, options)).then(function(results) {
 				return results.getResults()[0];
 			});
 		}
 
 		this.executeSearchDomainService = function(options) {
-			return this._executeOperation(new c.ExecuteSearchDomainServiceOperation(options)).then(function(results) {
+			return this._executeOperation(new dtos.ExecuteSearchDomainServiceOperation(options)).then(function(results) {
 				return results.getResults()[0].getResult();
 			});
 		}
 
 		this.executeQuery = function(queryId, options) {
-			return this._executeOperation(new c.ExecuteQueryOperation(queryId, options)).then(function(results) {
+			return this._executeOperation(new dtos.ExecuteQueryOperation(queryId, options)).then(function(results) {
 				return results.getResults()[0].getResult();
 			});
 		}
 
 		this.executeSql = function(sql, options) {
-			return this._executeOperation(new c.ExecuteSqlOperation(sql, options)).then(function(results) {
+			return this._executeOperation(new dtos.ExecuteSqlOperation(sql, options)).then(function(results) {
 				return results.getResults()[0].getResult();
 			});
 		}
 
 		this.evaluatePlugin = function(options) {
-			return this._executeOperation(new c.EvaluatePluginOperation(options)).then(function(results) {
+			return this._executeOperation(new dtos.EvaluatePluginOperation(options)).then(function(results) {
 				return results.getResults()[0].getResult();
 			});
 		}
 
 		this.archiveDataSets = function(ids, options) {
-			return this._executeOperation(new c.ArchiveDataSetsOperation(ids, options)).then(function(results) {
+			return this._executeOperation(new dtos.ArchiveDataSetsOperation(ids, options)).then(function(results) {
 				return results.getResults()[0];
 			});
 		}
 
 		this.unarchiveDataSets = function(ids, options) {
-			return this._executeOperation(new c.UnarchiveDataSetsOperation(ids, options)).then(function(results) {
+			return this._executeOperation(new dtos.UnarchiveDataSetsOperation(ids, options)).then(function(results) {
 				return results.getResults()[0];
 			});
 		}
 
 		this.lockDataSets = function(ids, options) {
-			return this._executeOperation(new c.LockDataSetsOperation(ids, options)).then(function(results) {
+			return this._executeOperation(new dtos.LockDataSetsOperation(ids, options)).then(function(results) {
 				return results.getResults()[0];
 			});
 		}
 
 		this.unlockDataSets = function(ids, options) {
-			return this._executeOperation(new c.UnlockDataSetsOperation(ids, options)).then(function(results) {
+			return this._executeOperation(new dtos.UnlockDataSetsOperation(ids, options)).then(function(results) {
 				return results.getResults()[0];
 			});
 		}
 
 		this.executeOperations = function(operations, options) {
-			return this._openbis.executeOperations(operations, options);
+			return facade.executeOperations(operations, options);
 		}
 
 		this.getDataStoreFacade = function() {
-			return this._openbis.getDataStoreFacade.apply(this._openbis, arguments);
+			return facade.getDataStoreFacade.apply(facade, arguments);
 		}
 
 		this.executeImport = function(importData, importOptions) {
-			return this._executeOperation(new c.ImportOperation(importData, importOptions));
+			return this._executeOperation(new dtos.ImportOperation(importData, importOptions));
 		}
 
 	}
 
-	return facade;
+	return executeOperationsFacade;
 
 });
\ No newline at end of file
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-archive-unarchive.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-archive-unarchive.js
index b6895b779c004a1705f785957d85ecaa13324267..d3dd925b215ddad3de73fcc4da310ebea2a49f31 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-archive-unarchive.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-archive-unarchive.js
@@ -1,11 +1,11 @@
-define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common' ], function($, _, openbis, openbisExecuteOperations, common) {
-	var executeModule = function(moduleName, openbis) {
+define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], function($, _, openbis, openbisExecuteOperations, common, dtos) {
+	var executeModule = function(moduleName, facade, dtos) {
 		QUnit.module(moduleName);
 
 		var testAction = function(c, fAction, actionType) {
 			c.start();
 
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				c.ok("Login");
 				return fAction(facade).then(function(result) {
 					c.ok(actionType);
@@ -18,12 +18,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		}
 
 		QUnit.test("archiveDataSets()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fAction = function(facade) {
 				return $.when(c.createDataSet(facade), c.createDataSet(facade)).then(function(permId1, permId2) {
 					var ids = [ permId1, permId2 ];
-					return facade.archiveDataSets(ids, new c.DataSetArchiveOptions());
+					return facade.archiveDataSets(ids, new dtos.DataSetArchiveOptions());
 				});
 			}
 
@@ -31,13 +31,13 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("unarchiveDataSets()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fAction = function(facade) {
 				return $.when(c.createDataSet(facade), c.createDataSet(facade)).then(function(permId1, permId2) {
 					var ids = [ permId1, permId2 ];
-					return facade.archiveDataSets(ids, new c.DataSetArchiveOptions()).then(function() {
-						return facade.unarchiveDataSets(ids, new c.DataSetUnarchiveOptions());
+					return facade.archiveDataSets(ids, new dtos.DataSetArchiveOptions()).then(function() {
+						return facade.unarchiveDataSets(ids, new dtos.DataSetUnarchiveOptions());
 					});
 				});
 			}
@@ -46,12 +46,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("lockDataSets()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			
 			var fAction = function(facade) {
 				return $.when(c.createDataSet(facade), c.createDataSet(facade)).then(function(permId1, permId2) {
 					var ids = [ permId1, permId2 ];
-					return facade.lockDataSets(ids, new c.DataSetLockOptions());
+					return facade.lockDataSets(ids, new dtos.DataSetLockOptions());
 				});
 			}
 			
@@ -59,13 +59,13 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("unlockDataSets()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			
 			var fAction = function(facade) {
 				return $.when(c.createDataSet(facade), c.createDataSet(facade)).then(function(permId1, permId2) {
 					var ids = [ permId1, permId2 ];
-					return facade.lockDataSets(ids, new c.DataSetLockOptions()).then(function() {
-						return facade.unlockDataSets(ids, new c.DataSetUnlockOptions());
+					return facade.lockDataSets(ids, new dtos.DataSetLockOptions()).then(function() {
+						return facade.unlockDataSets(ids, new dtos.DataSetUnlockOptions());
 					});
 				});
 			}
@@ -76,7 +76,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 	}
 
 	return function() {
-		executeModule("Archive/Unarchive", openbis);
-		executeModule("Archive/Unarchive (executeOperations)", openbisExecuteOperations);
+		executeModule("Archive/Unarchive (RequireJS)", new openbis(), dtos);
+		executeModule("Archive/Unarchive (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos);
+		executeModule("Archive/Unarchive (module UMD)", new window.openbis.openbis(), window.openbis);
+		executeModule("Archive/Unarchive (module UMD - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis);
+		executeModule("Archive/Unarchive (module ESM)", new window.openbisESM.openbis(), window.openbisESM);
+		executeModule("Archive/Unarchive (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM);
 	}
 })
\ No newline at end of file
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-create.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-create.js
index bba5587fe768cccaa6b522bff2d6479b90aef043..c4656106f740af06710150b763a834ffca64f537 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-create.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-create.js
@@ -1,13 +1,13 @@
 define(
-		[ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common' ],
-		function($, _, openbis, openbisExecuteOperations, common) {
-			var executeModule = function(moduleName, openbis) {
+		[ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ],
+		function($, _, openbis, openbisExecuteOperations, common, dtos) {
+			var executeModule = function(moduleName, facade, dtos) {
 				QUnit.module(moduleName);
 
 				var testCreate = function(c, fCreate, fFind, fCheck) {
 					c.start();
 
-					c.createFacadeAndLogin().then(function(facade) {
+					c.login(facade).then(function() {
 						return fCreate(facade).then(function(permIds) {
 							c.assertTrue(permIds != null && permIds.length == 1, "Entity was created");
 							return fFind(facade, permIds[0]).then(function(entity) {
@@ -29,9 +29,9 @@ define(
 				}
 
 				QUnit.test("createPermIdStrings", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					c.start();
-					c.createFacadeAndLogin().then(function(facade) {
+					c.login(facade).then(function() {
 						return facade.createPermIdStrings(7).then(function(permIds) {
 							c.assertEqual(permIds.length, 7, "Number of perm ids");
 							c.finish();
@@ -43,10 +43,10 @@ define(
 				});
 
 				QUnit.test("createCodes", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					c.start();
-					c.createFacadeAndLogin().then(function(facade) {
-						return facade.createCodes("ABC-", c.EntityKind.SAMPLE, 7).then(function(codes) {
+					c.login(facade).then(function() {
+						return facade.createCodes("ABC-", dtos.EntityKind.SAMPLE, 7).then(function(codes) {
 							c.assertEqual(codes.length, 7, "Number of codes");
 							c.finish();
 						});
@@ -57,11 +57,11 @@ define(
 				});
 
 				QUnit.test("createSpaces()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("SPACE");
 
 					var fCreate = function(facade) {
-						var creation = new c.SpaceCreation();
+						var creation = new dtos.SpaceCreation();
 						creation.setCode(code);
 						creation.setDescription("test description");
 						return facade.createSpaces([ creation ]);
@@ -76,15 +76,15 @@ define(
 				});
 
 				QUnit.test("createProjects()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("PROJECT");
 
 					var fCreate = function(facade) {
-						var projectCreation = new c.ProjectCreation();
-						projectCreation.setSpaceId(new c.SpacePermId("TEST"));
+						var projectCreation = new dtos.ProjectCreation();
+						projectCreation.setSpaceId(new dtos.SpacePermId("TEST"));
 						projectCreation.setCode(code);
 						projectCreation.setDescription("JS test project");
-						attachmentCreation = new c.AttachmentCreation();
+						attachmentCreation = new dtos.AttachmentCreation();
 						attachmentCreation.setFileName("test_file");
 						attachmentCreation.setTitle("test_title");
 						attachmentCreation.setDescription("test_description");
@@ -109,16 +109,16 @@ define(
 				});
 
 				QUnit.test("createExperiments()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("EXPERIMENT");
 
 					var fCreate = function(facade) {
-						var experimentCreation = new c.ExperimentCreation();
-						experimentCreation.setTypeId(new c.EntityTypePermId("HT_SEQUENCING"));
+						var experimentCreation = new dtos.ExperimentCreation();
+						experimentCreation.setTypeId(new dtos.EntityTypePermId("HT_SEQUENCING"));
 						experimentCreation.setCode(code);
-						experimentCreation.setProjectId(new c.ProjectIdentifier("/TEST/TEST-PROJECT"));
-						experimentCreation.setTagIds([ new c.TagCode("CREATE_JSON_TAG") ]);
-						attachmentCreation = new c.AttachmentCreation();
+						experimentCreation.setProjectId(new dtos.ProjectIdentifier("/TEST/TEST-PROJECT"));
+						experimentCreation.setTagIds([ new dtos.TagCode("CREATE_JSON_TAG") ]);
+						attachmentCreation = new dtos.AttachmentCreation();
 						attachmentCreation.setFileName("test_file");
 						attachmentCreation.setTitle("test_title");
 						attachmentCreation.setDescription("test_description");
@@ -155,36 +155,36 @@ define(
 				});
 
 				QUnit.test("createExperiment() with properties of type SAMPLE and DATE", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var propertyTypeCodeSample = c.generateId("PROPERTY_TYPE");
 					var propertyTypeCodeDate = c.generateId("PROPERTY_TYPE");
 					var experimentTypeCode = c.generateId("EXPERIMENT_TYPE");
 					var code = c.generateId("EXPERIMENT");
 					
 					var fCreate = function(facade) {
-						var propertyTypeCreation1 = new c.PropertyTypeCreation();
+						var propertyTypeCreation1 = new dtos.PropertyTypeCreation();
 						propertyTypeCreation1.setCode(propertyTypeCodeSample);
 						propertyTypeCreation1.setDescription("hello");
-						propertyTypeCreation1.setDataType(c.DataType.SAMPLE);
+						propertyTypeCreation1.setDataType(dtos.DataType.SAMPLE);
 						propertyTypeCreation1.setLabel("Test Property Type");
-						var propertyTypeCreation2 = new c.PropertyTypeCreation();
+						var propertyTypeCreation2 = new dtos.PropertyTypeCreation();
 						propertyTypeCreation2.setCode(propertyTypeCodeDate);
 						propertyTypeCreation2.setDescription("hello");
-						propertyTypeCreation2.setDataType(c.DataType.DATE);
+						propertyTypeCreation2.setDataType(dtos.DataType.DATE);
 						propertyTypeCreation2.setLabel("Test Property Type");
 						return facade.createPropertyTypes([ propertyTypeCreation1, propertyTypeCreation2 ]).then(function(results) {
-							var assignmentCreation1 = new c.PropertyAssignmentCreation();
-							assignmentCreation1.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCodeSample));
-							var assignmentCreation2 = new c.PropertyAssignmentCreation();
-							assignmentCreation2.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCodeDate));
-							var experimentTypeCreation = new c.ExperimentTypeCreation();
+							var assignmentCreation1 = new dtos.PropertyAssignmentCreation();
+							assignmentCreation1.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCodeSample));
+							var assignmentCreation2 = new dtos.PropertyAssignmentCreation();
+							assignmentCreation2.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCodeDate));
+							var experimentTypeCreation = new dtos.ExperimentTypeCreation();
 							experimentTypeCreation.setCode(experimentTypeCode);
 							experimentTypeCreation.setPropertyAssignments([ assignmentCreation1, assignmentCreation2 ]);
 							return facade.createExperimentTypes([ experimentTypeCreation ]).then(function(results) {
-								var creation = new c.ExperimentCreation();
-								creation.setTypeId(new c.EntityTypePermId(experimentTypeCode));
+								var creation = new dtos.ExperimentCreation();
+								creation.setTypeId(new dtos.EntityTypePermId(experimentTypeCode));
 								creation.setCode(code);
-								creation.setProjectId(new c.ProjectIdentifier("/TEST/TEST-PROJECT"));
+								creation.setProjectId(new dtos.ProjectIdentifier("/TEST/TEST-PROJECT"));
 								creation.setProperty(propertyTypeCodeSample, "20130412140147735-20");
 								creation.setProperty(propertyTypeCodeDate, "2013-04-12");
 								return facade.createExperiments([ creation ]);
@@ -206,30 +206,30 @@ define(
 				});
 
 				QUnit.test("createExperiment() with multi-value property of type SAMPLE", function(assert) {
-                    var c = new common(assert, openbis);
+                    var c = new common(assert, dtos);
                     var propertyTypeCodeSample = c.generateId("PROPERTY_TYPE");
 
                     var experimentTypeCode = c.generateId("EXPERIMENT_TYPE");
                     var code = c.generateId("EXPERIMENT");
 
                     var fCreate = function(facade) {
-                        var propertyTypeCreation1 = new c.PropertyTypeCreation();
+                        var propertyTypeCreation1 = new dtos.PropertyTypeCreation();
                         propertyTypeCreation1.setCode(propertyTypeCodeSample);
                         propertyTypeCreation1.setDescription("hello");
-                        propertyTypeCreation1.setDataType(c.DataType.SAMPLE);
+                        propertyTypeCreation1.setDataType(dtos.DataType.SAMPLE);
                         propertyTypeCreation1.setLabel("Test Property Type");
                         propertyTypeCreation1.setMultiValue(true);
                         return facade.createPropertyTypes([ propertyTypeCreation1 ]).then(function(results) {
-                            var assignmentCreation1 = new c.PropertyAssignmentCreation();
-                            assignmentCreation1.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCodeSample));
-                            var experimentTypeCreation = new c.ExperimentTypeCreation();
+                            var assignmentCreation1 = new dtos.PropertyAssignmentCreation();
+                            assignmentCreation1.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCodeSample));
+                            var experimentTypeCreation = new dtos.ExperimentTypeCreation();
                             experimentTypeCreation.setCode(experimentTypeCode);
                             experimentTypeCreation.setPropertyAssignments([ assignmentCreation1 ]);
                             return facade.createExperimentTypes([ experimentTypeCreation ]).then(function(results) {
-                                var creation = new c.ExperimentCreation();
-                                creation.setTypeId(new c.EntityTypePermId(experimentTypeCode));
+                                var creation = new dtos.ExperimentCreation();
+                                creation.setTypeId(new dtos.EntityTypePermId(experimentTypeCode));
                                 creation.setCode(code);
-                                creation.setProjectId(new c.ProjectIdentifier("/TEST/TEST-PROJECT"));
+                                creation.setProjectId(new dtos.ProjectIdentifier("/TEST/TEST-PROJECT"));
                                 creation.setProperty(propertyTypeCodeSample, ["20130412140147735-20", "20130424134657597-433"]);
                                 return facade.createExperiments([ creation ]);
                             });
@@ -251,31 +251,31 @@ define(
                 });
 
                 QUnit.test("createExperiment() with multi-value property of type CONTROLLEDVOCABULARY", function(assert) {
-                    var c = new common(assert, openbis);
+                    var c = new common(assert, dtos);
                     var propertyTypeCodeVocab = c.generateId("PROPERTY_TYPE");
 
                     var experimentTypeCode = c.generateId("EXPERIMENT_TYPE");
                     var code = c.generateId("EXPERIMENT");
 
                     var fCreate = function(facade) {
-                        var propertyTypeCreation1 = new c.PropertyTypeCreation();
+                        var propertyTypeCreation1 = new dtos.PropertyTypeCreation();
                         propertyTypeCreation1.setCode(propertyTypeCodeVocab);
                         propertyTypeCreation1.setDescription("hello");
-                        propertyTypeCreation1.setDataType(c.DataType.CONTROLLEDVOCABULARY);
+                        propertyTypeCreation1.setDataType(dtos.DataType.CONTROLLEDVOCABULARY);
                         propertyTypeCreation1.setLabel("Test Property Type");
                         propertyTypeCreation1.setMultiValue(true);
-                        propertyTypeCreation1.setVocabularyId(new c.VocabularyPermId("ANTIBODY.HOST"));
+                        propertyTypeCreation1.setVocabularyId(new dtos.VocabularyPermId("ANTIBODY.HOST"));
                         return facade.createPropertyTypes([ propertyTypeCreation1 ]).then(function(results) {
-                            var assignmentCreation1 = new c.PropertyAssignmentCreation();
-                            assignmentCreation1.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCodeVocab));
-                            var experimentTypeCreation = new c.ExperimentTypeCreation();
+                            var assignmentCreation1 = new dtos.PropertyAssignmentCreation();
+                            assignmentCreation1.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCodeVocab));
+                            var experimentTypeCreation = new dtos.ExperimentTypeCreation();
                             experimentTypeCreation.setCode(experimentTypeCode);
                             experimentTypeCreation.setPropertyAssignments([ assignmentCreation1 ]);
                             return facade.createExperimentTypes([ experimentTypeCreation ]).then(function(results) {
-                                var creation = new c.ExperimentCreation();
-                                creation.setTypeId(new c.EntityTypePermId(experimentTypeCode));
+                                var creation = new dtos.ExperimentCreation();
+                                creation.setTypeId(new dtos.EntityTypePermId(experimentTypeCode));
                                 creation.setCode(code);
-                                creation.setProjectId(new c.ProjectIdentifier("/TEST/TEST-PROJECT"));
+                                creation.setProjectId(new dtos.ProjectIdentifier("/TEST/TEST-PROJECT"));
                                 creation.setProperty(propertyTypeCodeVocab, ["RAT", "MOUSE"]);
                                 return facade.createExperiments([ creation ]);
                             });
@@ -294,24 +294,24 @@ define(
                 });
 				
 				QUnit.test("createExperimentTypes()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("EXPERIMENT_TYPE");
 
 					var fCreate = function(facade) {
-						var assignmentCreation = new c.PropertyAssignmentCreation();
+						var assignmentCreation = new dtos.PropertyAssignmentCreation();
 						assignmentCreation.setSection("test section");
 						assignmentCreation.setOrdinal(10);
-						assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId("DESCRIPTION"));
-						assignmentCreation.setPluginId(new c.PluginPermId("Diff_time"));
+						assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId("DESCRIPTION"));
+						assignmentCreation.setPluginId(new dtos.PluginPermId("Diff_time"));
 						assignmentCreation.setMandatory(true);
 						assignmentCreation.setInitialValueForExistingEntities("initial value");
 						assignmentCreation.setShowInEditView(true);
 						assignmentCreation.setShowRawValueInForms(true);
 
-						var creation = new c.ExperimentTypeCreation();
+						var creation = new dtos.ExperimentTypeCreation();
 						creation.setCode(code);
 						creation.setDescription("a new description");
-						creation.setValidationPluginId(new c.PluginPermId("Has_Parents"));
+						creation.setValidationPluginId(new dtos.PluginPermId("Has_Parents"));
 						creation.setPropertyAssignments([ assignmentCreation ]);
 						creation.setMetaData({"type_key":"type_value"});
 
@@ -344,15 +344,15 @@ define(
 				});
 
 				QUnit.test("createSamples()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("SAMPLE");
 
 					var fCreate = function(facade) {
-						var creation = new c.SampleCreation();
-						creation.setTypeId(new c.EntityTypePermId("UNKNOWN"));
+						var creation = new dtos.SampleCreation();
+						creation.setTypeId(new dtos.EntityTypePermId("UNKNOWN"));
 						creation.setCode(code);
-						creation.setSpaceId(new c.SpacePermId("TEST"));
-						creation.setTagIds([ new c.TagCode("CREATE_JSON_TAG") ]);
+						creation.setSpaceId(new dtos.SpacePermId("TEST"));
+						creation.setTagIds([ new dtos.TagCode("CREATE_JSON_TAG") ]);
 						creation.setMetaData({"sample_key":"sample_value"});
 						return facade.createSamples([ creation ]);
 					}
@@ -371,15 +371,15 @@ define(
 				});
 
 				QUnit.test("createSamples() with annotated child", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("SAMPLE");
-					var childId = new c.SampleIdentifier("/TEST/TEST-SAMPLE-1");
+					var childId = new dtos.SampleIdentifier("/TEST/TEST-SAMPLE-1");
 					
 					var fCreate = function(facade) {
-						var creation = new c.SampleCreation();
-						creation.setTypeId(new c.EntityTypePermId("UNKNOWN"));
+						var creation = new dtos.SampleCreation();
+						creation.setTypeId(new dtos.EntityTypePermId("UNKNOWN"));
 						creation.setCode(code);
-						creation.setSpaceId(new c.SpacePermId("TEST"));
+						creation.setSpaceId(new dtos.SpacePermId("TEST"));
 						creation.setChildIds([ childId ]);
 						creation.relationship(childId)
 								.addParentAnnotation("type", "mother").addChildAnnotation("type", "daughter");
@@ -401,15 +401,15 @@ define(
 				});
 
 				QUnit.test("createSamples() with annotated parent", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("SAMPLE");
-					var parentId = new c.SampleIdentifier("/TEST/TEST-SAMPLE-1");
+					var parentId = new dtos.SampleIdentifier("/TEST/TEST-SAMPLE-1");
 					
 					var fCreate = function(facade) {
-						var creation = new c.SampleCreation();
-						creation.setTypeId(new c.EntityTypePermId("UNKNOWN"));
+						var creation = new dtos.SampleCreation();
+						creation.setTypeId(new dtos.EntityTypePermId("UNKNOWN"));
 						creation.setCode(code);
-						creation.setSpaceId(new c.SpacePermId("TEST"));
+						creation.setSpaceId(new dtos.SpacePermId("TEST"));
 						creation.setParentIds([ parentId ]);
 						creation.relationship(parentId)
 							.addParentAnnotation("type", "mother").addChildAnnotation("type", "daughter");
@@ -431,28 +431,28 @@ define(
 				});
 
 				QUnit.test("createSamples() with property of type SAMPLE", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var propertyTypeCode = c.generateId("PROPERTY_TYPE");
 					var sampleTypeCode = c.generateId("SAMPLE_TYPE");
 					var code = c.generateId("SAMPLE");
 					
 					var fCreate = function(facade) {
-						var propertyTypeCreation = new c.PropertyTypeCreation();
+						var propertyTypeCreation = new dtos.PropertyTypeCreation();
 						propertyTypeCreation.setCode(propertyTypeCode);
 						propertyTypeCreation.setDescription("hello");
-						propertyTypeCreation.setDataType(c.DataType.SAMPLE);
+						propertyTypeCreation.setDataType(dtos.DataType.SAMPLE);
 						propertyTypeCreation.setLabel("Test Property Type");
 						return facade.createPropertyTypes([ propertyTypeCreation ]).then(function(results) {
-							var assignmentCreation = new c.PropertyAssignmentCreation();
-							assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCode));
-							var sampleTypeCreation = new c.SampleTypeCreation();
+							var assignmentCreation = new dtos.PropertyAssignmentCreation();
+							assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+							var sampleTypeCreation = new dtos.SampleTypeCreation();
 							sampleTypeCreation.setCode(sampleTypeCode);
 							sampleTypeCreation.setPropertyAssignments([ assignmentCreation ]);
 							return facade.createSampleTypes([ sampleTypeCreation ]).then(function(results) {
-								var creation = new c.SampleCreation();
-								creation.setTypeId(new c.EntityTypePermId(sampleTypeCode));
+								var creation = new dtos.SampleCreation();
+								creation.setTypeId(new dtos.EntityTypePermId(sampleTypeCode));
 								creation.setCode(code);
-								creation.setSpaceId(new c.SpacePermId("TEST"));
+								creation.setSpaceId(new dtos.SpacePermId("TEST"));
 								creation.setProperty(propertyTypeCode, "20130412140147735-20");
 								return facade.createSamples([ creation ]);
 							});
@@ -471,29 +471,29 @@ define(
 				});
 
 				QUnit.test("createSamples() with multi-value property of type SAMPLE", function(assert) {
-                    var c = new common(assert, openbis);
+                    var c = new common(assert, dtos);
                     var propertyTypeCode = c.generateId("PROPERTY_TYPE");
                     var sampleTypeCode = c.generateId("SAMPLE_TYPE");
                     var code = c.generateId("SAMPLE");
 
                     var fCreate = function(facade) {
-                        var propertyTypeCreation = new c.PropertyTypeCreation();
+                        var propertyTypeCreation = new dtos.PropertyTypeCreation();
                         propertyTypeCreation.setCode(propertyTypeCode);
                         propertyTypeCreation.setDescription("hello");
-                        propertyTypeCreation.setDataType(c.DataType.SAMPLE);
+                        propertyTypeCreation.setDataType(dtos.DataType.SAMPLE);
                         propertyTypeCreation.setLabel("Test Property Type");
                         propertyTypeCreation.setMultiValue(true);
                         return facade.createPropertyTypes([ propertyTypeCreation ]).then(function(results) {
-                            var assignmentCreation = new c.PropertyAssignmentCreation();
-                            assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCode));
-                            var sampleTypeCreation = new c.SampleTypeCreation();
+                            var assignmentCreation = new dtos.PropertyAssignmentCreation();
+                            assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+                            var sampleTypeCreation = new dtos.SampleTypeCreation();
                             sampleTypeCreation.setCode(sampleTypeCode);
                             sampleTypeCreation.setPropertyAssignments([ assignmentCreation ]);
                             return facade.createSampleTypes([ sampleTypeCreation ]).then(function(results) {
-                                var creation = new c.SampleCreation();
-                                creation.setTypeId(new c.EntityTypePermId(sampleTypeCode));
+                                var creation = new dtos.SampleCreation();
+                                creation.setTypeId(new dtos.EntityTypePermId(sampleTypeCode));
                                 creation.setCode(code);
-                                creation.setSpaceId(new c.SpacePermId("TEST"));
+                                creation.setSpaceId(new dtos.SpacePermId("TEST"));
                                 creation.setProperty(propertyTypeCode, ["20130412140147735-20", "20130424134657597-433"]);
                                 return facade.createSamples([ creation ]);
                             });
@@ -512,30 +512,30 @@ define(
                 });
 
                 QUnit.test("createSamples() with multi-value property of type CONTROLLEDVOCABULARY", function(assert) {
-                    var c = new common(assert, openbis);
+                    var c = new common(assert, dtos);
                     var propertyTypeCode = c.generateId("PROPERTY_TYPE");
                     var sampleTypeCode = c.generateId("SAMPLE_TYPE");
                     var code = c.generateId("SAMPLE");
 
                     var fCreate = function(facade) {
-                        var propertyTypeCreation = new c.PropertyTypeCreation();
+                        var propertyTypeCreation = new dtos.PropertyTypeCreation();
                         propertyTypeCreation.setCode(propertyTypeCode);
                         propertyTypeCreation.setDescription("hello");
-                        propertyTypeCreation.setDataType(c.DataType.CONTROLLEDVOCABULARY);
+                        propertyTypeCreation.setDataType(dtos.DataType.CONTROLLEDVOCABULARY);
                         propertyTypeCreation.setLabel("Test Property Type");
                         propertyTypeCreation.setMultiValue(true);
-                        propertyTypeCreation.setVocabularyId(new c.VocabularyPermId("ANTIBODY.HOST"));
+                        propertyTypeCreation.setVocabularyId(new dtos.VocabularyPermId("ANTIBODY.HOST"));
                         return facade.createPropertyTypes([ propertyTypeCreation ]).then(function(results) {
-                            var assignmentCreation = new c.PropertyAssignmentCreation();
-                            assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCode));
-                            var sampleTypeCreation = new c.SampleTypeCreation();
+                            var assignmentCreation = new dtos.PropertyAssignmentCreation();
+                            assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+                            var sampleTypeCreation = new dtos.SampleTypeCreation();
                             sampleTypeCreation.setCode(sampleTypeCode);
                             sampleTypeCreation.setPropertyAssignments([ assignmentCreation ]);
                             return facade.createSampleTypes([ sampleTypeCreation ]).then(function(results) {
-                                var creation = new c.SampleCreation();
-                                creation.setTypeId(new c.EntityTypePermId(sampleTypeCode));
+                                var creation = new dtos.SampleCreation();
+                                creation.setTypeId(new dtos.EntityTypePermId(sampleTypeCode));
                                 creation.setCode(code);
-                                creation.setSpaceId(new c.SpacePermId("TEST"));
+                                creation.setSpaceId(new dtos.SpacePermId("TEST"));
                                 creation.setProperty(propertyTypeCode, ["RAT", "MOUSE"]);
                                 return facade.createSamples([ creation ]);
                             });
@@ -552,21 +552,21 @@ define(
                 });
 				
 				QUnit.test("createSampleTypes()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("SAMPLE_TYPE");
 
 					var fCreate = function(facade) {
-						var assignmentCreation = new c.PropertyAssignmentCreation();
+						var assignmentCreation = new dtos.PropertyAssignmentCreation();
 						assignmentCreation.setSection("test section");
 						assignmentCreation.setOrdinal(10);
-						assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId("DESCRIPTION"));
-						assignmentCreation.setPluginId(new c.PluginPermId("Diff_time"));
+						assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId("DESCRIPTION"));
+						assignmentCreation.setPluginId(new dtos.PluginPermId("Diff_time"));
 						assignmentCreation.setMandatory(true);
 						assignmentCreation.setInitialValueForExistingEntities("initial value");
 						assignmentCreation.setShowInEditView(true);
 						assignmentCreation.setShowRawValueInForms(true);
 
-						var creation = new c.SampleTypeCreation();
+						var creation = new dtos.SampleTypeCreation();
 						creation.setCode(code);
 						creation.setDescription("a new description");
 						creation.setAutoGeneratedCode(true);
@@ -576,7 +576,7 @@ define(
 						creation.setShowContainer(true);
 						creation.setShowParents(true);
 						creation.setShowParentMetadata(true);
-						creation.setValidationPluginId(new c.PluginPermId("Has_Parents"));
+						creation.setValidationPluginId(new dtos.PluginPermId("Has_Parents"));
 						creation.setPropertyAssignments([ assignmentCreation ]);
 						creation.setMetaData({"sample_type_key":"type_value"});
 
@@ -615,30 +615,30 @@ define(
 				});
 
 				QUnit.test("createDataSets() link data set via DSS", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var emdsId = null;
 
 					var fCreate = function(facade) {
 						return c.createExperiment(facade).then(function(experimentPermId) {
 							return c.createFileExternalDms(facade).then(function(emdsPermId) {
 								emdsId = emdsPermId;
-								var creation = new c.FullDataSetCreation();
-								var dataSet = new c.DataSetCreation();
+								var creation = new dtos.FullDataSetCreation();
+								var dataSet = new dtos.DataSetCreation();
 								dataSet.setCode(c.generateId("DATA_SET"));
-								dataSet.setTypeId(new c.EntityTypePermId("LINK_TYPE"));
+								dataSet.setTypeId(new dtos.EntityTypePermId("LINK_TYPE"));
 								dataSet.setExperimentId(experimentPermId);
-								dataSet.setDataStoreId(new c.DataStorePermId("DSS1"));
-								var linkedData = new c.LinkedDataCreation();
-								var cc = new c.ContentCopyCreation();
+								dataSet.setDataStoreId(new dtos.DataStorePermId("DSS1"));
+								var linkedData = new dtos.LinkedDataCreation();
+								var cc = new dtos.ContentCopyCreation();
 								cc.setExternalDmsId(emdsPermId);
 								cc.setPath("my/path");
 								linkedData.setContentCopies([ cc ]);
 								dataSet.setLinkedData(linkedData);
 								creation.setMetadataCreation(dataSet);
-								var f1 = new c.DataSetFileCreation();
+								var f1 = new dtos.DataSetFileCreation();
 								f1.setDirectory(true);
 								f1.setPath("root/folder");
-								var f2 = new c.DataSetFileCreation();
+								var f2 = new dtos.DataSetFileCreation();
 								f2.setDirectory(false);
 								f2.setPath("root/my-file-in.txt");
 								f2.setFileLength(42);
@@ -659,7 +659,7 @@ define(
 						var dfd = $.Deferred()
 						var dataSetCode = dataSet.getCode();
 						c.waitUntilIndexed(facade, dataSetCode, 10000).then(function() {
-							var criteria = new c.DataSetFileSearchCriteria();
+							var criteria = new dtos.DataSetFileSearchCriteria();
 							criteria.withDataSet().withCode().thatEquals(dataSet.getCode());
 							facade.getDataStoreFacade("DSS1").searchFiles(criteria, c.createDataSetFileFetchOptions()).then(function(result) {
 								var files = result.getObjects();
@@ -690,30 +690,30 @@ define(
 				});
 
 				QUnit.test("createDataSet() with property of type SAMPLE", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var propertyTypeCode = c.generateId("PROPERTY_TYPE");
 					var dataSetTypeCode = c.generateId("DATA_SET_TYPE");
 					var code = c.generateId("DATA_SET");
 					
 					var fCreate = function(facade) {
-						var propertyTypeCreation = new c.PropertyTypeCreation();
+						var propertyTypeCreation = new dtos.PropertyTypeCreation();
 						propertyTypeCreation.setCode(propertyTypeCode);
 						propertyTypeCreation.setDescription("hello");
-						propertyTypeCreation.setDataType(c.DataType.SAMPLE);
+						propertyTypeCreation.setDataType(dtos.DataType.SAMPLE);
 						propertyTypeCreation.setLabel("Test Property Type");
 						return facade.createPropertyTypes([ propertyTypeCreation ]).then(function(results) {
-							var assignmentCreation = new c.PropertyAssignmentCreation();
-							assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCode));
-							var dataSetTypeCreation = new c.DataSetTypeCreation();
+							var assignmentCreation = new dtos.PropertyAssignmentCreation();
+							assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+							var dataSetTypeCreation = new dtos.DataSetTypeCreation();
 							dataSetTypeCreation.setCode(dataSetTypeCode);
 							dataSetTypeCreation.setPropertyAssignments([ assignmentCreation ]);
 							return facade.createDataSetTypes([ dataSetTypeCreation ]).then(function(results) {
-								var creation = new c.DataSetCreation();
-								creation.setTypeId(new c.EntityTypePermId(dataSetTypeCode));
+								var creation = new dtos.DataSetCreation();
+								creation.setTypeId(new dtos.EntityTypePermId(dataSetTypeCode));
 								creation.setCode(code);
-								creation.setDataSetKind(c.DataSetKind.CONTAINER);
-								creation.setDataStoreId(new c.DataStorePermId("DSS1"));
-								creation.setExperimentId(new c.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
+								creation.setDataSetKind(dtos.DataSetKind.CONTAINER);
+								creation.setDataStoreId(new dtos.DataStorePermId("DSS1"));
+								creation.setExperimentId(new dtos.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
 								creation.setProperty(propertyTypeCode, "20130412140147735-20");
 								creation.setMetaData({"dataset_key":"dataset_value"});
 								return facade.createDataSets([ creation ]);
@@ -736,31 +736,31 @@ define(
 				});
 
 				QUnit.test("createDataSet() with multi-value property of type SAMPLE", function(assert) {
-                    var c = new common(assert, openbis);
+                    var c = new common(assert, dtos);
                     var propertyTypeCode = c.generateId("PROPERTY_TYPE");
                     var dataSetTypeCode = c.generateId("DATA_SET_TYPE");
                     var code = c.generateId("DATA_SET");
 
                     var fCreate = function(facade) {
-                        var propertyTypeCreation = new c.PropertyTypeCreation();
+                        var propertyTypeCreation = new dtos.PropertyTypeCreation();
                         propertyTypeCreation.setCode(propertyTypeCode);
                         propertyTypeCreation.setDescription("hello");
-                        propertyTypeCreation.setDataType(c.DataType.SAMPLE);
+                        propertyTypeCreation.setDataType(dtos.DataType.SAMPLE);
                         propertyTypeCreation.setLabel("Test Property Type");
                         propertyTypeCreation.setMultiValue(true);
                         return facade.createPropertyTypes([ propertyTypeCreation ]).then(function(results) {
-                            var assignmentCreation = new c.PropertyAssignmentCreation();
-                            assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCode));
-                            var dataSetTypeCreation = new c.DataSetTypeCreation();
+                            var assignmentCreation = new dtos.PropertyAssignmentCreation();
+                            assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+                            var dataSetTypeCreation = new dtos.DataSetTypeCreation();
                             dataSetTypeCreation.setCode(dataSetTypeCode);
                             dataSetTypeCreation.setPropertyAssignments([ assignmentCreation ]);
                             return facade.createDataSetTypes([ dataSetTypeCreation ]).then(function(results) {
-                                var creation = new c.DataSetCreation();
-                                creation.setTypeId(new c.EntityTypePermId(dataSetTypeCode));
+                                var creation = new dtos.DataSetCreation();
+                                creation.setTypeId(new dtos.EntityTypePermId(dataSetTypeCode));
                                 creation.setCode(code);
-                                creation.setDataSetKind(c.DataSetKind.CONTAINER);
-                                creation.setDataStoreId(new c.DataStorePermId("DSS1"));
-                                creation.setExperimentId(new c.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
+                                creation.setDataSetKind(dtos.DataSetKind.CONTAINER);
+                                creation.setDataStoreId(new dtos.DataStorePermId("DSS1"));
+                                creation.setExperimentId(new dtos.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
                                 creation.setProperty(propertyTypeCode, ["20130412140147735-20", "20130424134657597-433"]);
                                 creation.setMetaData({"dataset_key":"dataset_value"});
                                 return facade.createDataSets([ creation ]);
@@ -785,32 +785,32 @@ define(
                 });
 
                 QUnit.test("createDataSet() with multi-value property of type CONTROLLEDVOCABULARY", function(assert) {
-                    var c = new common(assert, openbis);
+                    var c = new common(assert, dtos);
                     var propertyTypeCode = c.generateId("PROPERTY_TYPE");
                     var dataSetTypeCode = c.generateId("DATA_SET_TYPE");
                     var code = c.generateId("DATA_SET");
 
                     var fCreate = function(facade) {
-                        var propertyTypeCreation = new c.PropertyTypeCreation();
+                        var propertyTypeCreation = new dtos.PropertyTypeCreation();
                         propertyTypeCreation.setCode(propertyTypeCode);
                         propertyTypeCreation.setDescription("hello");
-                        propertyTypeCreation.setDataType(c.DataType.CONTROLLEDVOCABULARY);
+                        propertyTypeCreation.setDataType(dtos.DataType.CONTROLLEDVOCABULARY);
                         propertyTypeCreation.setLabel("Test Property Type");
                         propertyTypeCreation.setMultiValue(true);
-                        propertyTypeCreation.setVocabularyId(new c.VocabularyPermId("ANTIBODY.HOST"));
+                        propertyTypeCreation.setVocabularyId(new dtos.VocabularyPermId("ANTIBODY.HOST"));
                         return facade.createPropertyTypes([ propertyTypeCreation ]).then(function(results) {
-                            var assignmentCreation = new c.PropertyAssignmentCreation();
-                            assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCode));
-                            var dataSetTypeCreation = new c.DataSetTypeCreation();
+                            var assignmentCreation = new dtos.PropertyAssignmentCreation();
+                            assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+                            var dataSetTypeCreation = new dtos.DataSetTypeCreation();
                             dataSetTypeCreation.setCode(dataSetTypeCode);
                             dataSetTypeCreation.setPropertyAssignments([ assignmentCreation ]);
                             return facade.createDataSetTypes([ dataSetTypeCreation ]).then(function(results) {
-                                var creation = new c.DataSetCreation();
-                                creation.setTypeId(new c.EntityTypePermId(dataSetTypeCode));
+                                var creation = new dtos.DataSetCreation();
+                                creation.setTypeId(new dtos.EntityTypePermId(dataSetTypeCode));
                                 creation.setCode(code);
-                                creation.setDataSetKind(c.DataSetKind.CONTAINER);
-                                creation.setDataStoreId(new c.DataStorePermId("DSS1"));
-                                creation.setExperimentId(new c.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
+                                creation.setDataSetKind(dtos.DataSetKind.CONTAINER);
+                                creation.setDataStoreId(new dtos.DataStorePermId("DSS1"));
+                                creation.setExperimentId(new dtos.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
                                 creation.setProperty(propertyTypeCode, ["RAT", "MOUSE"]);
                                 creation.setMetaData({"dataset_key":"dataset_value"});
                                 return facade.createDataSets([ creation ]);
@@ -830,27 +830,27 @@ define(
                 });
 				
 				QUnit.test("createDataSetTypes()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("DATA_SET_TYPE");
 
 					var fCreate = function(facade) {
-						var assignmentCreation = new c.PropertyAssignmentCreation();
+						var assignmentCreation = new dtos.PropertyAssignmentCreation();
 						assignmentCreation.setSection("test section");
 						assignmentCreation.setOrdinal(10);
-						assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId("DESCRIPTION"));
-						assignmentCreation.setPluginId(new c.PluginPermId("Diff_time"));
+						assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId("DESCRIPTION"));
+						assignmentCreation.setPluginId(new dtos.PluginPermId("Diff_time"));
 						assignmentCreation.setMandatory(true);
 						assignmentCreation.setInitialValueForExistingEntities("initial value");
 						assignmentCreation.setShowInEditView(true);
 						assignmentCreation.setShowRawValueInForms(true);
 
-						var creation = new c.DataSetTypeCreation();
+						var creation = new dtos.DataSetTypeCreation();
 						creation.setCode(code);
 						creation.setDescription("a new description");
 						creation.setMainDataSetPattern(".*\\.jpg");
 						creation.setMainDataSetPath("original/images/");
 						creation.setDisallowDeletion(true);
-						creation.setValidationPluginId(new c.PluginPermId("Has_Parents"));
+						creation.setValidationPluginId(new dtos.PluginPermId("Has_Parents"));
 						creation.setPropertyAssignments([ assignmentCreation ]);
 						creation.setMetaData({"dataset_type_key":"dataset_type_value"});
 
@@ -885,12 +885,12 @@ define(
 				});
 
 				QUnit.test("createMaterials()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("MATERIAL");
 
 					var fCreate = function(facade) {
-						var materialCreation = new c.MaterialCreation();
-						materialCreation.setTypeId(new c.EntityTypePermId("COMPOUND"));
+						var materialCreation = new dtos.MaterialCreation();
+						materialCreation.setTypeId(new dtos.EntityTypePermId("COMPOUND"));
 						materialCreation.setCode(code);
 						materialCreation.setProperty("DESCRIPTION", "Metal");
 						return facade.createMaterials([ materialCreation ]);
@@ -907,24 +907,24 @@ define(
 				});
 
 				QUnit.test("createMaterialTypes()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("MATERIAL_TYPE");
 
 					var fCreate = function(facade) {
-						var assignmentCreation = new c.PropertyAssignmentCreation();
+						var assignmentCreation = new dtos.PropertyAssignmentCreation();
 						assignmentCreation.setSection("test section");
 						assignmentCreation.setOrdinal(10);
-						assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId("DESCRIPTION"));
-						assignmentCreation.setPluginId(new c.PluginPermId("Diff_time"));
+						assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId("DESCRIPTION"));
+						assignmentCreation.setPluginId(new dtos.PluginPermId("Diff_time"));
 						assignmentCreation.setMandatory(true);
 						assignmentCreation.setInitialValueForExistingEntities("initial value");
 						assignmentCreation.setShowInEditView(true);
 						assignmentCreation.setShowRawValueInForms(true);
 
-						var creation = new c.MaterialTypeCreation();
+						var creation = new dtos.MaterialTypeCreation();
 						creation.setCode(code);
 						creation.setDescription("a new description");
-						creation.setValidationPluginId(new c.PluginPermId("Has_Parents"));
+						creation.setValidationPluginId(new dtos.PluginPermId("Has_Parents"));
 						creation.setPropertyAssignments([ assignmentCreation ]);
 
 						return facade.createMaterialTypes([ creation ]);
@@ -952,15 +952,15 @@ define(
 				});
 
 				QUnit.test("createPropertyTypes()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("PROPERTY_TYPE");
 					var metaData = {"greetings" : "hello test"};
 
 					var fCreate = function(facade) {
-						var creation = new c.PropertyTypeCreation();
+						var creation = new dtos.PropertyTypeCreation();
 						creation.setCode(code);
 						creation.setDescription("hello");
-						creation.setDataType(c.DataType.INTEGER);
+						creation.setDataType(dtos.DataType.INTEGER);
 						creation.setLabel("Test Property Type");
 						creation.setMetaData(metaData);
 						return facade.createPropertyTypes([ creation ]);
@@ -971,7 +971,7 @@ define(
 						c.assertEqual(type.getPermId().getPermId(), code, "Type perm id");
 						c.assertEqual(type.getLabel(), "Test Property Type", "Label");
 						c.assertEqual(type.getDescription(), "hello", "Description");
-						c.assertEqual(type.getDataType(), c.DataType.INTEGER, "Data type");
+						c.assertEqual(type.getDataType(), dtos.DataType.INTEGER, "Data type");
 						c.assertEqual(type.getMetaData().toString(), metaData, "Meta data");
 						
 					}
@@ -980,18 +980,18 @@ define(
 				});
 
 				QUnit.test("createPropertyType() with data type SAMPLE", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("PROPERTY_TYPE");
 					var metaData = {"greetings" : "hello test"};
 					
 					var fCreate = function(facade) {
-						var creation = new c.PropertyTypeCreation();
+						var creation = new dtos.PropertyTypeCreation();
 						creation.setCode(code);
 						creation.setDescription("hello");
-						creation.setDataType(c.DataType.SAMPLE);
+						creation.setDataType(dtos.DataType.SAMPLE);
 						creation.setLabel("Test Property Type");
 						creation.setMetaData(metaData);
-						creation.setSampleTypeId(new c.EntityTypePermId("UNKNOWN", "SAMPLE"));
+						creation.setSampleTypeId(new dtos.EntityTypePermId("UNKNOWN", "SAMPLE"));
 						return facade.createPropertyTypes([ creation ]);
 					}
 					
@@ -1000,7 +1000,7 @@ define(
 						c.assertEqual(type.getPermId().getPermId(), code, "Type perm id");
 						c.assertEqual(type.getLabel(), "Test Property Type", "Label");
 						c.assertEqual(type.getDescription(), "hello", "Description");
-						c.assertEqual(type.getDataType(), c.DataType.SAMPLE, "Data type");
+						c.assertEqual(type.getDataType(), dtos.DataType.SAMPLE, "Data type");
 						c.assertEqual(type.getMetaData().toString(), metaData, "Meta data");
 						c.assertEqual(type.getSampleType().toString(), "UNKNOWN", "Sample type");
 					}
@@ -1009,14 +1009,14 @@ define(
 				});
 				
 				QUnit.test("createPlugins()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var name = c.generateId("PLUGIN");
 
 					var fCreate = function(facade) {
-						var creation = new c.PluginCreation();
+						var creation = new dtos.PluginCreation();
 						creation.setName(name);
 						creation.setDescription("hello");
-						creation.setPluginType(c.PluginType.ENTITY_VALIDATION);
+						creation.setPluginType(dtos.PluginType.ENTITY_VALIDATION);
 						creation.setScript("def a():\n  pass");
 						return facade.createPlugins([ creation ]);
 					}
@@ -1025,8 +1025,8 @@ define(
 						c.assertEqual(plugin.getName(), name, "Name");
 						c.assertEqual(plugin.getPermId().getPermId(), name, "Perm id");
 						c.assertEqual(plugin.getDescription(), "hello", "Description");
-						c.assertEqual(plugin.getPluginKind(), c.PluginKind.JYTHON, "Plugin kind");
-						c.assertEqual(plugin.getPluginType(), c.PluginType.ENTITY_VALIDATION, "Plugin type");
+						c.assertEqual(plugin.getPluginKind(), dtos.PluginKind.JYTHON, "Plugin kind");
+						c.assertEqual(plugin.getPluginType(), dtos.PluginType.ENTITY_VALIDATION, "Plugin type");
 						c.assertEqual(plugin.getScript(), "def a():\n  pass", "Script");
 						c.assertEqual(plugin.isAvailable(), true, "Available?");
 					}
@@ -1035,17 +1035,17 @@ define(
 				});
 
 				QUnit.test("createVocabularies()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("VOCABULARY");
 
 					var fCreate = function(facade) {
-						var vocabularyCreation = new c.VocabularyCreation();
+						var vocabularyCreation = new dtos.VocabularyCreation();
 						vocabularyCreation.setCode(code);
 						vocabularyCreation.setDescription("test description");
 						vocabularyCreation.setManagedInternally(false);
 						vocabularyCreation.setChosenFromList(true);
 						vocabularyCreation.setUrlTemplate("https://www.ethz.ch");
-						var termCreation = new c.VocabularyTermCreation();
+						var termCreation = new dtos.VocabularyTermCreation();
 						termCreation.setCode("alpha");
 						vocabularyCreation.setTerms([ termCreation ]);
 						return facade.createVocabularies([ vocabularyCreation ]);
@@ -1063,17 +1063,17 @@ define(
 				});
 
 				QUnit.test("createVocabularyTerms()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("VOCABULARY_TERM");
 
 					var fCreate = function(facade) {
-						var termCreation = new c.VocabularyTermCreation();
-						termCreation.setVocabularyId(new c.VocabularyPermId("TEST-VOCABULARY"));
+						var termCreation = new dtos.VocabularyTermCreation();
+						termCreation.setVocabularyId(new dtos.VocabularyPermId("TEST-VOCABULARY"));
 						termCreation.setCode(code);
 						termCreation.setLabel("test label");
 						termCreation.setDescription("test description");
 						termCreation.setOfficial(true);
-						termCreation.setPreviousTermId(new c.VocabularyTermPermId("TEST-TERM-1", "TEST-VOCABULARY"))
+						termCreation.setPreviousTermId(new dtos.VocabularyTermPermId("TEST-TERM-1", "TEST-VOCABULARY"))
 						return facade.createVocabularyTerms([ termCreation ]);
 					}
 
@@ -1090,14 +1090,14 @@ define(
 				});
 
 				QUnit.test("createExternalDataManagementSystem()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("EDMS");
 
 					var fCreate = function(facade) {
-						var edmsCreation = new c.ExternalDmsCreation();
+						var edmsCreation = new dtos.ExternalDmsCreation();
 						edmsCreation.setCode(code);
 						edmsCreation.setLabel("Test EDMS");
-						edmsCreation.setAddressType(c.ExternalDmsAddressType.FILE_SYSTEM);
+						edmsCreation.setAddressType(dtos.ExternalDmsAddressType.FILE_SYSTEM);
 						edmsCreation.setAddress("host:my/path")
 						return facade.createExternalDms([ edmsCreation ]);
 					}
@@ -1115,12 +1115,12 @@ define(
 				});
 
 				QUnit.test("createTags()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("TAG");
 					var description = "Description of " + code;
 
 					var fCreate = function(facade) {
-						var tagCreation = new c.TagCreation();
+						var tagCreation = new dtos.TagCreation();
 						tagCreation.setCode(code);
 						tagCreation.setDescription(description);
 						return facade.createTags([ tagCreation ]);
@@ -1135,15 +1135,15 @@ define(
 				});
 
 				QUnit.test("createAuthorizationGroups()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var code = c.generateId("AUTHORIZATION_GROUP");
 					var description = "Description of " + code;
 
 					var fCreate = function(facade) {
-						var creation = new c.AuthorizationGroupCreation();
+						var creation = new dtos.AuthorizationGroupCreation();
 						creation.setCode(code);
 						creation.setDescription(description);
-						creation.setUserIds([ new c.PersonPermId("power_user") ]);
+						creation.setUserIds([ new dtos.PersonPermId("power_user") ]);
 						return facade.createAuthorizationGroups([ creation ]);
 					}
 
@@ -1161,13 +1161,13 @@ define(
 				});
 
 				QUnit.test("createRoleAssignments() for space user", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 
 					var fCreate = function(facade) {
 						return c.createSpace(facade).then(function(spaceId) {
-							var creation = new c.RoleAssignmentCreation();
-							creation.setRole(c.Role.POWER_USER);
-							creation.setUserId(new c.PersonPermId("power_user"));
+							var creation = new dtos.RoleAssignmentCreation();
+							creation.setRole(dtos.Role.POWER_USER);
+							creation.setUserId(new dtos.PersonPermId("power_user"));
 							creation.setSpaceId(spaceId);
 							return facade.createRoleAssignments([ creation ]);
 						});
@@ -1175,8 +1175,8 @@ define(
 
 					var fCheck = function(roleAssignment) {
 						c.assertEqual(roleAssignment.getUser().getUserId(), "power_user", "User");
-						c.assertEqual(roleAssignment.getRole(), c.Role.POWER_USER, "Role");
-						c.assertEqual(roleAssignment.getRoleLevel(), c.RoleLevel.SPACE, "Role level");
+						c.assertEqual(roleAssignment.getRole(), dtos.Role.POWER_USER, "Role");
+						c.assertEqual(roleAssignment.getRoleLevel(), dtos.RoleLevel.SPACE, "Role level");
 						c.assertEqual(roleAssignment.getRegistrator().getUserId(), "openbis_test_js", "Registrator");
 					}
 
@@ -1184,13 +1184,13 @@ define(
 				});
 
 				QUnit.test("createPersons()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var userId = c.generateId("user");
 
 					var fCreate = function(facade) {
-						var personCreation = new c.PersonCreation();
+						var personCreation = new dtos.PersonCreation();
 						personCreation.setUserId(userId);
-						personCreation.setSpaceId(new c.SpacePermId("TEST"))
+						personCreation.setSpaceId(new dtos.SpacePermId("TEST"))
 						return facade.createPersons([ personCreation ]);
 					}
 
@@ -1205,7 +1205,7 @@ define(
 				});
 
 				var createSemanticAnnotationCreation = function(c) {
-					var creation = new c.SemanticAnnotationCreation();
+					var creation = new dtos.SemanticAnnotationCreation();
 					creation.setPredicateOntologyId("jsPredicateOntologyId");
 					creation.setPredicateOntologyVersion("jsPredicateOntologyVersion");
 					creation.setPredicateAccessionId("jsPredicateAccessionId");
@@ -1225,11 +1225,11 @@ define(
 				}
 
 				QUnit.test("createSemanticAnnotations() with entity type id", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 
 					var fCreate = function(facade) {
 						var creation = createSemanticAnnotationCreation(c);
-						creation.setEntityTypeId(new c.EntityTypePermId("UNKNOWN", "SAMPLE"));
+						creation.setEntityTypeId(new dtos.EntityTypePermId("UNKNOWN", "SAMPLE"));
 						return facade.createSemanticAnnotations([ creation ]);
 					}
 
@@ -1242,11 +1242,11 @@ define(
 				});
 
 				QUnit.test("createSemanticAnnotations() with property type id", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 
 					var fCreate = function(facade) {
 						var creation = createSemanticAnnotationCreation(c);
-						creation.setPropertyTypeId(new c.PropertyTypePermId("CONCENTRATION"));
+						creation.setPropertyTypeId(new dtos.PropertyTypePermId("CONCENTRATION"));
 						return facade.createSemanticAnnotations([ creation ]);
 					}
 
@@ -1259,11 +1259,11 @@ define(
 				});
 
 				QUnit.test("createSemanticAnnotations() with property assignment id", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 
 					var fCreate = function(facade) {
 						var creation = createSemanticAnnotationCreation(c);
-						creation.setPropertyAssignmentId(new c.PropertyAssignmentPermId(new c.EntityTypePermId("ILLUMINA_FLOW_CELL", "SAMPLE"), new c.PropertyTypePermId("RUNNINGTIME")));
+						creation.setPropertyAssignmentId(new dtos.PropertyAssignmentPermId(new dtos.EntityTypePermId("ILLUMINA_FLOW_CELL", "SAMPLE"), new dtos.PropertyTypePermId("RUNNINGTIME")));
 						return facade.createSemanticAnnotations([ creation ]);
 					}
 
@@ -1281,7 +1281,7 @@ define(
 						.test(
 								"createUploadedDataSet()",
 								function(assert) {
-									var c = new common(assert, openbis);
+									var c = new common(assert, dtos);
 
 									var fCreate = function(facade) {
 
@@ -1307,12 +1307,12 @@ define(
 												data : formData
 											}).then(function() {
 												return c.createExperiment(facade).then(function(experimentPermId) {
-													var creation = new c.UploadedDataSetCreation();
+													var creation = new dtos.UploadedDataSetCreation();
 													creation.setUploadId(upload.getId());
-													creation.setTypeId(new c.EntityTypePermId(upload.getDataSetType()));
+													creation.setTypeId(new dtos.EntityTypePermId(upload.getDataSetType()));
 													creation.setExperimentId(experimentPermId);
 													creation.setProperty("DESCRIPTION", "test description");
-													creation.setParentIds([ new c.DataSetPermId("20130424111751432-431") ]);
+													creation.setParentIds([ new dtos.DataSetPermId("20130424111751432-431") ]);
 													return dataStoreFacade.createUploadedDataSet(creation).then(function(permId) {
 														return [ permId ];
 													})
@@ -1325,7 +1325,7 @@ define(
 										return c.waitUntilIndexed(facade, dataSet.getCode(), 10000).then(function() {
 											var dataStoreFacade = facade.getDataStoreFacade("DSS1");
 
-											var criteria = new c.DataSetFileSearchCriteria();
+											var criteria = new dtos.DataSetFileSearchCriteria();
 											criteria.withDataSet().withCode().thatEquals(dataSet.getCode());
 
 											return dataStoreFacade.searchFiles(criteria, c.createDataSetFileFetchOptions()).then(function(result) {
@@ -1350,13 +1350,13 @@ define(
 								});
 
 				QUnit.test("createQueries()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 
-					var queryCreation = new c.QueryCreation();
+					var queryCreation = new dtos.QueryCreation();
 					queryCreation.setName(c.generateId("query"));
 					queryCreation.setDescription("test description");
-					queryCreation.setDatabaseId(new c.QueryDatabaseName("openbisDB"));
-					queryCreation.setQueryType(c.QueryType.EXPERIMENT);
+					queryCreation.setDatabaseId(new dtos.QueryDatabaseName("openbisDB"));
+					queryCreation.setQueryType(dtos.QueryType.EXPERIMENT);
 					queryCreation.setEntityTypeCodePattern("test pattern");
 					queryCreation.setSql("select code from spaces");
 					queryCreation.setPublic(true);
@@ -1384,10 +1384,10 @@ define(
 				});
 
 				QUnit.test("createPersonalAccessTokens()", function(assert) {
-					var c = new common(assert, openbis);
+					var c = new common(assert, dtos);
 					var now = new Date();
 
-					var patCreation = new c.PersonalAccessTokenCreation();
+					var patCreation = new dtos.PersonalAccessTokenCreation();
 					patCreation.setSessionName(c.generateId("pat"));
 					patCreation.setValidFromDate(now.getTime());
 					patCreation.setValidToDate(new Date(now.getTime() + 24 * 3600 * 1000).getTime());
@@ -1416,7 +1416,11 @@ define(
 			}
 
 			return function() {
-				executeModule("Create tests", openbis);
-				executeModule("Create tests (executeOperations)", openbisExecuteOperations);
+				executeModule("Create tests (RequireJS)", new openbis(), dtos);
+				executeModule("Create tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos);
+				executeModule("Create tests (module UMD)", new window.openbis.openbis(), window.openbis);
+				executeModule("Create tests (module UMD - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis);
+				executeModule("Create tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM);
+				executeModule("Create tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM);
 			}
 		});
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-custom-services.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-custom-services.js
index 4310d76d69547fffdfba6248183919e18344909c..4fa4c65c4f657763d7cf9bb8ca20f5302de2c333 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-custom-services.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-custom-services.js
@@ -1,14 +1,14 @@
 /**
  * Test searching and executing custom AS services.
  */
-define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common' ], function($, _, openbis, openbisExecuteOperations, common) {
-	var executeModule = function(moduleName, openbis) {
+define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], function($, _, openbis, openbisExecuteOperations, common, dtos) {
+	var executeModule = function(moduleName, facade, dtos) {
 		QUnit.module(moduleName);
 
 		var testAction = function(c, fAction, fCheck) {
 			c.start();
 
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				c.ok("Login");
 				return fAction(facade).then(function(result) {
 					c.ok("Got results");
@@ -22,12 +22,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		}
 
 		QUnit.test("searchCustomASServices()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fAction = function(facade) {
-				var criteria = new c.CustomASServiceSearchCriteria();
+				var criteria = new dtos.CustomASServiceSearchCriteria();
 				criteria.withCode().thatStartsWith("simple");
-				return facade.searchCustomASServices(criteria, new c.CustomASServiceFetchOptions());
+				return facade.searchCustomASServices(criteria, new dtos.CustomASServiceFetchOptions());
 			}
 
 			var fCheck = function(facade, result) {
@@ -42,11 +42,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("executeCustomASService()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fAction = function(facade) {
-				var id = new c.CustomASServiceCode("simple-service");
-				var options = new c.CustomASServiceExecutionOptions().withParameter("a", "1").withParameter("space-code", "TEST");
+				var id = new dtos.CustomASServiceCode("simple-service");
+				var options = new dtos.CustomASServiceExecutionOptions().withParameter("a", "1").withParameter("space-code", "TEST");
 				return facade.executeCustomASService(id, options);
 			}
 
@@ -56,7 +56,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 				c.assertEqual(space.getPermId(), "TEST", "PermId");
 				c.assertEqual(space.getCode(), "TEST", "Code");
 				c.assertEqual(space.getDescription(), null, "Description");
-				c.assertDate(space.getRegistrationDate(), "Registration date", 2013, 04, 12, 12, 59);
+				c.assertDate(space.getRegistrationDate(), "Registration date", 2013, 4, 12, 12, 59);
 			}
 
 			testAction(c, fAction, fCheck);
@@ -64,7 +64,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 	}
 
 	return function() {
-		executeModule("Custom AS service tests", openbis);
-		executeModule("Custom AS service tests (executeOperations)", openbisExecuteOperations);
+		executeModule("Custom AS service tests (RequireJS)", new openbis(), dtos);
+		executeModule("Custom AS service tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos);
+		executeModule("Custom AS service tests (module UMD)", new window.openbis.openbis(), window.openbis);
+		executeModule("Custom AS service tests (module UMD - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis);
+		executeModule("Custom AS service tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM);
+		executeModule("Custom AS service tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM);
 	}
 })
\ No newline at end of file
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-delete.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-delete.js
index 10a25ab28e9d9c5181562af7b1b0711472dea411..ba5a9e5d2a81e91bb6471738b569948dabb38de7 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-delete.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-delete.js
@@ -1,20 +1,20 @@
-define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common' ], function($, _, openbis, openbisExecuteOperations, common) {
-	var executeModule = function(moduleName, openbis) {
+define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], function($, _, openbis, openbisExecuteOperations, common, dtos) {
+	var executeModule = function(moduleName, facade, dtos) {
 		QUnit.module(moduleName);
 
 		var testDeleteWithoutTrash = function(c, fCreate, fFind, fDelete) {
 			c.start();
 
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				return fCreate(facade).then(function(permId) {
 					c.assertNotNull(permId, "Entity was created");
 					return fFind(facade, permId).then(function(entity) {
 						c.assertNotNull(entity, "Entity can be found");
-						return facade.searchDeletions(new c.DeletionSearchCriteria(), new c.DeletionFetchOptions()).then(function(beforeDeletions) {
+						return facade.searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()).then(function(beforeDeletions) {
 							c.ok("Got before deletions");
 							return fDelete(facade, permId).then(function() {
 								c.ok("Entity was deleted");
-								return facade.searchDeletions(new c.DeletionSearchCriteria(), new c.DeletionFetchOptions()).then(function(afterDeletions) {
+								return facade.searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()).then(function(afterDeletions) {
 									c.ok("Got after deletions");
 									c.assertEqual(beforeDeletions.getObjects().length, afterDeletions.getObjects().length, "No new deletions found");
 									return fFind(facade, permId).then(function(entityAfterDeletion) {
@@ -35,7 +35,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		var testDeleteWithTrashAndRevert = function(c, fCreate, fFind, fDelete) {
 			c.start();
 
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				return fCreate(facade).then(function(permIdAndMore) {
                     if (permIdAndMore.identifier) {
                         permId = permIdAndMore.permId
@@ -45,14 +45,14 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 					c.assertNotNull(permId, "Entity was created");
 					return fFind(facade, permId).then(function(entity) {
 						c.assertNotNull(entity, "Entity can be found");
-						return facade.searchDeletions(new c.DeletionSearchCriteria(), new c.DeletionFetchOptions()).then(function(beforeDeletions) {
+						return facade.searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()).then(function(beforeDeletions) {
 							c.ok("Got before deletions");
 							return fDelete(facade, permId).then(function(deletionId) {
 								c.ok("Entity was deleted");
 								c.assertNotEqual(deletionId.getTechId(), "", "Deletion tech id not an empty string");
-                                var fo = new c.DeletionFetchOptions();
+                                var fo = new dtos.DeletionFetchOptions();
                                 fo.withDeletedObjects();
-								return facade.searchDeletions(new c.DeletionSearchCriteria(), fo).then(function(afterDeletions) {
+								return facade.searchDeletions(new dtos.DeletionSearchCriteria(), fo).then(function(afterDeletions) {
                                     var objects = afterDeletions.getObjects();
 									c.ok("Got after deletions");
 									c.assertEqual(objects.length, beforeDeletions.getObjects().length + 1, "One new deletion");
@@ -88,21 +88,21 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		var testDeleteWithTrashAndConfirm = function(c, fCreate, fFind, fDelete) {
 			c.start();
 
-			c.createFacadeAndLogin().then(
-					function(facade) {
+			c.login(facade).then(
+					function() {
 						return fCreate(facade).then(
 								function(permId) {
 									c.assertNotNull(permId, "Entity was created");
 									return fFind(facade, permId).then(
 											function(entity) {
 												c.assertNotNull(entity, "Entity can be found");
-												return facade.searchDeletions(new c.DeletionSearchCriteria(), new c.DeletionFetchOptions()).then(
+												return facade.searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()).then(
 														function(deletionsBeforeDeletion) {
 															c.ok("Got before deletions");
 															return fDelete(facade, permId).then(
 																	function(deletionId) {
 																		c.ok("Entity was deleted");
-																		return facade.searchDeletions(new c.DeletionSearchCriteria(), new c.DeletionFetchOptions()).then(
+																		return facade.searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()).then(
 																				function(deletionsAfterDeletion) {
 																					c.ok("Got after deletions");
 																					c.assertEqual(deletionsAfterDeletion.getObjects().length, deletionsBeforeDeletion.getObjects().length + 1,
@@ -118,8 +118,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 																											return fFind(facade, permId).then(
 																													function(entityAfterConfirm) {
 																														c.assertNull(entityAfterConfirm, "Entity is still gone");
-																														return facade.searchDeletions(new c.DeletionSearchCriteria(),
-																																new c.DeletionFetchOptions()).then(
+																														return facade.searchDeletions(new dtos.DeletionSearchCriteria(),
+																																new dtos.DeletionFetchOptions()).then(
 																																function(deletionsAfterConfirm) {
 																																	c.assertEqual(deletionsAfterConfirm.getObjects().length,
 																																			deletionsBeforeDeletion.getObjects().length,
@@ -141,94 +141,94 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		}
 
 		QUnit.test("deleteSpaces()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createSpace, c.findSpace, c.deleteSpace);
 		});
 
 		QUnit.test("deleteProjects()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createProject, c.findProject, c.deleteProject);
 		});
 
 		QUnit.test("deleteExperiments() with revert", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
             testDeleteWithTrashAndRevert(c, function(facade) {
                 return c.createExperiment(facade).then(function(permId) {
-                    var fo = new c.ExperimentFetchOptions();
+                    var fo = new dtos.ExperimentFetchOptions();
                     fo.withType();
                     return facade.getExperiments([permId], fo).then(function (map) {
                         var experiment = map[permId];
                         return {"permId" : permId,
                                 "identifier" : experiment.identifier,
                                 "entityTypeCode" : experiment.type.code,
-                                "entityKind" : c.EntityKind.EXPERIMENT};
+                                "entityKind" : dtos.EntityKind.EXPERIMENT};
                     });
                 });
             }, c.findExperiment, c.deleteExperiment);
 		});
 
 		QUnit.test("deleteExperiments() with confirm", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithTrashAndConfirm(c, c.createExperiment, c.findExperiment, c.deleteExperiment);
 		});
 
 		QUnit.test("deleteSamples() with revert", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
             testDeleteWithTrashAndRevert(c, function(facade) {
                 return c.createSample(facade).then(function(permId) {
-                    var fo = new c.SampleFetchOptions();
+                    var fo = new dtos.SampleFetchOptions();
                     fo.withType();
                     return facade.getSamples([permId], fo).then(function (map) {
                         var sample = map[permId];
                         return {"permId" : permId,
                                 "identifier" : sample.identifier,
                                 "entityTypeCode" : sample.type.code,
-                                "entityKind" : c.EntityKind.SAMPLE};
+                                "entityKind" : dtos.EntityKind.SAMPLE};
                     });
                 });
             }, c.findSample, c.deleteSample);
 		});
 
 		QUnit.test("deleteSamples() with confirm", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithTrashAndConfirm(c, c.createSample, c.findSample, c.deleteSample);
 		});
 
 		QUnit.test("deleteDataSets() with revert", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
             testDeleteWithTrashAndRevert(c, function(facade) {
                 return c.createDataSet(facade).then(function(permId) {
-                    var fo = new c.DataSetFetchOptions();
+                    var fo = new dtos.DataSetFetchOptions();
                     fo.withType();
                     return facade.getDataSets([permId], fo).then(function (map) {
                         var dataSet = map[permId];
                         return {"permId" : permId,
                                 "identifier" : dataSet.code,
                                 "entityTypeCode" : dataSet.type.code,
-                                "entityKind" : c.EntityKind.DATA_SET};
+                                "entityKind" : dtos.EntityKind.DATA_SET};
                     });
                 });
             }, c.findDataSet, c.deleteDataSet);
 		});
 
 		QUnit.test("deleteDataSets() with confirm", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithTrashAndConfirm(c, c.createDataSet, c.findDataSet, c.deleteDataSet);
 		});
 
 		QUnit.test("deleteDataSets() with disallowed type without force flag", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			c.start();
 
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
                 return c.createDataSetType(facade, "DELETION-TEST").then(function(typeId) {
                     c.assertNotNull(typeId, "Data set type created")
                     return c.createDataSet(facade, typeId.getPermId()).then(function(permId) {
                         c.assertNotNull(permId, "Entity was created");
                         return c.deleteDataSet(facade, permId).then(function(deletionId) {
                             c.assertNotNull(deletionId, "Entity was moved to trash");
-                            var update = new c.DataSetTypeUpdate();
+                            var update = new dtos.DataSetTypeUpdate();
                             update.setTypeId(typeId);
                             update.setDisallowDeletion(true);
                             return facade.updateDataSetTypes([update]).then(function() {
@@ -248,25 +248,25 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("deleteDataSets() with disallowed type with force flag", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			c.start();
 
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
                 return c.createDataSetType(facade, "DELETION-TEST").then(function(typeId) {
                     c.assertNotNull(typeId, "Data set type created")
                     return c.createDataSet(facade, typeId.getPermId()).then(function(permId) {
                         c.assertNotNull(permId, "Entity was created");
                         return c.deleteDataSet(facade, permId).then(function(deletionId) {
                             c.assertNotNull(deletionId, "Entity was moved to trash");
-                            var update = new c.DataSetTypeUpdate();
+                            var update = new dtos.DataSetTypeUpdate();
                             update.setTypeId(typeId);
                             update.setDisallowDeletion(true);
                             return facade.updateDataSetTypes([update]).then(function() {
                                 c.ok("Data set type updated")
-                                var operation = new c.ConfirmDeletionsOperation([ deletionId ]);
+                                var operation = new dtos.ConfirmDeletionsOperation([ deletionId ]);
                                 operation.setForceDeletion(true);
-                                var options = new c.SynchronousOperationExecutionOptions();
+                                var options = new dtos.SynchronousOperationExecutionOptions();
                                 return facade.executeOperations([ operation ], options).then(function() {
                                     c.finish();
                                 });
@@ -281,77 +281,77 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("deleteMaterials()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createMaterial, c.findMaterial, c.deleteMaterial);
 		});
 
 		QUnit.test("deletePlugins()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createPlugin, c.findPlugin, c.deletePlugin);
 		});
 
 		QUnit.test("deletePropertyTypes()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createPropertyType, c.findPropertyType, c.deletePropertyType);
 		});
 
 		QUnit.test("deleteVocabularies()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createVocabulary, c.findVocabulary, c.deleteVocabulary);
 		});
 
 		QUnit.test("deleteVocabularyTerms()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createVocabularyTerm, c.findVocabularyTerm, c.deleteVocabularyTerm);
 		});
 
 		QUnit.test("deleteExperimentTypes()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createExperimentType, c.findExperimentType, c.deleteExperimentType);
 		});
 
 		QUnit.test("deleteSampleTypes()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createSampleType, c.findSampleType, c.deleteSampleType);
 		});
 
 		QUnit.test("deleteDataSetTypes()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createDataSetType, c.findDataSetType, c.deleteDataSetType);
 		});
 
 		QUnit.test("deleteMaterialTypes()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createMaterialType, c.findMaterialType, c.deleteMaterialType);
 		});
 
 		QUnit.test("deleteExternalDms()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createExternalDms, c.findExternalDms, c.deleteExternalDms);
 		});
 
 		QUnit.test("replaceVocabularyTerms()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createVocabularyTerm, c.findVocabularyTerm, c.replaceVocabularyTerm);
 		});
 
 		QUnit.test("deleteTags()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createTag, c.findTag, c.deleteTag);
 		});
 
 		QUnit.test("deleteAuthorizationGroups()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createAuthorizationGroup, c.findAuthorizationGroup, c.deleteAuthorizationGroup);
 		});
 
 		QUnit.test("deleteRoleAssignments()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createRoleAssignment, c.findRoleAssignment, c.deleteRoleAssignment);
 		});
 
 		QUnit.test("deleteOperationExecutions()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var findNotDeletedOrDeletePending = function(facade, permId) {
 				return c.findOperationExecution(facade, permId).then(function(execution) {
@@ -367,28 +367,32 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("deleteSemanticAnnotations()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createSemanticAnnotation, c.findSemanticAnnotation, c.deleteSemanticAnnotation);
 		});
 		
 		QUnit.test("deleteQueries()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createQuery, c.findQuery, c.deleteQuery);
 		});
 
 		QUnit.test("deletePersons()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createPerson, c.findPerson, c.deletePerson);
 		});
 
 		QUnit.test("deletePersonalAccessTokens()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			testDeleteWithoutTrash(c, c.createPersonalAccessToken, c.findPersonalAccessToken, c.deletePersonalAccessToken);
 		});
 	}
 
 	return function() {
-		executeModule("Deletion tests", openbis);
-		executeModule("Deletion tests (executeOperations)", openbisExecuteOperations);
+		executeModule("Deletion tests (RequireJS)", new openbis(), dtos);
+		executeModule("Deletion tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos);
+		executeModule("Deletion tests (module UMD)", new window.openbis.openbis(), window.openbis);
+		executeModule("Deletion tests (module UMD - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis);
+		executeModule("Deletion tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM);
+		executeModule("Deletion tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM);
 	}
 });
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-dss-services.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-dss-services.js
index b196b4cb9327cb0fe61890bd3c4027587739db7f..7224704363f579e2ad1d276dacc5cc1fba9b7571 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-dss-services.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-dss-services.js
@@ -1,14 +1,14 @@
 /**
  * Test searching and executing DSS services.
  */
-define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common' ], function($, _, openbis, openbisExecuteOperations, common) {
-	var executeModule = function(moduleName, openbis) {
+define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], function($, _, openbis, openbisExecuteOperations, common, dtos) {
+	var executeModule = function(moduleName, facade, dtos) {
 		QUnit.module(moduleName);
 
 		var testAction = function(c, fAction, fCheck) {
 			c.start();
 
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				c.ok("Login");
 				return fAction(facade).then(function(result) {
 					c.ok("Got results");
@@ -30,7 +30,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		var testActionWhichShouldFail = function(c, fAction, errorMessage) {
 			c.start();
 			
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				c.ok("Login");
 				return fAction(facade).then(function(result) {
 					c.fail("Action supposed to fail");
@@ -44,11 +44,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		}
 		
 		QUnit.test("searchSearchDomainService()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fAction = function(facade) {
-				var criteria = new c.SearchDomainServiceSearchCriteria();
-				var fetchOptions = new c.SearchDomainServiceFetchOptions();
+				var criteria = new dtos.SearchDomainServiceSearchCriteria();
+				var fetchOptions = new dtos.SearchDomainServiceFetchOptions();
 				return facade.searchSearchDomainServices(criteria, fetchOptions);
 			}
 
@@ -68,10 +68,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("executeSearchDomainService()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			
 			var fAction = function(facade) {
-				var options = new c.SearchDomainServiceExecutionOptions();
+				var options = new dtos.SearchDomainServiceExecutionOptions();
 				options.withPreferredSearchDomain("echo-database");
 				options.withSearchString("key").withParameter("key", 
 						JSON.stringify({
@@ -104,13 +104,13 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("searchAggregationService()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fAction = function(facade) {
-				var criteria = new c.AggregationServiceSearchCriteria();
-				var id = new c.DssServicePermId("js-test", new c.DataStorePermId("DSS1"));
+				var criteria = new dtos.AggregationServiceSearchCriteria();
+				var id = new dtos.DssServicePermId("js-test", new dtos.DataStorePermId("DSS1"));
 				criteria.withId().thatEquals(id);
-				var fetchOptions = new c.AggregationServiceFetchOptions();
+				var fetchOptions = new dtos.AggregationServiceFetchOptions();
 				return facade.searchAggregationServices(criteria, fetchOptions);
 			}
 
@@ -127,11 +127,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("executeAggregationService()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			
 			var fAction = function(facade) {
-				var id = new c.DssServicePermId("js-test", new c.DataStorePermId("DSS1"));
-				var options = new c.AggregationServiceExecutionOptions();
+				var id = new dtos.DssServicePermId("js-test", new dtos.DataStorePermId("DSS1"));
+				var options = new dtos.AggregationServiceExecutionOptions();
 				options.withParameter("method", "test");
 				options.withParameter("answer", 42).withParameter("pi", 3.1415926);
 				return facade.executeAggregationService(id, options);
@@ -146,11 +146,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("executeAggregationService() with data store code is null", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			
 			var fAction = function(facade) {
-				var id = new c.DssServicePermId("js-test", new c.DataStorePermId(null));
-				var options = new c.AggregationServiceExecutionOptions();
+				var id = new dtos.DssServicePermId("js-test", new dtos.DataStorePermId(null));
+				var options = new dtos.AggregationServiceExecutionOptions();
 				return facade.executeAggregationService(id, options);
 			}
 			
@@ -158,11 +158,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("executeAggregationService() with data store id is null", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			
 			var fAction = function(facade) {
-				var id = new c.DssServicePermId("js-test", null);
-				var options = new c.AggregationServiceExecutionOptions();
+				var id = new dtos.DssServicePermId("js-test", null);
+				var options = new dtos.AggregationServiceExecutionOptions();
 				return facade.executeAggregationService(id, options);
 			}
 			
@@ -170,11 +170,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("executeAggregationService() with key is null", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			
 			var fAction = function(facade) {
-				var id = new c.DssServicePermId(null, new c.DataStorePermId("DSS1"));
-				var options = new c.AggregationServiceExecutionOptions();
+				var id = new dtos.DssServicePermId(null, new dtos.DataStorePermId("DSS1"));
+				var options = new dtos.AggregationServiceExecutionOptions();
 				return facade.executeAggregationService(id, options);
 			}
 			
@@ -182,13 +182,13 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("searchReportingService()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fAction = function(facade) {
-				var criteria = new c.ReportingServiceSearchCriteria();
-				var id = new c.DssServicePermId("test-reporting-service", new c.DataStorePermId("DSS1"));
+				var criteria = new dtos.ReportingServiceSearchCriteria();
+				var id = new dtos.DssServicePermId("test-reporting-service", new dtos.DataStorePermId("DSS1"));
 				criteria.withId().thatEquals(id);
-				var fetchOptions = new c.ReportingServiceFetchOptions();
+				var fetchOptions = new dtos.ReportingServiceFetchOptions();
 				return facade.searchReportingServices(criteria, fetchOptions);
 			}
 
@@ -205,14 +205,14 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("executeReportingService()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var dataSetCode;
 			
 			var fAction = function(facade) {
 				return $.when(c.createDataSet(facade)).then(function(permId) {
 					dataSetCode = permId.getPermId();
-					var serviceId = new c.DssServicePermId("test-reporting-service", new c.DataStorePermId("DSS1"));
-					var options = new c.ReportingServiceExecutionOptions();
+					var serviceId = new dtos.DssServicePermId("test-reporting-service", new dtos.DataStorePermId("DSS1"));
+					var options = new dtos.ReportingServiceExecutionOptions();
 					options.withDataSets(dataSetCode);
 					return facade.executeReportingService(serviceId, options);
 				});
@@ -227,13 +227,13 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("searchProcessingService()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fAction = function(facade) {
-				var criteria = new c.ProcessingServiceSearchCriteria();
-				var id = new c.DssServicePermId("test-processing-service", new c.DataStorePermId("DSS1"));
+				var criteria = new dtos.ProcessingServiceSearchCriteria();
+				var id = new dtos.DssServicePermId("test-processing-service", new dtos.DataStorePermId("DSS1"));
 				criteria.withId().thatEquals(id);
-				var fetchOptions = new c.ProcessingServiceFetchOptions();
+				var fetchOptions = new dtos.ProcessingServiceFetchOptions();
 				return facade.searchProcessingServices(criteria, fetchOptions);
 			}
 
@@ -250,14 +250,14 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("executeProcessingService()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var dataSetCode;
 			
 			var fAction = function(facade) {
 				return $.when(c.createDataSet(facade)).then(function(permId) {
 					dataSetCode = permId.getPermId();
-					var serviceId = new c.DssServicePermId("test-processing-service", new c.DataStorePermId("DSS1"));
-					var options = new c.ProcessingServiceExecutionOptions();
+					var serviceId = new dtos.DssServicePermId("test-processing-service", new dtos.DataStorePermId("DSS1"));
+					var options = new dtos.ProcessingServiceExecutionOptions();
 					options.withDataSets([dataSetCode]);
 					return facade.executeProcessingService(serviceId, options);
 				});
@@ -277,7 +277,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 	}
 
 	return function() {
-		executeModule("DSS service tests", openbis);
-		executeModule("DSS service tests (executeOperations)", openbisExecuteOperations);
+		executeModule("DSS service tests (RequireJS)", new openbis(), dtos);
+		executeModule("DSS service tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos);
+		executeModule("DSS service tests (module UMD)", new window.openbis.openbis(), window.openbis);
+		executeModule("DSS service tests (module UMD - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis);
+		executeModule("DSS service tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM);
+		executeModule("DSS service tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM);
 	}
 })
\ No newline at end of file
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-dto-roundtrip.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-dto-roundtrip.js
index 0b05401ce279848e89433170eb06677bbb04ce41..974a1d7bf183957ab0c4c6072d29e8eafa1fc5ba 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-dto-roundtrip.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-dto-roundtrip.js
@@ -1,161 +1,252 @@
-define(['jquery', 'underscore', 'openbis', 'test/common'], function($, _, openbis, common) {
-	return function() {
-		QUnit.module("DTO roundtrip test");
-
-		var testAction = function(c, fAction, fCheck) {
-			c.start();
-
-			c.createFacadeAndLogin()
-				.then(function(facade) {
-					c.ok("Login");
-					return fAction(facade);
-				})
-				.then(function(res) {
-					c.ok("Sent data. Checking results...");
-					return fCheck(res);
-				})
-				.then(function() {
-					c.finish();
-				})
-				.fail(function(error) {
-					c.fail(error.message);
-					c.finish();
-				});
-		}
-
-		QUnit.test("dtosRoundtripTest()", function(assert){
-			var c = new common(assert);
-
-			var id = new c.CustomASServiceCode("custom-service-a");
-			var actionFacade;
-
-			// those classes cannot be deserialized if the value is an empty string, must be a null
-			var nullParamRegexes = [/number.*value/i, /.*Operation/, /.*OperationResult/];
-
-			var instantiate = function(proto) {
-				var initWithNull = _.any(nullParamRegexes, function (regex) {
-							return proto.prototype["@type"].match(regex) !== null;
-						});
-				return new proto(initWithNull ? null : "");
-			};
-
-			var fAction = function(facade) {
-				actionFacade = facade;
-
-				return _.chain(
-					c.getDtos()
-				)
-					.map(function(proto) {
+define(["jquery", "underscore", "openbis", "test/common", "test/dtos"], function ($, _, openbis, common, dtos) {
+    var ignored = [
+        "as.dto.common.create.CreateObjectsOperation",
+        "as.dto.common.create.CreateObjectsOperationResult",
+        "as.dto.common.delete.DeleteObjectsOperation",
+        "as.dto.common.delete.DeleteObjectsOperationResult",
+        "as.dto.common.delete.DeleteObjectsWithTrashOperationResult",
+        "as.dto.common.delete.DeleteObjectsWithoutTrashOperationResult",
+        "as.dto.common.fetchoptions.FetchOptions",
+        "as.dto.common.fetchoptions.SortOptions",
+        "as.dto.common.get.GetObjectsOperation",
+        "as.dto.common.get.GetObjectsOperationResult",
+        "as.dto.common.id.ObjectIdentifier",
+        "as.dto.common.search.AbstractCompositeSearchCriteria",
+        "as.dto.common.search.AbstractDateObjectValue",
+        "as.dto.common.search.AbstractDateValue",
+        "as.dto.common.search.AbstractEntitySearchCriteria",
+        "as.dto.common.search.AbstractFieldSearchCriteria",
+        "as.dto.common.search.AbstractNumberValue",
+        "as.dto.common.search.AbstractObjectSearchCriteria",
+        "as.dto.common.search.AbstractSearchCriteria",
+        "as.dto.common.search.AbstractStringValue",
+        "as.dto.common.search.AbstractTimeZoneValue",
+        "as.dto.common.search.AbstractValue",
+        "as.dto.common.search.BooleanFieldSearchCriteria",
+        "as.dto.common.search.CollectionFieldSearchCriteria",
+        "as.dto.common.search.DateFieldSearchCriteria",
+        "as.dto.common.search.EnumFieldSearchCriteria",
+        "as.dto.common.search.NumberFieldSearchCriteria",
+        "as.dto.common.search.SearchObjectsOperation",
+        "as.dto.common.search.SearchObjectsOperationResult",
+        "as.dto.common.search.StringFieldSearchCriteria",
+        "as.dto.common.update.UpdateObjectsOperation",
+        "as.dto.common.update.UpdateObjectsOperationResult",
+        "as.dto.entitytype.search.AbstractEntityTypeSearchCriteria",
+        "as.dto.plugin.evaluate.PluginEvaluationOptions",
+        "as.dto.plugin.evaluate.PluginEvaluationResult",
+        "as.dto.server.ServerInformation",
+        "as.dto.service.execute.AbstractExecutionOptionsWithParameters",
+    ]
+
+    var instantiators = {
+        "as.dto.attachment.id.AttachmentFileName": () => new dtos.AttachmentFileName("test"),
+        "as.dto.query.id.QueryDatabaseName": () => new dtos.QueryDatabaseName("test"),
+        "as.dto.query.id.QueryName": () => new dtos.QueryName("test"),
+        "as.dto.space.id.SpacePermId": () => new dtos.SpacePermId("test"),
+        "as.dto.tag.id.TagCode": () => new dtos.TagCode("test"),
+        "as.dto.vocabulary.id.VocabularyTermPermId": () => new dtos.VocabularyTermPermId("test"),
+    }
+
+    var executeModule = function (moduleName, facade, dtos) {
+        QUnit.module(moduleName)
+
+        var testAction = function (c, fAction, fCheck) {
+            c.start()
+
+            c.login(facade)
+                .then(function () {
+                    c.ok("Login")
+                    return fAction(facade)
+                })
+                .then(function (res) {
+                    c.ok("Sent data. Checking results...")
+                    return fCheck(res)
+                })
+                .then(function () {
+                    c.finish()
+                })
+                .fail(function (error) {
+                    c.fail(error.message)
+                    c.finish()
+                })
+        }
+
+        QUnit.test("dtosRoundtripTest()", function (assert) {
+            var c = new common(assert, dtos)
+
+            var id = new dtos.CustomASServiceCode("custom-service-a")
+            var actionFacade
+
+            var instantiate = function (proto) {
+                var instantiator = instantiators[proto.prototype["@type"]]
+
+                if (instantiator) {
+                    return instantiator(proto)
+                } else {
+                    return new proto()
+                }
+            }
+
+            var fAction = function (facade) {
+                actionFacade = facade
+
+                var dtosArray = Object.entries(dtos)
+                    .map(function (dtoEntry) {
+                        var name = dtoEntry[0]
+                        var proto = dtoEntry[1]
+
+                        if (!_.isString(name) || !name.match(/[A-Z]/)) {
+                            return null
+                        }
+
+                        var type = proto && proto.prototype && proto.prototype["@type"]
+
+                        if (type === null || type === undefined || ignored.includes(type)) {
+                            return null
+                        }
+
+                        return proto
+                    })
+                    .filter(function (proto) {
+                        return proto !== null
+                    })
+
+                return _.chain(dtosArray)
+                    .map(function (proto) {
 						try {
-							return new c.CustomASServiceExecutionOptions()
+							return new dtos.CustomASServiceExecutionOptions()
 								.withParameter("object", instantiate(proto));
 						} catch (error) {
 							c.fail(error.message);
 							c.finish();
 						}
-					})
-					.map(function(options) {
+                    })
+                    .map(function (options) {
 							try {
 								return facade.executeCustomASService(id, options);
 							} catch (error) {
 								c.fail(error.message);
 								c.finish();
 							}
-					})
-					.value();
-			}
-
-			var fCheck = function(promises) {
-				return $.when.apply($, promises).then(function(here_we_get_unknown_number_of_resolved_dtos_so_foo){
-					c.ok("Got results");
-
-					var dtos = Array.prototype.slice.call(arguments);
-					var roundtrips = _.map(dtos, function(dto){
-
-						c.ok("======== Testing " + dto['@type']);
-						c.ok('Rountrip ok.');
-
-						var proto = require(dto['@type'].replace(/\./g, '/'));
-						if (proto) {
-							var subj = instantiate(proto);
-
-							_.chain(_.allKeys(dto))
-							.filter(function(key) {
-								return !key.startsWith("@") && !key.startsWith("freeze") && !key.startsWith("negate") && !key.startsWith("isNegated") && !_.isFunction(dto[key]);
-							})
-							.each(function(key){
-								var val = dto[key];
-								var isSetValue = false;
-
-								if (val != null && _.isFunction(val.getValue)) {
-									val = val.getValue();
-									isSetValue = true;
-								}
-
-								if (val != null && !_.isFunction(val)) {
-									if (isSetValue) {
-										if (_.isFunction(dto[key].setValue) && subj[key] && _.isFunction(subj[key].setValue)) {
-											subj[key].setValue(val);
-											c.ok("FIELD: " + key + " = setValue >" + val + "<")
-										} else {
-											c.ok("Skipping setValue field: " + key);
-										}
-									} else {
-										var regularSetFn = _.find(_.functions(subj), function(fn) {
-											return fn.toLowerCase() === "set" + key.toLowerCase();
-										});
-
-										var otherSetFn = _.find(_.functions(subj), function(fn) {
-											return (fn.toLowerCase() === key.toLowerCase())
-												|| (fn.toLowerCase() === "with" + key.toLowerCase());
-										});
-
-										// prefer regularSetFn function over otherSetFn
-										var setter = regularSetFn || otherSetFn;
-
-										c.ok("Setter: [set/with]" + key);
-
-										if (setter) {
-											subj[setter](val);
-											c.ok("FIELD: " + key + " = >" + val + "<")
-										} else {
-											c.ok("Skipping field " + key + " that has no setter.");
-										}
-									}
-								} else {
-									c.ok("Skipping field " + key + " as it's empty (i.e. complex).");
-								}
-							});
-
-
-							// let's send it back and see if it's acceptable
-							var options = new c.CustomASServiceExecutionOptions().withParameter("object", subj).withParameter("echo", "true");
-							return actionFacade.executeCustomASService(id, options)
-								.then(function(res) {
-									// here dto is what was filled by java service, res is what we reconstructed based on it
-									// deepEqual(actual, expected)
-									c.shallowEqual(JSON.parse(JSON.stringify(res)), JSON.parse(JSON.stringify(dto)), "Checking whether reconstructed " + dto['@type'] + " from Java template has same fields as the one generated and initialized by java.");
-									// assert.propEqual(JSON.parse(JSON.stringify(res)), JSON.parse(JSON.stringify(dto)), "Checking whether reconstructed " + dto['@type'] + " from Java template has same fields as the one generated and initialized by java.");
-								});
-
-						} else {
-							debugger;
-							c.fail('Type ' + dto['@type'] + ' is unknown to the common.');
-
-						}
-					});
-					var applied = $.when.apply($, roundtrips);
-
-					return applied;
-
-				}).fail(function(error) {
-					c.fail(error.message);
-					c.finish();
-				});
-			}
-
-			testAction(c, fAction, fCheck);
-
-		});
-	}
-});
\ No newline at end of file
+                    })
+                    .value()
+            }
+
+            var fCheck = function (promises) {
+                return $.when
+                    .apply($, promises)
+                    .then(function (here_we_get_unknown_number_of_resolved_dtos_so_foo) {
+                        c.ok("Got results")
+
+                        var loadedDtos = Array.prototype.slice.call(arguments)
+                        var roundtrips = _.map(loadedDtos, function (dto) {
+                            c.ok("======== Testing " + dto["@type"])
+                            c.ok("Rountrip ok.")
+
+                            var proto = eval("dtos." + dto["@type"])
+
+                            if (proto) {
+                                var subj = instantiate(proto)
+
+                                _.chain(_.allKeys(dto))
+                                    .filter(function (key) {
+                                        return (
+                                            !key.startsWith("@") &&
+                                            !key.startsWith("freeze") &&
+                                            !key.startsWith("negate") &&
+                                            !key.startsWith("isNegated") &&
+                                            !_.isFunction(dto[key])
+                                        )
+                                    })
+                                    .each(function (key) {
+                                        var val = dto[key]
+                                        var isSetValue = false
+
+                                        if (val != null && _.isFunction(val.getValue)) {
+                                            val = val.getValue()
+                                            isSetValue = true
+                                        }
+
+                                        if (val != null && !_.isFunction(val)) {
+                                            if (isSetValue) {
+                                                if (
+                                                    _.isFunction(dto[key].setValue) &&
+                                                    subj[key] &&
+                                                    _.isFunction(subj[key].setValue)
+                                                ) {
+                                                    subj[key].setValue(val)
+                                                    c.ok("FIELD: " + key + " = setValue >" + val + "<")
+                                                } else {
+                                                    c.ok("Skipping setValue field: " + key)
+                                                }
+                                            } else {
+                                                var regularSetFn = _.find(_.functions(subj), function (fn) {
+                                                    return fn.toLowerCase() === "set" + key.toLowerCase()
+                                                })
+
+                                                var otherSetFn = _.find(_.functions(subj), function (fn) {
+                                                    return (
+                                                        fn.toLowerCase() === key.toLowerCase() ||
+                                                        fn.toLowerCase() === "with" + key.toLowerCase()
+                                                    )
+                                                })
+
+                                                // prefer regularSetFn function over otherSetFn
+                                                var setter = regularSetFn || otherSetFn
+
+                                                c.ok("Setter: [set/with]" + key)
+
+                                                if (setter) {
+                                                    subj[setter](val)
+                                                    c.ok("FIELD: " + key + " = >" + val + "<")
+                                                } else {
+                                                    c.ok("Skipping field " + key + " that has no setter.")
+                                                }
+                                            }
+                                        } else {
+                                            c.ok("Skipping field " + key + " as it's empty (i.e. complex).")
+                                        }
+                                    })
+
+                                // let's send it back and see if it's acceptable
+                                var options = new dtos.CustomASServiceExecutionOptions()
+                                    .withParameter("object", subj)
+                                    .withParameter("echo", "true")
+                                return actionFacade.executeCustomASService(id, options).then(function (res) {
+                                    // here dto is what was filled by java service, res is what we reconstructed based on it
+                                    // deepEqual(actual, expected)
+                                    c.shallowEqual(
+                                        JSON.parse(JSON.stringify(res)),
+                                        JSON.parse(JSON.stringify(dto)),
+                                        "Checking whether reconstructed " +
+                                            dto["@type"] +
+                                            " from Java template has same fields as the one generated and initialized by java."
+                                    )
+                                    // assert.propEqual(JSON.parse(JSON.stringify(res)), JSON.parse(JSON.stringify(dto)), "Checking whether reconstructed " + dto['@type'] + " from Java template has same fields as the one generated and initialized by java.");
+                                })
+                            } else {
+                                debugger
+                                c.fail("Type " + dto["@type"] + " is unknown to the common.")
+                            }
+                        })
+                        var applied = $.when.apply($, roundtrips)
+
+                        return applied
+                    })
+                    .fail(function (error) {
+                        c.fail(error.message)
+                        c.finish()
+                    })
+            }
+
+            testAction(c, fAction, fCheck)
+        })
+    }
+
+    return function () {
+        executeModule("DTO roundtrip test (RequireJS)", new openbis(), dtos)
+        executeModule("DTO roundtrip test (module UMD)", new window.openbis.openbis(), window.openbis)
+        executeModule("DTO roundtrip test (module ESM)", new window.openbisESM.openbis(), window.openbisESM)
+    }
+})
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-evaluate.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-evaluate.js
index 1bcfa0aef0474b05f75f9b40f286035ae5acfae2..e44a3c3f84d2294e874e35b12e603433de83a1a6 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-evaluate.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-evaluate.js
@@ -4,26 +4,27 @@ define([
   "openbis",
   "test/openbis-execute-operations",
   "test/common",
-], function ($, _, openbis, openbisExecuteOperations, common) {
-  var executeModule = function (moduleName, openbis) {
+  "test/dtos"
+], function ($, _, openbis, openbisExecuteOperations, common, dtos) {
+  var executeModule = function (moduleName, facade, dtos) {
     QUnit.module(moduleName);
 
     var testDynamicPropertyPlugin = function (assert, databasePlugin) {
-      var c = new common(assert, openbis);
+      var c = new common(assert, dtos);
       c.start();
 
-      c.createFacadeAndLogin()
-        .then(function (facade) {
-          var creation = new c.PluginCreation();
+      c.login(facade)
+        .then(function () {
+          var creation = new dtos.PluginCreation();
           creation.setName(c.generateId("plugin"));
-          creation.setPluginType(c.PluginType.DYNAMIC_PROPERTY);
+          creation.setPluginType(dtos.PluginType.DYNAMIC_PROPERTY);
           creation.setScript("def calculate():\n  return 'testValue'");
 
           return $.when(
             facade.createPlugins([creation]),
             c.createSample(facade)
           ).then(function (pluginIds, sampleId) {
-            var options = new c.DynamicPropertyPluginEvaluationOptions();
+            var options = new dtos.DynamicPropertyPluginEvaluationOptions();
             if (databasePlugin) {
               options.setPluginId(pluginIds[0]);
             } else {
@@ -48,14 +49,14 @@ define([
     };
 
     var testEntityValidationPlugin = function (assert, databasePlugin) {
-      var c = new common(assert, openbis);
+      var c = new common(assert, dtos);
       c.start();
 
-      c.createFacadeAndLogin()
-        .then(function (facade) {
-          var creation = new c.PluginCreation();
+      c.login(facade)
+        .then(function () {
+          var creation = new dtos.PluginCreation();
           creation.setName(c.generateId("plugin"));
-          creation.setPluginType(c.PluginType.ENTITY_VALIDATION);
+          creation.setPluginType(dtos.PluginType.ENTITY_VALIDATION);
           creation.setScript(
             "def validate(entity, isNew):\n  requestValidation(entity)\n  if isNew:\n    return 'testError'\n  else:\n    return None"
           );
@@ -64,7 +65,7 @@ define([
             facade.createPlugins([creation]),
             c.createSample(facade)
           ).then(function (pluginIds, sampleId) {
-            var options = new c.EntityValidationPluginEvaluationOptions();
+            var options = new dtos.EntityValidationPluginEvaluationOptions();
             if (databasePlugin) {
               options.setPluginId(pluginIds[0]);
             } else {
@@ -128,10 +129,11 @@ define([
   };
 
   return function () {
-    executeModule("Evaluate tests", openbis);
-    executeModule(
-      "Evaluate tests (executeOperations)",
-      openbisExecuteOperations
-    );
+    executeModule("Evaluate tests (RequireJS)", new openbis(), dtos);
+    executeModule("Evaluate tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos);
+    executeModule("Evaluate tests (module UMD)", new window.openbis.openbis(), window.openbis);
+    executeModule("Evaluate tests (module UMD - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis);
+    executeModule("Evaluate tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM);
+    executeModule("Evaluate tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM);
   };
 });
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-execute.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-execute.js
index 9ff9f2b1498e62567756403fc3ca6f0342a0ad30..9cb1e530c719e697a87a66c6909be8c3bd23b49b 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-execute.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-execute.js
@@ -1,20 +1,20 @@
-define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common' ], function($, _, openbis, openbisExecuteOperations, common) {
-	var executeModule = function(moduleName, openbis) {
+define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], function($, _, openbis, openbisExecuteOperations, common, dtos) {
+	var executeModule = function(moduleName, facade, dtos) {
 		QUnit.module(moduleName);
 
 		QUnit.test("executeQuery()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			c.start();
 
-			c.createFacadeAndLogin().then(function(facade) {
-				var creation = new c.QueryCreation();
+			c.login(facade).then(function() {
+				var creation = new dtos.QueryCreation();
 				creation.setName(c.generateId("query"));
-				creation.setDatabaseId(new c.QueryDatabaseName("openbisDB"));
-				creation.setQueryType(c.QueryType.GENERIC);
+				creation.setDatabaseId(new dtos.QueryDatabaseName("openbisDB"));
+				creation.setQueryType(dtos.QueryType.GENERIC);
 				creation.setSql("select perm_id, code from projects where perm_id = ${perm_id}");
 
 				return facade.createQueries([ creation ]).then(function(techIds) {
-					var options = new c.QueryExecutionOptions();
+					var options = new dtos.QueryExecutionOptions();
 					options.withParameter("perm_id", "20130412150031345-203");
 
 					return facade.executeQuery(techIds[0], options).then(function(table) {
@@ -35,12 +35,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("executeSql()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			c.start();
 
-			c.createFacadeAndLogin().then(function(facade) {
-				var options = new c.SqlExecutionOptions();
-				options.withDatabaseId(new c.QueryDatabaseName("openbisDB"));
+			c.login(facade).then(function() {
+				var options = new dtos.SqlExecutionOptions();
+				options.withDatabaseId(new dtos.QueryDatabaseName("openbisDB"));
 				options.withParameter("perm_id", "20130412150031345-203");
 
 				return facade.executeSql("select perm_id, code from projects where perm_id = ${perm_id}", options).then(function(table) {
@@ -62,7 +62,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 	}
 
 	return function() {
-		executeModule("Execute tests", openbis);
-		executeModule("Execute tests (executeOperations)", openbisExecuteOperations);
+		executeModule("Execute tests (RequireJS)", new openbis(), dtos);
+		executeModule("Execute tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos);
+		executeModule("Execute tests (module UMD)", new window.openbis.openbis(), window.openbis);
+		executeModule("Execute tests (module UMD - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis);
+		executeModule("Execute tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM);
+		executeModule("Execute tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM);
 	}
 });
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-freezing.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-freezing.js
index 364d8a75a555f702b86c8cdd5c81da96b1d825ff..5a0f94bfdde222616fbfff72228873254283e739 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-freezing.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-freezing.js
@@ -1,5 +1,5 @@
-define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common' ], function($, _, openbis, openbisExecuteOperations, common) {
-	var executeModule = function(moduleName, openbis) {
+define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], function($, _, openbis, openbisExecuteOperations, common, dtos) {
+	var executeModule = function(moduleName, facade, dtos) {
 		QUnit.module(moduleName);
 
 		var testUpdate = function(c, entityKind, fCreate, fUpdate, fFind, freezings) {
@@ -11,7 +11,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 				freezingMethodsByPermIds : {}
 			};
 			
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				ctx.facade = facade;
 				var codePrefix = c.generateId(entityKind);
 				var codes = [];
@@ -45,12 +45,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		}
 
 		QUnit.test("freeze spaces()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fCreate = function(facade, codes) {
 				var creations = [];
 				$.each(codes, function(index, code) {
-					var creation = new c.SpaceCreation();
+					var creation = new dtos.SpaceCreation();
 					creation.setCode(code);
 					creations.push(creation);
 				});
@@ -60,8 +60,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			var fUpdate = function(facade, freezingMethodsByPermIds) {
 				var updates = [];
 				$.each(freezingMethodsByPermIds, function(permId, method) {
-					var update = new c.SpaceUpdate();
-					update.setSpaceId(new c.SpacePermId(permId));
+					var update = new dtos.SpaceUpdate();
+					update.setSpaceId(new dtos.SpacePermId(permId));
 					update[method]();
 					updates.push(update);
 				});
@@ -81,13 +81,13 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 	});
 	
 	QUnit.test("freeze projects()", function(assert) {
-		var c = new common(assert, openbis);
+		var c = new common(assert, dtos);
 		
 		var fCreate = function(facade, codes) {
 			var creations = [];
 			$.each(codes, function(index, code) {
-				var creation = new c.ProjectCreation();
-				creation.setSpaceId(new c.SpacePermId("TEST"));
+				var creation = new dtos.ProjectCreation();
+				creation.setSpaceId(new dtos.SpacePermId("TEST"));
 				creation.setCode(code);
 				creations.push(creation);
 			});
@@ -97,8 +97,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		var fUpdate = function(facade, freezingMethodsByPermIds) {
 			var updates = [];
 			$.each(freezingMethodsByPermIds, function(permId, method) {
-				var update = new c.ProjectUpdate();
-				update.setProjectId(new c.ProjectPermId(permId));
+				var update = new dtos.ProjectUpdate();
+				update.setProjectId(new dtos.ProjectPermId(permId));
 				update[method]();
 				updates.push(update);
 			});
@@ -117,15 +117,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 	});
 	
 	QUnit.test("freeze experiments()", function(assert) {
-		var c = new common(assert, openbis);
+		var c = new common(assert, dtos);
 		
 		var fCreate = function(facade, codes) {
 			var creations = [];
 			$.each(codes, function(index, code) {
-				var creation = new c.ExperimentCreation();
+				var creation = new dtos.ExperimentCreation();
 				creation.setCode(code);
-				creation.setTypeId(new c.EntityTypePermId("HT_SEQUENCING"));
-				creation.setProjectId(new c.ProjectIdentifier("/TEST/TEST-PROJECT"));
+				creation.setTypeId(new dtos.EntityTypePermId("HT_SEQUENCING"));
+				creation.setProjectId(new dtos.ProjectIdentifier("/TEST/TEST-PROJECT"));
 				creations.push(creation);
 			});
 			return facade.createExperiments(creations);
@@ -134,8 +134,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		var fUpdate = function(facade, freezingMethodsByPermIds) {
 			var updates = [];
 			$.each(freezingMethodsByPermIds, function(permId, method) {
-				var update = new c.ExperimentUpdate();
-				update.setExperimentId(new c.ExperimentPermId(permId));
+				var update = new dtos.ExperimentUpdate();
+				update.setExperimentId(new dtos.ExperimentPermId(permId));
 				update[method]();
 				updates.push(update);
 			});
@@ -154,15 +154,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 	});
 	
 	QUnit.test("freeze samples()", function(assert) {
-		var c = new common(assert, openbis);
+		var c = new common(assert, dtos);
 		
 		var fCreate = function(facade, codes) {
 			var creations = [];
 			$.each(codes, function(index, code) {
-				var creation = new c.SampleCreation();
-				creation.setSpaceId(new c.SpacePermId("TEST"));
+				var creation = new dtos.SampleCreation();
+				creation.setSpaceId(new dtos.SpacePermId("TEST"));
 				creation.setCode(code);
-				creation.setTypeId(new c.EntityTypePermId("UNKNOWN"));
+				creation.setTypeId(new dtos.EntityTypePermId("UNKNOWN"));
 				creations.push(creation);
 			});
 			return facade.createSamples(creations);
@@ -171,8 +171,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		var fUpdate = function(facade, freezingMethodsByPermIds) {
 			var updates = [];
 			$.each(freezingMethodsByPermIds, function(permId, method) {
-				var update = new c.SampleUpdate();
-				update.setSampleId(new c.SamplePermId(permId));
+				var update = new dtos.SampleUpdate();
+				update.setSampleId(new dtos.SamplePermId(permId));
 				update[method]();
 				updates.push(update);
 			});
@@ -198,7 +198,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 	});
 	
 	QUnit.test("freeze data sets()", function(assert) {
-		var c = new common(assert, openbis);
+		var c = new common(assert, dtos);
 		
 		var fCreate = function(facade, codes) {
 			var creations = [];
@@ -213,8 +213,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		var fUpdate = function(facade, freezingMethodsByPermIds) {
 			var updates = [];
 			$.each(freezingMethodsByPermIds, function(permId, method) {
-				var update = new c.DataSetUpdate();
-				update.setDataSetId(new c.DataSetPermId(permId));
+				var update = new dtos.DataSetUpdate();
+				update.setDataSetId(new dtos.DataSetPermId(permId));
 				update[method]();
 				updates.push(update);
 			});
@@ -241,6 +241,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 }
 
 	return function() {
-		executeModule("Freezing tests", openbis);
+		executeModule("Freezing tests (RequireJS)", new openbis(), dtos);
+		executeModule("Freezing tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos);
+		executeModule("Freezing tests (module UMD)", new window.openbis.openbis(), window.openbis);
+		executeModule("Freezing tests (module UMD - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis);
+		executeModule("Freezing tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM);
+		executeModule("Freezing tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM);
 	}
 });
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-get.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-get.js
index 09468bcbb71cacdda2a7d517793fae288b5b0256..f0eb2825b5343a2b979bf152518b9479c61a9042 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-get.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-get.js
@@ -1,10 +1,10 @@
-define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common' ], function($, _, openbis, openbisExecuteOperations, common) {
-	var executeModule = function(moduleName, openbis) {
+define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], function($, _, openbis, openbisExecuteOperations, common, dtos) {
+	var executeModule = function(moduleName, facade, dtos) {
 		QUnit.module(moduleName);
 
 		var testGet = function(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig) {
 			c.start();
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				return fCreate(facade).then(function(permIds) {
 					c.assertTrue(permIds != null && permIds.length > 0, "Entities were created");
 					return fGet(facade, permIds).then(function(map) {
@@ -33,7 +33,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 
 		var testGetManual = function(c, fCreate, fGet, fCheck) {
 			c.start();
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				return fCreate(facade).then(function(permIds) {
 					return fGet(facade, permIds).then(function(persons) {
 						fCheck(permIds, persons);
@@ -128,8 +128,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		}
 
 		QUnit.test("getSpaces()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.SpaceFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.SpaceFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 			fechOptionsTestConfig.SortBy = null;
 
@@ -145,15 +145,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getSpaces(permIds, new c.SpaceFetchOptions());
+				return facade.getSpaces(permIds, new dtos.SpaceFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getProjects()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.ProjectFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.ProjectFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 			fechOptionsTestConfig.SortBy = null;
 
@@ -170,15 +170,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getProjects(permIds, new c.ProjectFetchOptions());
+				return facade.getProjects(permIds, new dtos.ProjectFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getExperiments()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.ExperimentFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.ExperimentFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 			fechOptionsTestConfig.SortBy = null;
 
@@ -194,15 +194,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getExperiments(permIds, new c.ExperimentFetchOptions());
+				return facade.getExperiments(permIds, new dtos.ExperimentFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getSamples()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.SampleFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.SampleFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 			fechOptionsTestConfig.SortBy = null;
 
@@ -218,15 +218,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getSamples(permIds, new c.SampleFetchOptions());
+				return facade.getSamples(permIds, new dtos.SampleFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getDataSets()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.DataSetFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.DataSetFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 			fechOptionsTestConfig.SortBy = null;
 
@@ -250,7 +250,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				var result = facade.getDataSets(permIds, new c.DataSetFetchOptions());
+				var result = facade.getDataSets(permIds, new dtos.DataSetFetchOptions());
 
 				result.then(function(map) {
 					permIds.forEach(function(permId) {
@@ -265,8 +265,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("getMaterials()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.MaterialFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.MaterialFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 			fechOptionsTestConfig.SortBy = null;
 
@@ -282,15 +282,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getMaterials(permIds, new c.MaterialFetchOptions());
+				return facade.getMaterials(permIds, new dtos.MaterialFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getPropertyTypes()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.PropertyTypeFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.PropertyTypeFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 			fechOptionsTestConfig.SortBy = null;
 
@@ -306,15 +306,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getPropertyTypes(permIds, new c.PropertyTypeFetchOptions());
+				return facade.getPropertyTypes(permIds, new dtos.PropertyTypeFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getPlugins()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.PluginFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.PluginFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 
 			var fCreate = function(facade) {
@@ -329,15 +329,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getPlugins(permIds, new c.PluginFetchOptions());
+				return facade.getPlugins(permIds, new dtos.PluginFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getVocabularies()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.VocabularyFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.VocabularyFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 			fechOptionsTestConfig.SortBy = null;
 
@@ -353,15 +353,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getVocabularies(permIds, new c.VocabularyFetchOptions());
+				return facade.getVocabularies(permIds, new dtos.VocabularyFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getVocabularyTerms()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.VocabularyTermFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.VocabularyTermFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 			fechOptionsTestConfig.SortBy = null;
 
@@ -377,15 +377,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getVocabularyTerms(permIds, new c.VocabularyTermFetchOptions());
+				return facade.getVocabularyTerms(permIds, new dtos.VocabularyTermFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getExternalDms()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.ExternalDmsFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.ExternalDmsFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 
 			var fCreate = function(facade) {
@@ -400,15 +400,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getExternalDataManagementSystems(permIds, new c.ExternalDmsFetchOptions());
+				return facade.getExternalDataManagementSystems(permIds, new dtos.ExternalDmsFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getTags()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.TagFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.TagFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 			fechOptionsTestConfig.SortBy = null;
 
@@ -424,15 +424,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getTags(permIds, new c.TagFetchOptions());
+				return facade.getTags(permIds, new dtos.TagFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getAuthorizationGroups()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.AuthorizationGroupFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.AuthorizationGroupFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 			fechOptionsTestConfig.SortBy = null;
 
@@ -448,15 +448,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getAuthorizationGroups(permIds, new c.AuthorizationGroupFetchOptions());
+				return facade.getAuthorizationGroups(permIds, new dtos.AuthorizationGroupFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getRoleAssignments() with user", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.RoleAssignmentFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.RoleAssignmentFetchOptions();
 			fo.withUser();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 
@@ -479,15 +479,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getRoleAssignments(permIds, new c.RoleAssignmentFetchOptions());
+				return facade.getRoleAssignments(permIds, new dtos.RoleAssignmentFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getRoleAssignments() with authorization group", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.RoleAssignmentFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.RoleAssignmentFetchOptions();
 			fo.withAuthorizationGroup();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 
@@ -510,14 +510,14 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getRoleAssignments(permIds, new c.RoleAssignmentFetchOptions());
+				return facade.getRoleAssignments(permIds, new dtos.RoleAssignmentFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getPersons()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fCreate = function(facade) {
 				return $.when(c.createPerson(facade), c.createPerson(facade)).then(function(permId1, permId2) {
@@ -526,7 +526,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGet = function(facade, permIds) {
-				var fo = new c.PersonFetchOptions();
+				var fo = new dtos.PersonFetchOptions();
 				return facade.getPersons(permIds, fo);
 			}
 
@@ -542,23 +542,23 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			var WEB_APP_2 = "webApp2";
 			var WEB_APP_3 = "webApp3";
 
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fCreate = function(facade) {
 				return c.createPerson(facade).then(function(permId) {
-					var update = new c.PersonUpdate();
+					var update = new dtos.PersonUpdate();
 					update.setUserId(permId);
 
 					var webApp1Update = update.getWebAppSettings(WEB_APP_1);
-					webApp1Update.add(new c.WebAppSettingCreation("n1a", "v1a"));
-					webApp1Update.add(new c.WebAppSettingCreation("n1b", "v1b"));
+					webApp1Update.add(new dtos.WebAppSettingCreation("n1a", "v1a"));
+					webApp1Update.add(new dtos.WebAppSettingCreation("n1b", "v1b"));
 
 					var webApp2Update = update.getWebAppSettings(WEB_APP_2);
-					webApp2Update.add(new c.WebAppSettingCreation("n2a", "v2a"));
-					webApp2Update.add(new c.WebAppSettingCreation("n2b", "v2b"));
+					webApp2Update.add(new dtos.WebAppSettingCreation("n2a", "v2a"));
+					webApp2Update.add(new dtos.WebAppSettingCreation("n2b", "v2b"));
 
 					var webApp3Update = update.getWebAppSettings(WEB_APP_3);
-					webApp3Update.add(new c.WebAppSettingCreation("n3a", "v3a"));
+					webApp3Update.add(new dtos.WebAppSettingCreation("n3a", "v3a"));
 
 					return facade.updatePersons([ update ]).then(function() {
 						return [ permId ];
@@ -567,7 +567,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGet = function(facade, permIds) {
-				var fo = new c.PersonFetchOptions();
+				var fo = new dtos.PersonFetchOptions();
 
 				var webApp1Fo = fo.withWebAppSettings(WEB_APP_1);
 				webApp1Fo.withAllSettings();
@@ -602,20 +602,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			var WEB_APP_2 = "webApp2";
 			var WEB_APP_3 = "webApp3";
 
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fCreate = function(facade) {
 				return c.createPerson(facade).then(function(permId) {
-					var update = new c.PersonUpdate();
+					var update = new dtos.PersonUpdate();
 					update.setUserId(permId);
 
 					var webApp1Update = update.getWebAppSettings(WEB_APP_1);
-					webApp1Update.add(new c.WebAppSettingCreation("n1a", "v1a"));
-					webApp1Update.add(new c.WebAppSettingCreation("n1b", "v1b"));
+					webApp1Update.add(new dtos.WebAppSettingCreation("n1a", "v1a"));
+					webApp1Update.add(new dtos.WebAppSettingCreation("n1b", "v1b"));
 
 					var webApp2Update = update.getWebAppSettings(WEB_APP_2);
-					webApp2Update.add(new c.WebAppSettingCreation("n2a", "v2a"));
-					webApp2Update.add(new c.WebAppSettingCreation("n2b", "v2b"));
+					webApp2Update.add(new dtos.WebAppSettingCreation("n2a", "v2a"));
+					webApp2Update.add(new dtos.WebAppSettingCreation("n2b", "v2b"));
 
 					return facade.updatePersons([ update ]).then(function() {
 						return [ permId ];
@@ -624,7 +624,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGet = function(facade, permIds) {
-				var fo = new c.PersonFetchOptions();
+				var fo = new dtos.PersonFetchOptions();
 				fo.withAllWebAppSettings();
 
 				return facade.getPersons(permIds, fo);
@@ -651,8 +651,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("getOperationExecutions()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.OperationExecutionFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.OperationExecutionFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 
 			var fCreate = function(facade) {
@@ -667,15 +667,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getOperationExecutions(permIds, new c.OperationExecutionFetchOptions());
+				return facade.getOperationExecutions(permIds, new dtos.OperationExecutionFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getSemanticAnnotations()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.SemanticAnnotationFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.SemanticAnnotationFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 
 			var fCreate = function(facade) {
@@ -690,15 +690,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getSemanticAnnotations(permIds, new c.SemanticAnnotationFetchOptions());
+				return facade.getSemanticAnnotations(permIds, new dtos.SemanticAnnotationFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getQueries()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.QueryFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.QueryFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 
 			var fCreate = function(facade) {
@@ -713,20 +713,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, techIds) {
-				return facade.getQueries(techIds, new c.QueryFetchOptions());
+				return facade.getQueries(techIds, new dtos.QueryFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getQueryDatabases()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.QueryDatabaseFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.QueryDatabaseFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 
 			var fCreate = function(facade) {
 				var dfd = $.Deferred();
-				dfd.resolve([ new c.QueryDatabaseName("openbisDB"), new c.QueryDatabaseName("test-query-database") ]);
+				dfd.resolve([ new dtos.QueryDatabaseName("openbisDB"), new dtos.QueryDatabaseName("test-query-database") ]);
 				return dfd.promise();
 			}
 
@@ -736,15 +736,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, techIds) {
-				return facade.getQueryDatabases(techIds, new c.QueryDatabaseFetchOptions());
+				return facade.getQueryDatabases(techIds, new dtos.QueryDatabaseFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getExperimentTypes()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.ExperimentTypeFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.ExperimentTypeFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 
 			var fCreate = function(facade) {
@@ -759,15 +759,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getExperimentTypes(permIds, new c.ExperimentTypeFetchOptions());
+				return facade.getExperimentTypes(permIds, new dtos.ExperimentTypeFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getSampleTypes()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.SampleTypeFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.SampleTypeFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 
 			var fCreate = function(facade) {
@@ -782,15 +782,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getSampleTypes(permIds, new c.SampleTypeFetchOptions());
+				return facade.getSampleTypes(permIds, new dtos.SampleTypeFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getDataSetTypes()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.DataSetTypeFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.DataSetTypeFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 
 			var fCreate = function(facade) {
@@ -805,15 +805,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getDataSetTypes(permIds, new c.DataSetTypeFetchOptions());
+				return facade.getDataSetTypes(permIds, new dtos.DataSetTypeFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getMaterialTypes()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.MaterialTypeFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.MaterialTypeFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 
 			var fCreate = function(facade) {
@@ -828,19 +828,19 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getMaterialTypes(permIds, new c.MaterialTypeFetchOptions());
+				return facade.getMaterialTypes(permIds, new dtos.MaterialTypeFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
 		});
 
 		QUnit.test("getRights()", function(assert) {
-			var c = new common(assert);
-			var sampleId = new c.SampleIdentifier("/PLATONIC/SCREENING-EXAMPLES/PLATE-2");
+			var c = new common(assert, dtos);
+			var sampleId = new dtos.SampleIdentifier("/PLATONIC/SCREENING-EXAMPLES/PLATE-2");
 			c.start();
 			
-			c.createFacadeAndLogin().then(function(facade) {
-				return facade.getRights([sampleId], new c.RightsFetchOptions()).then(function(rights) {
+			c.login(facade).then(function() {
+				return facade.getRights([sampleId], new dtos.RightsFetchOptions()).then(function(rights) {
                     var rights = rights[sampleId].rights;
                     rights.sort();
                     c.assertEqual(rights, "DELETE,UPDATE", "Rights");
@@ -853,10 +853,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("getServerInformation()", function(assert) {
-			var c = new common(assert);
+			var c = new common(assert, dtos);
 			c.start();
 
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				return facade.getServerInformation().then(function(serverInformation) {
 					c.assertTrue(serverInformation != null);
 					c.assertEqual(serverInformation["api-version"], "3.6", "api-version");
@@ -870,10 +870,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("getServerPublicInformation()", function(assert) {
-			var c = new common(assert);
+			var c = new common(assert, dtos);
 			c.start();
 
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				return facade.getServerPublicInformation().then(function(serverInformation) {
 					c.assertTrue(serverInformation != null);
 					c.assertEqual(Object.keys(serverInformation).length, 4);
@@ -890,8 +890,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("getPersonalAccessTokens()", function(assert) {
-			var c = new common(assert, openbis);
-			var fo = new c.PersonalAccessTokenFetchOptions();
+			var c = new common(assert, dtos);
+			var fo = new dtos.PersonalAccessTokenFetchOptions();
 			var fechOptionsTestConfig = getConfigForFetchOptions(fo);
 
 			var fCreate = function(facade) {
@@ -906,7 +906,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fGetEmptyFetchOptions = function(facade, permIds) {
-				return facade.getPersonalAccessTokens(permIds, new c.PersonalAccessTokenFetchOptions());
+				return facade.getPersonalAccessTokens(permIds, new dtos.PersonalAccessTokenFetchOptions());
 			}
 
 			testGet(c, fCreate, fGet, fGetEmptyFetchOptions, fechOptionsTestConfig);
@@ -914,8 +914,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 
 	}
 
-	return function() {
-		executeModule("Get tests", openbis);
-		executeModule("Get tests (executeOperations)", openbisExecuteOperations);
-	}
+    return function() {
+        executeModule("Get tests (RequireJS)", new openbis(), dtos);
+        executeModule("Get tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos);
+        executeModule("Get tests (module UMD)", new window.openbis.openbis(), window.openbis);
+        executeModule("Get tests (module UMD - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis);
+        executeModule("Get tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM);
+        executeModule("Get tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM);
+    }
 });
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-import-export.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-import-export.js
index 2245b52006bffb1c2d45a15f036d21e512bece0a..dcdbee080291249215641d241e28184897bfe50d 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-import-export.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-import-export.js
@@ -15,8 +15,8 @@
  *
  */
 
-define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common' ],
-  function($, _, openbis, openbisExecuteOperations, common) {
+define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ],
+  function($, _, openbis, openbisExecuteOperations, common, dtos) {
     var fileContent = "UEsDBBQACAgIAEh8FVcAAAAAAAAAAAAAAAALAAAAX3JlbHMvLnJlbHOtksFOwzAMhu97iir3Nd1ACKGmu0xIuyE0HsAkbhu1iaPEg/L2RBMSDI2" +
       "yw45xfn/+YqXeTG4s3jAmS16JVVmJAr0mY32nxMv+cXkvNs2ifsYROEdSb0Mqco9PSvTM4UHKpHt0kEoK6PNNS9EB52PsZAA9QIdyXVV3Mv5kiOaEWeyMEnFnVqLYfwS8hE1ta" +
       "zVuSR8cej4z4lcikyF2yEpMo3ynOLwSDWWGCnneZX25y9/vlA4ZDDBITRGXIebuyBbTt44h/ZTL6ZiYE7q55nJwYvQGzbwShDBndHtNI31ITO6fFR0zX0qLWp78y+YTUEsHCIW" +
@@ -73,13 +73,13 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
       "AFAAICAgASHwVV0WOLhL4AAAAmgEAABAAAAAAAAAAAAAAAAAA3Q8AAGRvY1Byb3BzL2FwcC54bWxQSwECFAAUAAgICABIfBVXtuOWgmMBAADUBQAAEwAAAAAAAAAAAAAAAAATE" +
       "QAAW0NvbnRlbnRfVHlwZXNdLnhtbFBLBQYAAAAACgAKAIACAAC3EgAAAAA=";
 
-    var executeModule = function(moduleName, openbis) {
+    var executeModule = function(moduleName, facade, dtos) {
       QUnit.module(moduleName);
 
       var testAction = function(c, fAction, fCheck) {
         c.start();
 
-        c.createFacadeAndLogin().then(function(facade) {
+        c.login(facade).then(function() {
           c.ok("Login");
           return fAction(facade).then(function(result) {
             c.ok("Got results");
@@ -99,21 +99,21 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
       }
 
       QUnit.test("executeImport()", function(assert) {
-        var c = new common(assert, openbis);
+        var c = new common(assert, dtos);
 
         var fAction = function(facade) {
-          var importData = new c.UncompressedImportData();
+          var importData = new dtos.UncompressedImportData();
           importData.setFormat("XLS");
           importData.setFile(fileContent);
 
-          var importOptions = new c.ImportOptions();
+          var importOptions = new dtos.ImportOptions();
           importOptions.setMode("UPDATE_IF_EXISTS");
 
           return facade.executeImport(importData, importOptions);
         }
 
         var fCheck = function(facade) {
-          var criteria = new c.VocabularySearchCriteria();
+          var criteria = new dtos.VocabularySearchCriteria();
           criteria.withCode().thatEquals("VOCAB");
 
           var vocabularyFetchOptions = c.createVocabularyFetchOptions()
@@ -154,7 +154,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
     }
 
     return function() {
-      executeModule("Export/import tests", openbis);
-      executeModule("Export/import tests (executeOperations)", openbisExecuteOperations);
+        executeModule("Export/import tests (RequireJS)", new openbis(), dtos);
+        executeModule("Export/import tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos);
+        executeModule("Export/import tests (module UMD)", new window.openbis.openbis(), window.openbis);
+        executeModule("Export/import tests (module UMD - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis);
+        executeModule("Export/import tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM);
+        executeModule("Export/import tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM);
     }
   });
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-jsVSjava.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-jsVSjava.js
index ac1e9f899e494771921ee901cdb796691ff6f908..c9b7ea6ed26feffcc9ac2d6ef65829a40ae0a18a 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-jsVSjava.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-jsVSjava.js
@@ -1,9 +1,9 @@
 /**
  *
  */
-define(["jquery", "underscore", "openbis", "test/common"], function ($, _, openbis, common) {
-    return function () {
-        QUnit.module("JS VS JAVA API")
+define(["jquery", "underscore", "openbis", "test/common", "test/dtos"], function ($, _, openbis, common, dtos) {
+    var executeModule = function (moduleName, facade, dtos) {
+        QUnit.module(moduleName)
 
         //
         // Ignore specific Java classes giving a custom message
@@ -171,8 +171,14 @@ define(["jquery", "underscore", "openbis", "test/common"], function ($, _, openb
                             })
                         }
 
-                        if (_.isObject(jsField) && jsField.arguments) {
-                            jsTypeArguments = jsField.arguments
+                        if(_.isFunction(jsField)){
+                            if(jsField().arguments){
+                                jsTypeArguments = jsField().arguments;
+                            }
+                        }else if (_.isObject(jsField)) {
+                            if(jsField.arguments){
+                                jsTypeArguments = jsField.arguments
+                            }
                         }
 
                         if (JSON.stringify(jsTypeArguments) !== JSON.stringify(javaTypeArguments)) {
@@ -297,10 +303,21 @@ define(["jquery", "underscore", "openbis", "test/common"], function ($, _, openb
 
                                 loadedHandler = loadedHandler(circularDependencyConfig)
 
-                                var requireJsPath = jsClassName.replace(/\./g, "/")
-                                require([requireJsPath], loadedHandler(javaClassReport), failedLoadingErrorHandler(
-                                    javaClassName
-                                ))
+                                try{
+                                    var dto = eval("dtos." + jsClassName)
+
+                                    if(dto){
+                                        loadedHandler(javaClassReport)(dto)
+                                    }else{
+                                        failedLoadingErrorHandler(
+                                            javaClassName
+                                        )("Not found")
+                                    }
+                                }catch(e){
+                                    failedLoadingErrorHandler(
+                                        javaClassName
+                                    )(e)
+                                }
                             } else {
                                 var errorResult = "Java class missing jsonObjectAnnotation: " + javaClassName
                                 testsResults.error.push(errorResult)
@@ -336,7 +353,7 @@ define(["jquery", "underscore", "openbis", "test/common"], function ($, _, openb
         }
 
         QUnit.test("get Java report from aggregation service", function (assert) {
-            var c = new common(assert)
+            var c = new common(assert, dtos)
             c.start()
 
             var getV3APIReport = function (facade) {
@@ -375,7 +392,13 @@ define(["jquery", "underscore", "openbis", "test/common"], function ($, _, openb
                 )
             }
 
-            c.createFacadeAndLogin().then(getV3APIReport)
+            c.login(facade).then(getV3APIReport)
         })
     }
+
+    return function(){
+        executeModule("JS VS JAVA API (RequireJS)", new openbis(), dtos);
+        executeModule("JS VS JAVA API (module UMD)", new window.openbis.openbis(), window.openbis);
+        executeModule("JS VS JAVA API (module ESM)", new window.openbisESM.openbis(), window.openbisESM);
+    }
 })
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-json.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-json.js
index ddf2fc079e3cb3aa1681a6087501db3c3d223a57..94c45c9beb016af7756c7e0917b9ba0a5b30880a 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-json.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-json.js
@@ -1,9 +1,9 @@
-define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'util/Json' ], function($, _, openbis, openbisExecuteOperations, common, Json) {
-	var executeModule = function(moduleName, openbis) {
+define([ 'jquery', 'underscore', 'test/common', 'test/dtos', 'util/Json' ], function($, _, common, dtos, Json) {
+	var executeModule = function(moduleName, dtos) {
 		QUnit.module(moduleName);
 
 		QUnit.test("fromJSON with object id before object definition (in top level maps)", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			c.start();
 
 			var json = {
@@ -94,7 +94,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("fromJSON with object id before object definition (in nested maps)", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			c.start();
 
 			var json = {
@@ -191,7 +191,6 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 	}
 
 	return function() {
-		executeModule("Json tests", openbis);
-		executeModule("Json tests (executeOperations)", openbisExecuteOperations);
+		executeModule("Json tests", dtos);
 	}
 });
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-login.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-login.js
index 6461096590ec7987df0c461000c9d76e7f2314ab..4262d0f4ab9d9aaecf29db31057ffaf13d34e2bd 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-login.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-login.js
@@ -1,22 +1,21 @@
-define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, openbis, common) {
-	return function() {
-		QUnit.module("Login tests");
+define([ 'jquery', 'underscore', 'openbis', 'test/common', 'test/dtos' ], function($, _, openbis, common, dtos) {
+	var executeModule = function(moduleName, facade, dtos) {
+		QUnit.module(moduleName);
 
 		QUnit.test("loginAs()", function(assert) {
-			var c = new common(assert);
+			var c = new common(assert, dtos);
 			c.start();
 
-			$.when(c.createFacade()).then(function(facade) {
-				var criteria = new c.SpaceSearchCriteria();
-				var fetchOptions = new c.SpaceFetchOptions();
-				return facade.login("openbis_test_js", "password").then(function() {
-					return facade.searchSpaces(criteria, fetchOptions).then(function(spacesForInstanceAdmin) {
-						return facade.loginAs("openbis_test_js", "password", "test_space_admin").then(function() {
-							return facade.searchSpaces(criteria, fetchOptions).then(function(spacesForSpaceAdmin) {
-								c.assertTrue(spacesForInstanceAdmin.getTotalCount() > spacesForSpaceAdmin.getTotalCount());
-								c.assertObjectsWithValues(spacesForSpaceAdmin.getObjects(), "code", [ "TEST" ]);
-								c.finish();
-							});
+			var criteria = new dtos.SpaceSearchCriteria();
+			var fetchOptions = new dtos.SpaceFetchOptions();
+
+			facade.login("openbis_test_js", "password").then(function() {
+				return facade.searchSpaces(criteria, fetchOptions).then(function(spacesForInstanceAdmin) {
+					return facade.loginAs("openbis_test_js", "password", "test_space_admin").then(function() {
+						return facade.searchSpaces(criteria, fetchOptions).then(function(spacesForSpaceAdmin) {
+							c.assertTrue(spacesForInstanceAdmin.getTotalCount() > spacesForSpaceAdmin.getTotalCount());
+							c.assertObjectsWithValues(spacesForSpaceAdmin.getObjects(), "code", [ "TEST" ]);
+							c.finish();
 						});
 					});
 				});
@@ -27,17 +26,14 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open
 		});
 
 		QUnit.test("getSessionInformation()", function(assert) {
-			var c = new common(assert);
+			var c = new common(assert, dtos);
 			c.start();
 
-			$.when(c.createFacade()).then(function(facade) {
-				return facade.login("openbis_test_js", "password").then(function() {
-
-					return facade.getSessionInformation().then(function(sessionInformation) {
-						c.assertTrue(sessionInformation != null);
-						c.assertTrue(sessionInformation.getPerson() != null);
-						c.finish();
-					});
+			facade.login("openbis_test_js", "password").then(function() {
+				return facade.getSessionInformation().then(function(sessionInformation) {
+					c.assertTrue(sessionInformation != null);
+					c.assertTrue(sessionInformation.getPerson() != null);
+					c.finish();
 				});
 			}).fail(function(error) {
 				c.fail(error.message);
@@ -46,17 +42,16 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open
 		});
 
 		QUnit.test("loginAsAnonymousUser()", function(assert) {
-			var c = new common(assert);
+			var c = new common(assert, dtos);
 			c.start();
 
-			$.when(c.createFacade()).then(function(facade) {
-				var criteria = new c.SpaceSearchCriteria();
-				var fetchOptions = new c.SpaceFetchOptions();
-				return facade.loginAsAnonymousUser().then(function() {
-					return facade.searchSpaces(criteria, fetchOptions).then(function(spaces) {
-						c.assertTrue(spaces.getTotalCount() == 1)
-						c.finish();
-					});
+			var criteria = new dtos.SpaceSearchCriteria();
+			var fetchOptions = new dtos.SpaceFetchOptions();
+
+			facade.loginAsAnonymousUser().then(function() {
+				return facade.searchSpaces(criteria, fetchOptions).then(function(spaces) {
+					c.assertTrue(spaces.getTotalCount() == 1)
+					c.finish();
 				});
 			}).fail(function(error) {
 				c.fail(error.message);
@@ -65,4 +60,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open
 		});
 
 	}
+
+	return function(){
+		executeModule("Login tests (RequireJS)", new openbis(), dtos);
+		executeModule("Login tests (module UMD)", new window.openbis.openbis(), window.openbis);
+		executeModule("Login tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM);
+	}
 });
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-search.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-search.js
index 5e16a056a0199f76ed0fc3daca9c7f8232fbba1e..6af1f9b016ff1bff751edb6af9f6c57414ad9631 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-search.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-search.js
@@ -1,11 +1,11 @@
-define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/naturalsort' ], function($, _, openbis, openbisExecuteOperations, common, naturalsort) {
-	var executeModule = function(moduleName, openbis) {
+define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos', 'test/naturalsort' ], function($, _, openbis, openbisExecuteOperations, common, dtos, naturalsort) {
+	var executeModule = function(moduleName, facade, dtos) {
 		QUnit.module(moduleName);
 
 		var testSearch = function(c, fSearch, fCheck, fCheckError) {
 			c.start();
 
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				c.ok("Login");
 				return fSearch(facade).then(function(results) {
 					c.ok("Got results");
@@ -46,7 +46,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			fetchOptions.from(null).count(null);
 			fetchOptions.sort = null;
 
-			return c.createFacadeAndLogin().then(function(facade) {
+			return c.login(facade).then(function() {
 				c.ok("Login");
 
 				return fSearch(facade).then(function(results) {
@@ -124,10 +124,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		};
 
 		QUnit.test("searchSpaces()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SpaceSearchCriteria();
+				var criteria = new dtos.SpaceSearchCriteria();
 				criteria.withCode().thatEquals("TEST");
 				return facade.searchSpaces(criteria, c.createSpaceFetchOptions());
 			};
@@ -152,10 +152,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSpaces() with codes", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SpaceSearchCriteria();
+				var criteria = new dtos.SpaceSearchCriteria();
 				criteria.withCodes().thatIn(["TEST"]);
 				return facade.searchSpaces(criteria, c.createSpaceFetchOptions());
 			}
@@ -172,9 +172,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSpaces() with paging and sorting", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.SpaceSearchCriteria();
+			var criteria = new dtos.SpaceSearchCriteria();
 			criteria.withOrOperator();
 			criteria.withCode().thatEquals("TEST");
 			criteria.withCode().thatEquals("PLATONIC");
@@ -187,10 +187,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchProjects()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ProjectSearchCriteria();
+				var criteria = new dtos.ProjectSearchCriteria();
 				criteria.withSpace().withCode().thatEquals("PLATONIC");
 				criteria.withCode().thatEquals("SCREENING-EXAMPLES");
 				return facade.searchProjects(criteria, c.createProjectFetchOptions());
@@ -219,10 +219,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchProjects() with codes", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ProjectSearchCriteria();
+				var criteria = new dtos.ProjectSearchCriteria();
 				criteria.withCodes().thatIn(["SCREENING-EXAMPLES"]);
 				return facade.searchProjects(criteria, c.createProjectFetchOptions());
 			}
@@ -237,9 +237,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchProjects() with paging and sorting", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.ProjectSearchCriteria();
+			var criteria = new dtos.ProjectSearchCriteria();
 			criteria.withOrOperator();
 			criteria.withCode().thatEquals("TEST-PROJECT");
 			criteria.withCode().thatEquals("SCREENING-EXAMPLES");
@@ -252,12 +252,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchProjects() with sorting by identifier", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.ProjectSearchCriteria();
+			var criteria = new dtos.ProjectSearchCriteria();
 			criteria.withOrOperator();
-			criteria.withId().thatEquals(new c.ProjectIdentifier("/TEST/TEST-PROJECT"));
-			criteria.withId().thatEquals(new c.ProjectIdentifier("/PLATONIC/SCREENING-EXAMPLES"));
+			criteria.withId().thatEquals(new dtos.ProjectIdentifier("/TEST/TEST-PROJECT"));
+			criteria.withId().thatEquals(new dtos.ProjectIdentifier("/PLATONIC/SCREENING-EXAMPLES"));
 
 			var fo = c.createProjectFetchOptions();
 
@@ -267,10 +267,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExperiments()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ExperimentSearchCriteria();
+				var criteria = new dtos.ExperimentSearchCriteria();
 				criteria.withPermId().thatEquals("20130412105232616-2");
 				return facade.searchExperiments(criteria, c.createExperimentFetchOptions());
 			}
@@ -288,10 +288,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExperiments() with codes", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ExperimentSearchCriteria();
+				var criteria = new dtos.ExperimentSearchCriteria();
 				criteria.withCodes().thatIn(["EXP-1"]);
 				return facade.searchExperiments(criteria, c.createExperimentFetchOptions());
 			}
@@ -309,9 +309,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExperiments() with paging and sorting", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.ExperimentSearchCriteria();
+			var criteria = new dtos.ExperimentSearchCriteria();
 			criteria.withOrOperator();
 			criteria.withCode().thatEquals("EXP-1");
 			criteria.withCode().thatEquals("EXP-2");
@@ -324,9 +324,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExperiments() with paging and sorting by code", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.ExperimentSearchCriteria();
+			var criteria = new dtos.ExperimentSearchCriteria();
 			criteria.withOrOperator();
 			criteria.withCode().thatContains("EXP");
 			criteria.withCode().thatContains("-1");
@@ -339,12 +339,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExperiments() with sorting by identifier", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.ExperimentSearchCriteria();
+			var criteria = new dtos.ExperimentSearchCriteria();
 			criteria.withOrOperator();
-			criteria.withId().thatEquals(new c.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
-			criteria.withId().thatEquals(new c.ExperimentIdentifier("/PLATONIC/SCREENING-EXAMPLES/EXP-2"));
+			criteria.withId().thatEquals(new dtos.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
+			criteria.withId().thatEquals(new dtos.ExperimentIdentifier("/PLATONIC/SCREENING-EXAMPLES/EXP-2"));
 
 			var fo = c.createExperimentFetchOptions();
 
@@ -354,12 +354,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExperiments() with sorting by type", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.ExperimentSearchCriteria();
+			var criteria = new dtos.ExperimentSearchCriteria();
 			criteria.withOrOperator();
-			criteria.withId().thatEquals(new c.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
-			criteria.withId().thatEquals(new c.ExperimentIdentifier("/PLATONIC/SCREENING-EXAMPLES/EXP-2"));
+			criteria.withId().thatEquals(new dtos.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
+			criteria.withId().thatEquals(new dtos.ExperimentIdentifier("/PLATONIC/SCREENING-EXAMPLES/EXP-2"));
 
 			var fo = c.createExperimentFetchOptions();
 
@@ -369,10 +369,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExperiments() withRegistrator withUserId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ExperimentSearchCriteria();
+				var criteria = new dtos.ExperimentSearchCriteria();
 				criteria.withRegistrator().withUserId().thatEquals("etlserver");
 				return facade.searchExperiments(criteria, c.createExperimentFetchOptions());
 			}
@@ -385,10 +385,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExperiments() withModifier withUserId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ExperimentSearchCriteria();
+				var criteria = new dtos.ExperimentSearchCriteria();
 				criteria.withModifier().withUserId().thatEquals("etlserver");
 				return facade.searchExperiments(criteria, c.createExperimentFetchOptions());
 			}
@@ -401,10 +401,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExperiments() withModifier withUserId negated", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ExperimentSearchCriteria().withAndOperator();
+				var criteria = new dtos.ExperimentSearchCriteria().withAndOperator();
 				criteria.withModifier().withUserId().thatEquals("etlserver");
 				criteria.withSubcriteria().negate().withCode().thatEndsWith("-2");
 				return facade.searchExperiments(criteria, c.createExperimentFetchOptions());
@@ -418,10 +418,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExperiments() withIdentifier", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ExperimentSearchCriteria();
+				var criteria = new dtos.ExperimentSearchCriteria();
 				criteria.withIdentifier().thatEquals("/TEST/TEST-PROJECT/TEST-EXPERIMENT");
 				return facade.searchExperiments(criteria, c.createExperimentFetchOptions());
 			}
@@ -435,10 +435,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExperiments() with nested logical operators", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ExperimentSearchCriteria().withAndOperator();
+				var criteria = new dtos.ExperimentSearchCriteria().withAndOperator();
 
 				var subCriteria1 = criteria.withSubcriteria().withOrOperator();
 				subCriteria1.withCode().thatStartsWith("TEST");
@@ -462,14 +462,14 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExperimentTypes() with and operator", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ExperimentTypeSearchCriteria();
+				var criteria = new dtos.ExperimentTypeSearchCriteria();
 				criteria.withAndOperator();
 				criteria.withCode().thatStartsWith("H");
 				criteria.withCode().thatContains("SEQUENCING");
-				var fetchOptions = new c.ExperimentTypeFetchOptions();
+				var fetchOptions = new dtos.ExperimentTypeFetchOptions();
 				fetchOptions.withPropertyAssignments().withPropertyType();
 				return facade.searchExperimentTypes(criteria, fetchOptions);
 			}
@@ -495,14 +495,14 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExperimentTypes() with or operator", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ExperimentTypeSearchCriteria();
+				var criteria = new dtos.ExperimentTypeSearchCriteria();
 				criteria.withOrOperator();
 				criteria.withCode().thatStartsWith("H");
 				criteria.withCode().thatContains("PLATONIC");
-				var fetchOptions = new c.ExperimentTypeFetchOptions();
+				var fetchOptions = new dtos.ExperimentTypeFetchOptions();
 				return facade.searchExperimentTypes(criteria, fetchOptions);
 			}
 
@@ -515,12 +515,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExperimentTypes() with vocabularies", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ExperimentTypeSearchCriteria();
+				var criteria = new dtos.ExperimentTypeSearchCriteria();
 				criteria.withCode().thatStartsWith("HT");
-				var fetchOptions = new c.ExperimentTypeFetchOptions();
+				var fetchOptions = new dtos.ExperimentTypeFetchOptions();
 				fetchOptions.withPropertyAssignments().withPropertyType().withVocabulary();
 				return facade.searchExperimentTypes(criteria, fetchOptions);
 			}
@@ -547,10 +547,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withPermId().thatEquals("20130415095748527-404");
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
 			}
@@ -582,10 +582,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() with codes", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withCodes().thatIn(["TEST-SAMPLE-2-PARENT"]);
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
 			}
@@ -600,9 +600,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() with paging and sorting", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.SampleSearchCriteria();
+			var criteria = new dtos.SampleSearchCriteria();
 			criteria.withOrOperator();
 			criteria.withCode().thatEquals("TEST-SAMPLE-1");
 			criteria.withCode().thatEquals("TEST-SAMPLE-2");
@@ -615,9 +615,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() with paging and sorting by code", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.SampleSearchCriteria();
+			var criteria = new dtos.SampleSearchCriteria();
 			criteria.withOrOperator();
 			criteria.withCode().thatContains("TEST-SAMPLE-1");
 
@@ -629,7 +629,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withoutSpace", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("SAMPLE");
 			var waitUntilIndexed = function(facade, samplePermId, timeout, action) {
 				if (timeout < 0) {
@@ -637,7 +637,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 				}
 				setTimeout(function() {
 					c.ok("Wait until " + samplePermId + " indexed. " + timeout);
-					var criteria = new c.SampleSearchCriteria();
+					var criteria = new dtos.SampleSearchCriteria();
 					criteria.withPermId().thatEquals(samplePermId);
 					facade.searchSamples(criteria, c.createSampleFetchOptions()).then(function(result) {
 						if (result.getTotalCount() == 0) {
@@ -650,16 +650,16 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			};
 
 			c.start();
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				c.ok("Login");
-				var creation = new c.SampleCreation();
-				creation.setTypeId(new c.EntityTypePermId("UNKNOWN"));
+				var creation = new dtos.SampleCreation();
+				creation.setTypeId(new dtos.EntityTypePermId("UNKNOWN"));
 				creation.setCode(code);
 				facade.createSamples([ creation ]).then(function(permIds) {
 					var permId = permIds[0];
 					c.ok("Shared sample created: " + permId);
 					waitUntilIndexed(facade, permId.getPermId(), 10000, function() {
-						var criteria = new c.SampleSearchCriteria();
+						var criteria = new dtos.SampleSearchCriteria();
 						criteria.withoutSpace();
 						facade.searchSamples(criteria, c.createSampleFetchOptions()).then(function(results) {
 							c.ok("Got results");
@@ -679,10 +679,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withoutExperiment", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withCode().thatStartsWith("TEST-SAMPLE");
 				criteria.withoutExperiment();
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
@@ -696,10 +696,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withExperiment", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withCode().thatStartsWith("TEST-SAMPLE");
 				criteria.withExperiment();
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
@@ -713,10 +713,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withoutContainer", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withCode().thatStartsWith("TEST-SAMPLE");
 				criteria.withoutContainer();
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
@@ -730,10 +730,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withoutContainer negated", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria().withAndOperator();
+				var criteria = new dtos.SampleSearchCriteria().withAndOperator();
 				criteria.withCode().thatStartsWith("TEST-SAMPLE");
 				criteria.withoutContainer();
 				criteria.withSubcriteria().negate().withCode().thatEndsWith("-1");
@@ -749,10 +749,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withContainer", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withCode().thatStartsWith("TEST-SAMPLE");
 				criteria.withContainer();
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
@@ -766,10 +766,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withChildren", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withChildren().withCode().thatContains("CHILD");
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
 			}
@@ -782,10 +782,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withParents", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withParents().withCode().thatContains("ARE");
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
 			}
@@ -798,12 +798,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() with sorting by identifier", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.SampleSearchCriteria();
+			var criteria = new dtos.SampleSearchCriteria();
 			criteria.withOrOperator();
-			criteria.withId().thatEquals(new c.SampleIdentifier("/PLATONIC/SCREENING-EXAMPLES/PLATE-1"));
-			criteria.withId().thatEquals(new c.SampleIdentifier("/TEST/TEST-SAMPLE-1"));
+			criteria.withId().thatEquals(new dtos.SampleIdentifier("/PLATONIC/SCREENING-EXAMPLES/PLATE-1"));
+			criteria.withId().thatEquals(new dtos.SampleIdentifier("/TEST/TEST-SAMPLE-1"));
 
 			var fo = c.createSampleFetchOptions();
 
@@ -813,12 +813,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() with sorting by type", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.SampleSearchCriteria();
+			var criteria = new dtos.SampleSearchCriteria();
 			criteria.withOrOperator();
-			criteria.withId().thatEquals(new c.SampleIdentifier("/PLATONIC/SCREENING-EXAMPLES/PLATE-1"));
-			criteria.withId().thatEquals(new c.SampleIdentifier("/TEST/TEST-SAMPLE-1"));
+			criteria.withId().thatEquals(new dtos.SampleIdentifier("/PLATONIC/SCREENING-EXAMPLES/PLATE-1"));
+			criteria.withId().thatEquals(new dtos.SampleIdentifier("/TEST/TEST-SAMPLE-1"));
 
 			var fo = c.createSampleFetchOptions();
 
@@ -828,10 +828,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withRegistrator withUserId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withRegistrator().withUserId().thatEquals("etlserver");
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
 			}
@@ -844,10 +844,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withModifier withUserId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withModifier().withUserId().thatEquals("etlserver");
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
 			}
@@ -860,10 +860,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withIdentifier", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withIdentifier().thatEquals("/PLATONIC/SCREENING-EXAMPLES/PLATE-1");
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
 			}
@@ -877,10 +877,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() with code that is less than", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withCode().thatIsLessThan("A1");
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
 			}
@@ -894,10 +894,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() with code that is less than or equal to", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withCode().thatIsLessThanOrEqualTo("PLATE-2:A1");
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
 			}
@@ -915,10 +915,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() with code that is greater than", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withCode().thatIsGreaterThan("TEST-SAMPLE-2-CHILD-2");
 				criteria.withCode().thatIsLessThan("V");
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
@@ -934,10 +934,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() with code that is greater than or equal to", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withCode().thatIsGreaterThanOrEqualTo("TEST-SAMPLE-2-CHILD-2");
 				criteria.withCode().thatIsLessThan("V");
 				return facade.searchSamples(criteria, c.createSampleFetchOptions());
@@ -953,10 +953,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() with nested logical operators", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleSearchCriteria().withAndOperator();
+				var criteria = new dtos.SampleSearchCriteria().withAndOperator();
 
 				var subCriteria1 = criteria.withSubcriteria().withOrOperator();
 				subCriteria1.withIdentifier().thatStartsWith("/PLATONIC/SCREENING-EXAMPLES/PLATE-1");
@@ -980,13 +980,13 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSampleTypes()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleTypeSearchCriteria();
+				var criteria = new dtos.SampleTypeSearchCriteria();
 				criteria.withCode().thatStartsWith("MA");
 
-				var fetchOptions = new c.SampleTypeFetchOptions();
+				var fetchOptions = new dtos.SampleTypeFetchOptions();
 
 				var assignmentFetchOptions = fetchOptions.withPropertyAssignments();
 				assignmentFetchOptions.withRegistrator();
@@ -1038,14 +1038,14 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSampleTypes() with and operator", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleTypeSearchCriteria();
+				var criteria = new dtos.SampleTypeSearchCriteria();
 				criteria.withAndOperator();
 				criteria.withCode().thatStartsWith("ILL");
 				criteria.withCode().thatEndsWith("LL");
-				var fetchOptions = new c.SampleTypeFetchOptions();
+				var fetchOptions = new dtos.SampleTypeFetchOptions();
 				return facade.searchSampleTypes(criteria, fetchOptions);
 			}
 
@@ -1058,14 +1058,14 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 
 
 		QUnit.test("searchSampleTypes() with or operator", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleTypeSearchCriteria();
+				var criteria = new dtos.SampleTypeSearchCriteria();
 				criteria.withOrOperator();
 				criteria.withCode().thatStartsWith("ILL");
 				criteria.withCode().thatEndsWith("LL");
-				var fetchOptions = new c.SampleTypeFetchOptions();
+				var fetchOptions = new dtos.SampleTypeFetchOptions();
 				return facade.searchSampleTypes(criteria, fetchOptions);
 			}
 
@@ -1078,12 +1078,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSampleTypes() withSemanticAnnotations", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleTypeSearchCriteria();
+				var criteria = new dtos.SampleTypeSearchCriteria();
 				criteria.withSemanticAnnotations().withPermId().thatEquals("ST_SIRNA_WELL");
-				var fetchOptions = new c.SampleTypeFetchOptions();
+				var fetchOptions = new dtos.SampleTypeFetchOptions();
 				return facade.searchSampleTypes(criteria, fetchOptions);
 			}
 
@@ -1096,12 +1096,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSampleTypes() withPropertyAssignments withSemanticAnnotations", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleTypeSearchCriteria();
+				var criteria = new dtos.SampleTypeSearchCriteria();
 				criteria.withPropertyAssignments().withSemanticAnnotations().withPermId().thatEquals("ST_ILLUMINA_FLOW_CELL_PT_CREATED_ON_CS");
-				var fetchOptions = new c.SampleTypeFetchOptions();
+				var fetchOptions = new dtos.SampleTypeFetchOptions();
 				return facade.searchSampleTypes(criteria, fetchOptions);
 			}
 
@@ -1114,12 +1114,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSampleTypes() withPropertyAssignments withPropertyType withSemanticAnnotations", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SampleTypeSearchCriteria();
+				var criteria = new dtos.SampleTypeSearchCriteria();
 				criteria.withPropertyAssignments().withPropertyType().withSemanticAnnotations().withPermId().thatEquals("PT_AGILENT_KIT");
-				var fetchOptions = new c.SampleTypeFetchOptions();
+				var fetchOptions = new dtos.SampleTypeFetchOptions();
 				return facade.searchSampleTypes(criteria, fetchOptions);
 			}
 
@@ -1132,10 +1132,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withPermId().thatEquals("20130415093804724-403");
 				return facade.searchDataSets(criteria, c.createDataSetFetchOptions());
 			}
@@ -1165,10 +1165,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() with codes", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withCodes().thatIn(["20130412142543232-197"]);
 				return facade.searchDataSets(criteria, c.createDataSetFetchOptions());
 			}
@@ -1183,9 +1183,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() with paging and sorting", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.DataSetSearchCriteria();
+			var criteria = new dtos.DataSetSearchCriteria();
 			criteria.withOrOperator();
 			criteria.withCode().thatEquals("20130412142205843-196");
 			criteria.withCode().thatEquals("20130412142543232-197");
@@ -1198,9 +1198,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() with sorting by property", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.DataSetSearchCriteria();
+			var criteria = new dtos.DataSetSearchCriteria();
 			criteria.withOrOperator();
 			criteria.withPermId().thatEquals("20130412142543232-197");
 			criteria.withPermId().thatEquals("20130412142205843-196");
@@ -1214,9 +1214,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() with sorting by type", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.DataSetSearchCriteria();
+			var criteria = new dtos.DataSetSearchCriteria();
 			criteria.withOrOperator();
 			criteria.withPermId().thatEquals("20130412142543232-197");
 			criteria.withPermId().thatEquals("20130412143121081-200");
@@ -1229,10 +1229,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withoutSample", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withCode().thatContains("-40");
 				criteria.withoutSample();
 				return facade.searchDataSets(criteria, c.createDataSetFetchOptions());
@@ -1246,10 +1246,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withSample", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withCode().thatContains("-40");
 				criteria.withSample();
 				return facade.searchDataSets(criteria, c.createDataSetFetchOptions());
@@ -1263,10 +1263,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withSample negated", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria().withAndOperator();
+				var criteria = new dtos.DataSetSearchCriteria().withAndOperator();
 				criteria.withCode().thatContains("-40");
 				criteria.withSample();
 				criteria.withSubcriteria().negate().withCode().thatEndsWith("8");
@@ -1281,10 +1281,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withSampleWithWildcardsEnabled", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch2 = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withCode().withWildcards().thatEquals("*-40?");
 				criteria.withSample();
 				return facade.searchDataSets(criteria, c.createDataSetFetchOptions());
@@ -1298,10 +1298,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withSampleWithWildcardsDisabled", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch1 = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withCode().withoutWildcards().thatEquals("*-40?");
 				criteria.withSample();
 				return facade.searchDataSets(criteria, c.createDataSetFetchOptions());
@@ -1315,10 +1315,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withoutExperiment", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withCode().thatContains("-40");
 				criteria.withoutExperiment();
 				return facade.searchDataSets(criteria, c.createDataSetFetchOptions());
@@ -1332,10 +1332,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withExperiment", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withCode().thatContains("-40");
 				criteria.withExperiment();
 				return facade.searchDataSets(criteria, c.createDataSetFetchOptions());
@@ -1349,10 +1349,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withChildren", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withChildren().withCode().thatEquals("20130415100238098-408");
 				return facade.searchDataSets(criteria, c.createDataSetFetchOptions());
 			}
@@ -1365,10 +1365,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withParents", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withParents().withCode().thatEquals("20130415100158230-407");
 				return facade.searchDataSets(criteria, c.createDataSetFetchOptions());
 			}
@@ -1381,10 +1381,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withContainer", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withContainer().withCode().thatEquals("20130412153119864-385");
 				return facade.searchDataSets(criteria, c.createDataSetFetchOptions());
 			}
@@ -1397,10 +1397,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withPhysicalData", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				var pdCriteria = criteria.withPhysicalData();
 				pdCriteria.withLocation().thatEquals('"1FD3FF61-1576-4908-AE3D-296E60B4CE06/2e/ac/5a/20130412153118625-384"');
 				pdCriteria.withStorageFormat().withCode().thatContains("PROPRIETARY");
@@ -1423,10 +1423,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withPhysicalData with archiving requested", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withCode().thatStartsWith("2013");
 				var pdCriteria = criteria.withPhysicalData();
 				pdCriteria.withArchivingRequested().thatEquals(true);
@@ -1442,10 +1442,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withLinkedData", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				var ldCriteria = criteria.withLinkedData();
 				ldCriteria.withExternalDms().withCode().thatEquals("DMS_1");
 
@@ -1460,10 +1460,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withRegistrator withUserId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withRegistrator().withUserId().thatEquals("selenium");
 				return facade.searchDataSets(criteria, c.createDataSetFetchOptions());
 			}
@@ -1476,10 +1476,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() withModifier withUserId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria();
+				var criteria = new dtos.DataSetSearchCriteria();
 				criteria.withModifier().withUserId().thatEquals("selenium");
 				return facade.searchDataSets(criteria, c.createDataSetFetchOptions());
 			}
@@ -1492,10 +1492,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSets() with nested logical operators", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetSearchCriteria().withAndOperator();
+				var criteria = new dtos.DataSetSearchCriteria().withAndOperator();
 
 				var subCriteria1 = criteria.withSubcriteria().withOrOperator();
 				subCriteria1.withCode().thatStartsWith("2016");
@@ -1521,12 +1521,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSetTypes()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetTypeSearchCriteria();
+				var criteria = new dtos.DataSetTypeSearchCriteria();
 				criteria.withCode().thatStartsWith("MA");
-				var fetchOptions = new c.DataSetTypeFetchOptions();
+				var fetchOptions = new dtos.DataSetTypeFetchOptions();
 				fetchOptions.withPropertyAssignments().sortBy().code().asc();
 				return facade.searchDataSetTypes(criteria, fetchOptions);
 			}
@@ -1553,14 +1553,14 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSetTypes() with and operator", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetTypeSearchCriteria();
+				var criteria = new dtos.DataSetTypeSearchCriteria();
 				criteria.withAndOperator();
 				criteria.withCode().thatStartsWith("T");
 				criteria.withCode().thatContains("V");
-				var fetchOptions = new c.DataSetTypeFetchOptions();
+				var fetchOptions = new dtos.DataSetTypeFetchOptions();
 				return facade.searchDataSetTypes(criteria, fetchOptions);
 			}
 
@@ -1572,14 +1572,14 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataSetTypes() with or operator", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetTypeSearchCriteria();
+				var criteria = new dtos.DataSetTypeSearchCriteria();
 				criteria.withOrOperator();
 				criteria.withCode().thatStartsWith("T");
 				criteria.withCode().thatContains("RV");
-				var fetchOptions = new c.DataSetTypeFetchOptions();
+				var fetchOptions = new dtos.DataSetTypeFetchOptions();
 				return facade.searchDataSetTypes(criteria, fetchOptions);
 			}
 
@@ -1592,10 +1592,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchMaterials()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.MaterialSearchCriteria();
+				var criteria = new dtos.MaterialSearchCriteria();
 				criteria.withCode().thatEquals("H2O");
 				return facade.searchMaterials(criteria, c.createMaterialFetchOptions());
 			}
@@ -1613,10 +1613,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchMaterials() with codes", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.MaterialSearchCriteria();
+				var criteria = new dtos.MaterialSearchCriteria();
 				criteria.withCodes().thatIn(["H2O"]);
 				return facade.searchMaterials(criteria, c.createMaterialFetchOptions());
 			}
@@ -1631,9 +1631,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchMaterials() with paging and sorting", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.MaterialSearchCriteria();
+			var criteria = new dtos.MaterialSearchCriteria();
 			criteria.withOrOperator();
 			criteria.withCode().thatEquals("ABC");
 			criteria.withCode().thatEquals("SIRNA-2");
@@ -1646,9 +1646,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchMaterials() with paging and sorting by code", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.MaterialSearchCriteria();
+			var criteria = new dtos.MaterialSearchCriteria();
 			criteria.withOrOperator();
 			criteria.withCode().thatContains("SIRNA");
 			criteria.withCode().thatContains("A-2");
@@ -1661,9 +1661,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchMaterials() with sorting by type", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var criteria = new c.MaterialSearchCriteria();
+			var criteria = new dtos.MaterialSearchCriteria();
 			criteria.withOrOperator();
 			criteria.withCode().thatEquals("ABC");
 			criteria.withCode().thatEquals("SIRNA-2");
@@ -1676,10 +1676,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchMaterials() withRegistrator withUserId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.MaterialSearchCriteria();
+				var criteria = new dtos.MaterialSearchCriteria();
 				criteria.withRegistrator().withUserId().thatEquals("etlserver");
 				return facade.searchMaterials(criteria, c.createMaterialFetchOptions());
 			}
@@ -1692,10 +1692,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchMaterials() withRegistrator withUserId negated", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.MaterialSearchCriteria().withAndOperator();
+				var criteria = new dtos.MaterialSearchCriteria().withAndOperator();
 				criteria.withRegistrator().withUserId().thatEquals("etlserver");
 				criteria.withSubcriteria().negate().withCode().thatEndsWith("4");
 				return facade.searchMaterials(criteria, c.createMaterialFetchOptions());
@@ -1709,10 +1709,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchMaterials() withModifier withUserId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.MaterialSearchCriteria();
+				var criteria = new dtos.MaterialSearchCriteria();
 				criteria.withModifier().withUserId().thatEquals("etlserver");
 				return facade.searchMaterials(criteria, c.createMaterialFetchOptions());
 			}
@@ -1726,12 +1726,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchMaterialTypes()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.MaterialTypeSearchCriteria();
+				var criteria = new dtos.MaterialTypeSearchCriteria();
 				criteria.withCode().thatStartsWith("G");
-				var fetchOptions = new c.MaterialTypeFetchOptions();
+				var fetchOptions = new dtos.MaterialTypeFetchOptions();
 				fetchOptions.withPropertyAssignments().sortBy().code().desc();
 				return facade.searchMaterialTypes(criteria, fetchOptions);
 			}
@@ -1758,14 +1758,14 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchMaterialTypes() with and operator", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.MaterialTypeSearchCriteria();
+				var criteria = new dtos.MaterialTypeSearchCriteria();
 				criteria.withAndOperator();
 				criteria.withCode().thatStartsWith("C");
 				criteria.withCode().thatContains("R");
-				var fetchOptions = new c.MaterialTypeFetchOptions();
+				var fetchOptions = new dtos.MaterialTypeFetchOptions();
 				return facade.searchMaterialTypes(criteria, fetchOptions);
 			}
 
@@ -1777,14 +1777,14 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchMaterialTypes() with or operator", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.MaterialTypeSearchCriteria();
+				var criteria = new dtos.MaterialTypeSearchCriteria();
 				criteria.withOrOperator();
 				criteria.withCode().thatStartsWith("C");
 				criteria.withCode().thatContains("IR");
-				var fetchOptions = new c.MaterialTypeFetchOptions();
+				var fetchOptions = new dtos.MaterialTypeFetchOptions();
 				return facade.searchMaterialTypes(criteria, fetchOptions);
 			}
 
@@ -1797,10 +1797,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchGlobally() withText thatContains", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.GlobalSearchCriteria();
+				var criteria = new dtos.GlobalSearchCriteria();
 				criteria.withOrOperator();
 				criteria.withText().thatContains("20130412150049446-204 20130412140147735-20 20130417094936021-428 H2O");
 				var fo = c.createGlobalSearchObjectFetchOptions();
@@ -1896,10 +1896,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchGlobally() withText thatContainsExactly", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.GlobalSearchCriteria();
+				var criteria = new dtos.GlobalSearchCriteria();
 				criteria.withOrOperator();
 				criteria.withText().thatContainsExactly("407 description");
 				var fo = c.createGlobalSearchObjectFetchOptions();
@@ -1927,10 +1927,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchGlobally() withObjectKind thatIn", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.GlobalSearchCriteria();
+				var criteria = new dtos.GlobalSearchCriteria();
 				criteria.withOrOperator();
 				criteria.withText().thatContains("20130412150049446-204 20130412140147735-20 20130417094936021-428 H2O");
 				criteria.withObjectKind().thatIn([ "EXPERIMENT" ]);
@@ -1971,10 +1971,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchObjectKindModifications()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ObjectKindModificationSearchCriteria();
+				var criteria = new dtos.ObjectKindModificationSearchCriteria();
 				criteria.withObjectKind().thatIn([ "SAMPLE", "EXPERIMENT" ]);
 				criteria.withOperationKind().thatIn([ "CREATE_OR_DELETE" ]);
 				return facade.searchObjectKindModifications(criteria, c.createObjectKindModificationFetchOptions());
@@ -1996,12 +1996,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchPlugins()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.PluginSearchCriteria();
+				var criteria = new dtos.PluginSearchCriteria();
 				criteria.withName().thatContains("Has");
-				criteria.withPluginType().thatEquals(c.PluginType.ENTITY_VALIDATION);
+				criteria.withPluginType().thatEquals(dtos.PluginType.ENTITY_VALIDATION);
 				var fo = c.createPluginFetchOptions();
 				fo.withScript();
 				fo.sortBy().name().desc();
@@ -2013,8 +2013,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 				var plugin = plugins[0];
 				c.assertEqual(plugin.getName(), "Has_Parents", "Name");
 				c.assertEqual(plugin.getDescription(), "Check if the Entity has a parent", "Description");
-				c.assertEqual(plugin.getPluginKind(), c.PluginKind.JYTHON, "Plugin kind");
-				c.assertEqual(plugin.getPluginType(), c.PluginType.ENTITY_VALIDATION, "Plugin type");
+				c.assertEqual(plugin.getPluginKind(), dtos.PluginKind.JYTHON, "Plugin kind");
+				c.assertEqual(plugin.getPluginType(), dtos.PluginType.ENTITY_VALIDATION, "Plugin type");
 				c.assertEqual(plugin.getFetchOptions().hasScript(), true, "Has script");
 				c.assertEqual(plugin.getScript(), 'def validate(entity, isNew):\n'
 						+ '  parents = entity.entityPE().parents\n'
@@ -2028,10 +2028,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchVocabularies()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.VocabularySearchCriteria();
+				var criteria = new dtos.VocabularySearchCriteria();
 				criteria.withCode().thatEquals("$STORAGE_FORMAT");
 				return facade.searchVocabularies(criteria, c.createVocabularyFetchOptions());
 			}
@@ -2049,10 +2049,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchVocabularies() with codes", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.VocabularySearchCriteria();
+				var criteria = new dtos.VocabularySearchCriteria();
 				criteria.withCodes().thatIn(["END_TYPE", "KIT", "BLABLA"]);
 				return facade.searchVocabularies(criteria, c.createVocabularyFetchOptions());
 			}
@@ -2070,10 +2070,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchVocabularies() with and operator", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.VocabularySearchCriteria();
+				var criteria = new dtos.VocabularySearchCriteria();
 				criteria.withAndOperator();
 				criteria.withCode().thatEndsWith("KIT");
 				criteria.withCode().thatContains("LE");
@@ -2093,10 +2093,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchVocabularies() with or operator", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.VocabularySearchCriteria();
+				var criteria = new dtos.VocabularySearchCriteria();
 				criteria.withOrOperator();
 				criteria.withCode().thatEndsWith("KIT");
 				criteria.withCode().thatContains("LE");
@@ -2119,10 +2119,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchVocabularyTerms()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.VocabularyTermSearchCriteria();
+				var criteria = new dtos.VocabularyTermSearchCriteria();
 				criteria.withCode().thatEquals("BDS_DIRECTORY");
 				return facade.searchVocabularyTerms(criteria, c.createVocabularyTermFetchOptions());
 			}
@@ -2140,10 +2140,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchVocabularyTerms() with codes", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.VocabularyTermSearchCriteria();
+				var criteria = new dtos.VocabularyTermSearchCriteria();
 				criteria.withCodes().thatIn(["BDS_DIRECTORY"]);
 				return facade.searchVocabularyTerms(criteria, c.createVocabularyTermFetchOptions());
 			}
@@ -2161,10 +2161,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExternalDms()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ExternalDmsSearchCriteria();
+				var criteria = new dtos.as.dto.externaldms.search.ExternalDmsSearchCriteria();
 				criteria.withCode().thatEquals("DMS_2");
 				return facade.searchExternalDataManagementSystems(criteria, c.createExternalDmsFetchOptions());
 			}
@@ -2184,10 +2184,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchExternalDms() with codes", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.ExternalDmsSearchCriteria();
+				var criteria = new dtos.as.dto.externaldms.search.ExternalDmsSearchCriteria();
 				criteria.withCodes().thatIn(["DMS_2"]);
 				return facade.searchExternalDataManagementSystems(criteria, c.createExternalDmsFetchOptions());
 			}
@@ -2207,10 +2207,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchTags()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.TagSearchCriteria();
+				var criteria = new dtos.TagSearchCriteria();
 				criteria.withCode().thatEquals("JS_TEST_METAPROJECT");
 				return facade.searchTags(criteria, c.createTagFetchOptions());
 			}
@@ -2226,10 +2226,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchTags() with codes", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.TagSearchCriteria();
+				var criteria = new dtos.TagSearchCriteria();
 				criteria.withCodes().thatIn(["JS_TEST_METAPROJECT"]);
 				return facade.searchTags(criteria, c.createTagFetchOptions());
 			}
@@ -2245,12 +2245,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchAuthorizationGroups()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code;
 
 			var fSearch = function(facade) {
 				return c.createAuthorizationGroup(facade).then(function(permId) {
-					var criteria = new c.AuthorizationGroupSearchCriteria();
+					var criteria = new dtos.AuthorizationGroupSearchCriteria();
 					code = permId.getPermId();
 					criteria.withCode().thatEquals(code);
 					return facade.searchAuthorizationGroups(criteria, c.createAuthorizationGroupFetchOptions());
@@ -2270,12 +2270,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchAuthorizationGroups() with codes", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code;
 
 			var fSearch = function(facade) {
 				return c.createAuthorizationGroup(facade).then(function(permId) {
-					var criteria = new c.AuthorizationGroupSearchCriteria();
+					var criteria = new dtos.AuthorizationGroupSearchCriteria();
 					code = permId.getPermId();
 					criteria.withCodes().thatIn([code]);
 					return facade.searchAuthorizationGroups(criteria, c.createAuthorizationGroupFetchOptions());
@@ -2295,11 +2295,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchAuthorizationGroups() existing with role assigments", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code;
 
 			var fSearch = function(facade) {
-				var criteria = new c.AuthorizationGroupSearchCriteria();
+				var criteria = new dtos.AuthorizationGroupSearchCriteria();
 				criteria.withCode().thatEquals("TEST-GROUP");
 				return facade.searchAuthorizationGroups(criteria, c.createAuthorizationGroupFetchOptions());
 			}
@@ -2334,11 +2334,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchRoleAssignments()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code;
 
 			var fSearch = function(facade) {
-				var criteria = new c.RoleAssignmentSearchCriteria();
+				var criteria = new dtos.RoleAssignmentSearchCriteria();
 				criteria.withSpace().withCode().thatEquals("TEST");
 				criteria.withUser().withUserId().thatEquals("observer");
 				return facade.searchRoleAssignments(criteria, c.createRoleAssignmentFetchOptions());
@@ -2356,17 +2356,17 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchRoleAssignments() with group with user", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code;
 
 			var fSearch = function(facade) {
 				return c.createAuthorizationGroup(facade).then(function(permId) {
-					var creation = new c.RoleAssignmentCreation();
-					creation.setRole(c.Role.POWER_USER);
+					var creation = new dtos.RoleAssignmentCreation();
+					creation.setRole(dtos.Role.POWER_USER);
 					creation.setAuthorizationGroupId(permId);
-					creation.setSpaceId(new c.SpacePermId("TEST"));
+					creation.setSpaceId(new dtos.SpacePermId("TEST"));
 					return facade.createRoleAssignments([ creation ]).then(function(permIds) {
-						var criteria = new c.RoleAssignmentSearchCriteria();
+						var criteria = new dtos.RoleAssignmentSearchCriteria();
 						criteria.withSpace().withCode().thatEquals("TEST");
 						criteria.withAuthorizationGroup().withUser().withUserId().thatEquals("power_user");
 						var fo = c.createRoleAssignmentFetchOptions();
@@ -2388,11 +2388,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchPersons()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code;
 
 			var fSearch = function(facade) {
-				var criteria = new c.PersonSearchCriteria();
+				var criteria = new dtos.PersonSearchCriteria();
 				criteria.withUserId().thatContains("bser");
 				return facade.searchPersons(criteria, c.createPersonFetchOptions());
 			}
@@ -2414,7 +2414,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchOperationExecutions()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			c.start();
 
@@ -2423,11 +2423,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			c.start = function() {
 			}
 
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				$.when(c.createOperationExecution(facade)).then(function(permId) {
 					var fSearch = function(facade) {
-						var criteria = new c.OperationExecutionSearchCriteria();
-						return facade.searchOperationExecutions(criteria, new c.OperationExecutionFetchOptions());
+						var criteria = new dtos.OperationExecutionSearchCriteria();
+						return facade.searchOperationExecutions(criteria, new dtos.OperationExecutionFetchOptions());
 					}
 
 					var fCheck = function(facade, executions) {
@@ -2452,10 +2452,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataStores() withEmptyCriteria", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataStoreSearchCriteria();
+				var criteria = new dtos.DataStoreSearchCriteria();
 				return facade.searchDataStores(criteria, c.createDataStoreFetchOptions());
 			}
 
@@ -2468,10 +2468,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataStores() withCodeThatEquals", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataStoreSearchCriteria();
+				var criteria = new dtos.DataStoreSearchCriteria();
 				criteria.withCode().thatEquals("DSS1");
 				return facade.searchDataStores(criteria, c.createDataStoreFetchOptions());
 			}
@@ -2486,10 +2486,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDataStores() with codes", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataStoreSearchCriteria();
+				var criteria = new dtos.DataStoreSearchCriteria();
 				criteria.withCodes().thatIn(["DSS1"]);
 				return facade.searchDataStores(criteria, c.createDataStoreFetchOptions());
 			}
@@ -2504,10 +2504,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("dataStoreFacade.searchFiles() atNonexistentDataStore", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				return facade.getDataStoreFacade("I_DONT_EXIST", "ME_NEITHER").searchFiles(new c.DataSetFileSearchCriteria(), c.createDataSetFileFetchOptions());
+				return facade.getDataStoreFacade("I_DONT_EXIST", "ME_NEITHER").searchFiles(new dtos.DataSetFileSearchCriteria(), c.createDataSetFileFetchOptions());
 			}
 
 			var fCheckError = function(error) {
@@ -2518,10 +2518,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("dataStoreFacade.searchFiles() atOneChosenDataStore", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetFileSearchCriteria();
+				var criteria = new dtos.DataSetFileSearchCriteria();
 				var dataSetCriteria = criteria.withDataSet();
 				dataSetCriteria.withOrOperator();
 
@@ -2546,10 +2546,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("dataStoreFacade.searchFiles() atMultipleChosenDataStores", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetFileSearchCriteria();
+				var criteria = new dtos.DataSetFileSearchCriteria();
 				var dataSetCriteria = criteria.withDataSet();
 				dataSetCriteria.withOrOperator();
 
@@ -2580,10 +2580,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("dataStoreFacade.searchFiles() atAllAvailableDataStores", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.DataSetFileSearchCriteria();
+				var criteria = new dtos.DataSetFileSearchCriteria();
 				var dataSetCriteria = criteria.withDataSet();
 				dataSetCriteria.withOrOperator();
 
@@ -2614,11 +2614,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSemanticAnnotations() withPermId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
 				return c.createSemanticAnnotation(facade).then(function(permId) {
-					var criteria = new c.SemanticAnnotationSearchCriteria();
+					var criteria = new dtos.SemanticAnnotationSearchCriteria();
 					criteria.withPermId().thatEquals(permId.getPermId());
 					return facade.searchSemanticAnnotations(criteria, c.createSemanticAnnotationFetchOptions());
 				});
@@ -2632,7 +2632,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSemanticAnnotations() withPredicate and withDescriptor", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var expectedAnnotation = null;
 
 			var fSearch = function(facade) {
@@ -2640,7 +2640,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 					return c.findSemanticAnnotation(facade, permId);
 				}).then(function(annotation) {
 					expectedAnnotation = annotation;
-					var criteria = new c.SemanticAnnotationSearchCriteria();
+					var criteria = new dtos.SemanticAnnotationSearchCriteria();
 					criteria.withPredicateOntologyId().thatEquals(annotation.getPredicateOntologyId());
 					return facade.searchSemanticAnnotations(criteria, c.createSemanticAnnotationFetchOptions());
 				});
@@ -2661,11 +2661,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSemanticAnnotations() withEntityTypeId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SemanticAnnotationSearchCriteria();
-				criteria.withEntityType().withId().thatEquals(new c.EntityTypePermId("PLATE", "SAMPLE"));
+				var criteria = new dtos.SemanticAnnotationSearchCriteria();
+				criteria.withEntityType().withId().thatEquals(new dtos.EntityTypePermId("PLATE", "SAMPLE"));
 				return facade.searchSemanticAnnotations(criteria, c.createSemanticAnnotationFetchOptions());
 			}
 
@@ -2679,10 +2679,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSemanticAnnotations() withEntityTypeCodes", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SemanticAnnotationSearchCriteria();
+				var criteria = new dtos.SemanticAnnotationSearchCriteria();
 				criteria.withEntityType().withCodes().thatIn(["PLATE"]);
 				return facade.searchSemanticAnnotations(criteria, c.createSemanticAnnotationFetchOptions());
 			}
@@ -2697,11 +2697,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSemanticAnnotations() withPropertyTypeId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SemanticAnnotationSearchCriteria();
-				criteria.withPropertyType().withId().thatEquals(new c.PropertyTypePermId("DESCRIPTION"));
+				var criteria = new dtos.SemanticAnnotationSearchCriteria();
+				criteria.withPropertyType().withId().thatEquals(new dtos.PropertyTypePermId("DESCRIPTION"));
 				return facade.searchSemanticAnnotations(criteria, c.createSemanticAnnotationFetchOptions());
 			}
 
@@ -2715,11 +2715,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSemanticAnnotations() withPropertyAssignmentId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.SemanticAnnotationSearchCriteria();
-				criteria.withPropertyAssignment().withId().thatEquals(new c.PropertyAssignmentPermId(new c.EntityTypePermId("LIBRARY", "SAMPLE"), new c.PropertyTypePermId("PREPARED_BY")));
+				var criteria = new dtos.SemanticAnnotationSearchCriteria();
+				criteria.withPropertyAssignment().withId().thatEquals(new dtos.PropertyAssignmentPermId(new dtos.EntityTypePermId("LIBRARY", "SAMPLE"), new dtos.PropertyTypePermId("PREPARED_BY")));
 				return facade.searchSemanticAnnotations(criteria, c.createSemanticAnnotationFetchOptions());
 			}
 
@@ -2735,11 +2735,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchPropertyTypes() withPermId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.PropertyTypeSearchCriteria();
-				criteria.withId().thatEquals(new c.PropertyTypePermId("TOTAL_READS"));
+				var criteria = new dtos.PropertyTypeSearchCriteria();
+				criteria.withId().thatEquals(new dtos.PropertyTypePermId("TOTAL_READS"));
 				return facade.searchPropertyTypes(criteria, c.createPropertyTypeFetchOptions());
 			}
 
@@ -2752,11 +2752,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchPropertyAssignments() withPermId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.PropertyAssignmentSearchCriteria();
-				criteria.withId().thatEquals(new c.PropertyAssignmentPermId(new c.EntityTypePermId("LIBRARY", "SAMPLE"), new c.PropertyTypePermId("EXTERNAL_SAMPLE_NAME")));
+				var criteria = new dtos.PropertyAssignmentSearchCriteria();
+				criteria.withId().thatEquals(new dtos.PropertyAssignmentPermId(new dtos.EntityTypePermId("LIBRARY", "SAMPLE"), new dtos.PropertyTypePermId("EXTERNAL_SAMPLE_NAME")));
 				return facade.searchPropertyAssignments(criteria, c.createPropertyAssignmentFetchOptions());
 			}
 
@@ -2770,16 +2770,16 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchDeletions()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
 				return c.createSample(facade).then(function(permId) {
-					var options = new c.SampleDeletionOptions();
+					var options = new dtos.SampleDeletionOptions();
 					options.setReason("test reason");
 					return facade.deleteSamples([ permId ], options).then(function(deletionId) {
-						var criteria = new c.DeletionSearchCriteria();
+						var criteria = new dtos.DeletionSearchCriteria();
 						criteria.withId().thatEquals(deletionId);
-						var fetchOptions = new c.DeletionFetchOptions();
+						var fetchOptions = new dtos.DeletionFetchOptions();
 						return facade.searchDeletions(criteria, fetchOptions);
 					});
 				});
@@ -2796,11 +2796,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchEvents()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-                var criteria = new c.EventSearchCriteria();
-                var fetchOptions = new c.EventFetchOptions();
+                var criteria = new dtos.EventSearchCriteria();
+                var fetchOptions = new dtos.EventFetchOptions();
                 return facade.searchEvents(criteria, fetchOptions);
 			}
 
@@ -2812,12 +2812,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
         QUnit.test("searchEvents() withEventType", function(assert) {
-            var c = new common(assert, openbis);
+            var c = new common(assert, dtos);
 
             var fSearch = function(facade) {
-                var criteria = new c.EventSearchCriteria();
-                criteria.withEventType().thatEquals(c.EventType.FREEZING);
-                var fetchOptions = new c.EventFetchOptions();
+                var criteria = new dtos.EventSearchCriteria();
+                criteria.withEventType().thatEquals(dtos.EventType.FREEZING);
+                var fetchOptions = new dtos.EventFetchOptions();
                 fetchOptions.withRegistrator();
                 return facade.searchEvents(criteria, fetchOptions);
             }
@@ -2825,8 +2825,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
             var fCheck = function(facade, events) {
                 c.assertEqual(events.length, 1);
 
-                c.assertEqual(events[0].getEventType(), c.EventType.FREEZING, "Event Type");
-                c.assertEqual(events[0].getEntityType(), c.EntityType.EXPERIMENT, "Entity Type");
+                c.assertEqual(events[0].getEventType(), dtos.EventType.FREEZING, "Event Type");
+                c.assertEqual(events[0].getEntityType(), dtos.EntityType.EXPERIMENT, "Entity Type");
                 c.assertEqual(events[0].getIdentifier(), "/EVENT_TEST_SPACE_A/EVENT_TEST_PROJECT_A/EVENT_TEST_EXPERIMENT_A", "Identifier");
                 c.assertEqual(events[0].getReason(), "[\"freeze\"]", "Reason");
                 c.assertEqual(events[0].getRegistrator().getUserId(), "openbis_test_js", "Registrator");
@@ -2837,12 +2837,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
         });
 
         QUnit.test("searchEvents() withEntityType", function(assert) {
-            var c = new common(assert, openbis);
+            var c = new common(assert, dtos);
 
             var fSearch = function(facade) {
-                var criteria = new c.EventSearchCriteria();
-                criteria.withEntityType().thatEquals(c.EntityType.EXPERIMENT);
-                var fetchOptions = new c.EventFetchOptions();
+                var criteria = new dtos.EventSearchCriteria();
+                criteria.withEntityType().thatEquals(dtos.EntityType.EXPERIMENT);
+                var fetchOptions = new dtos.EventFetchOptions();
                 fetchOptions.withRegistrator();
                 fetchOptions.sortBy().id().desc();
                 return facade.searchEvents(criteria, fetchOptions);
@@ -2851,15 +2851,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
             var fCheck = function(facade, events) {
                 c.assertEqual(events.length, 3);
 
-                c.assertEqual(events[0].getEventType(), c.EventType.FREEZING, "Event Type");
-                c.assertEqual(events[0].getEntityType(), c.EntityType.EXPERIMENT, "Entity Type");
+                c.assertEqual(events[0].getEventType(), dtos.EventType.FREEZING, "Event Type");
+                c.assertEqual(events[0].getEntityType(), dtos.EntityType.EXPERIMENT, "Entity Type");
                 c.assertEqual(events[0].getIdentifier(), "/EVENT_TEST_SPACE_A/EVENT_TEST_PROJECT_A/EVENT_TEST_EXPERIMENT_A", "Identifier");
                 c.assertEqual(events[0].getReason(), "[\"freeze\"]", "Reason");
                 c.assertEqual(events[0].getRegistrator().getUserId(), "openbis_test_js", "Registrator");
                 c.assertDate(events[0].getRegistrationDate(), "Registration date", 2021, 5, 14, 10, 10);
 
-                c.assertEqual(events[1].getEventType(), c.EventType.DELETION, "Event Type");
-                c.assertEqual(events[1].getEntityType(), c.EntityType.EXPERIMENT, "Entity Type");
+                c.assertEqual(events[1].getEventType(), dtos.EventType.DELETION, "Event Type");
+                c.assertEqual(events[1].getEntityType(), dtos.EntityType.EXPERIMENT, "Entity Type");
                 c.assertEqual(events[1].getEntitySpace(), "EVENT_TEST_SPACE_B", "Entity Space");
                 c.assertEqual(events[1].getEntityProject(), "/EVENT_TEST_SPACE_B/EVENT_TEST_PROJECT_B", "Entity Project");
                 c.assertEqual(events[1].getEntityProjectId().getPermId(), "20210514121033383-440", "Entity Project Id");
@@ -2871,8 +2871,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
                 c.assertEqual(events[1].getRegistrator().getUserId(), "admin", "Registrator");
                 c.assertDate(events[1].getRegistrationDate(), "Registration date", 2021, 5, 14, 10, 10);
 
-                c.assertEqual(events[2].getEventType(), c.EventType.DELETION, "Event Type");
-                c.assertEqual(events[2].getEntityType(), c.EntityType.EXPERIMENT, "Entity Type");
+                c.assertEqual(events[2].getEventType(), dtos.EventType.DELETION, "Event Type");
+                c.assertEqual(events[2].getEntityType(), dtos.EntityType.EXPERIMENT, "Entity Type");
                 c.assertEqual(events[2].getEntitySpace(), "EVENT_TEST_SPACE_B", "Entity Space");
                 c.assertEqual(events[2].getEntityProject(), "/EVENT_TEST_SPACE_B/EVENT_TEST_PROJECT_B", "Entity Project");
                 c.assertEqual(events[2].getEntityProjectId().getPermId(), "20210514121033383-440", "Entity Project Id");
@@ -2889,20 +2889,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
         });
 
         QUnit.test("searchEvents() withEntitySpace", function(assert) {
-            var c = new common(assert, openbis);
+            var c = new common(assert, dtos);
 
             var fSearch = function(facade) {
-                var criteria = new c.EventSearchCriteria();
+                var criteria = new dtos.EventSearchCriteria();
                 criteria.withEntitySpace().thatEquals("EVENT_TEST_SPACE_C");
-                var fetchOptions = new c.EventFetchOptions();
+                var fetchOptions = new dtos.EventFetchOptions();
                 return facade.searchEvents(criteria, fetchOptions);
             }
 
             var fCheck = function(facade, events) {
                 c.assertEqual(events.length, 1);
 
-                c.assertEqual(events[0].getEventType(), c.EventType.DELETION, "Event Type");
-                c.assertEqual(events[0].getEntityType(), c.EntityType.PROJECT, "Entity Type");
+                c.assertEqual(events[0].getEventType(), dtos.EventType.DELETION, "Event Type");
+                c.assertEqual(events[0].getEntityType(), dtos.EntityType.PROJECT, "Entity Type");
                 c.assertEqual(events[0].getEntitySpace(), "EVENT_TEST_SPACE_C", "Entity Space");
                 c.assertEqual(events[0].getEntitySpaceId().getTechId(), 6, "Entity Space Id");
                 c.assertEqual(events[0].getEntityProject(), "/EVENT_TEST_SPACE_C/EVENT_TEST_PROJECT_C", "Entity Project");
@@ -2914,20 +2914,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
         });
 
         QUnit.test("searchEvents() withEntitySpaceId", function(assert) {
-            var c = new common(assert, openbis);
+            var c = new common(assert, dtos);
 
             var fSearch = function(facade) {
-                var criteria = new c.EventSearchCriteria();
+                var criteria = new dtos.EventSearchCriteria();
                 criteria.withEntitySpaceId().thatEquals("6");
-                var fetchOptions = new c.EventFetchOptions();
+                var fetchOptions = new dtos.EventFetchOptions();
                 return facade.searchEvents(criteria, fetchOptions);
             }
 
             var fCheck = function(facade, events) {
                 c.assertEqual(events.length, 1);
 
-                c.assertEqual(events[0].getEventType(), c.EventType.DELETION, "Event Type");
-                c.assertEqual(events[0].getEntityType(), c.EntityType.PROJECT, "Entity Type");
+                c.assertEqual(events[0].getEventType(), dtos.EventType.DELETION, "Event Type");
+                c.assertEqual(events[0].getEntityType(), dtos.EntityType.PROJECT, "Entity Type");
                 c.assertEqual(events[0].getEntitySpace(), "EVENT_TEST_SPACE_C", "Entity Space");
                 c.assertEqual(events[0].getEntitySpaceId().getTechId(), 6, "Entity Space Id");
                 c.assertEqual(events[0].getEntityProject(), "/EVENT_TEST_SPACE_C/EVENT_TEST_PROJECT_C", "Entity Project");
@@ -2939,12 +2939,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
         });
 
         QUnit.test("searchEvents() withEntityProject", function(assert) {
-            var c = new common(assert, openbis);
+            var c = new common(assert, dtos);
 
             var fSearch = function(facade) {
-                var criteria = new c.EventSearchCriteria();
+                var criteria = new dtos.EventSearchCriteria();
                 criteria.withEntityProject().thatEquals("/EVENT_TEST_SPACE_B/EVENT_TEST_PROJECT_B");
-                var fetchOptions = new c.EventFetchOptions();
+                var fetchOptions = new dtos.EventFetchOptions();
                 fetchOptions.sortBy().identifier();
                 return facade.searchEvents(criteria, fetchOptions);
             }
@@ -2952,22 +2952,22 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
             var fCheck = function(facade, events) {
                 c.assertEqual(events.length, 3);
 
-                c.assertEqual(events[0].getEventType(), c.EventType.DELETION, "Event Type");
-                c.assertEqual(events[0].getEntityType(), c.EntityType.PROJECT, "Entity Type");
+                c.assertEqual(events[0].getEventType(), dtos.EventType.DELETION, "Event Type");
+                c.assertEqual(events[0].getEntityType(), dtos.EntityType.PROJECT, "Entity Type");
                 c.assertEqual(events[0].getEntitySpace(), "EVENT_TEST_SPACE_B", "Entity Space");
                 c.assertEqual(events[0].getEntityProject(), "/EVENT_TEST_SPACE_B/EVENT_TEST_PROJECT_B", "Entity Project");
                 c.assertEqual(events[0].getEntityProjectId().getPermId(), "20210514121033383-440", "Entity Project Id");
                 c.assertEqual(events[0].getIdentifier(), "20210514121033383-440", "Identifier");
 
-                c.assertEqual(events[1].getEventType(), c.EventType.DELETION, "Event Type");
-                c.assertEqual(events[1].getEntityType(), c.EntityType.EXPERIMENT, "Entity Type");
+                c.assertEqual(events[1].getEventType(), dtos.EventType.DELETION, "Event Type");
+                c.assertEqual(events[1].getEntityType(), dtos.EntityType.EXPERIMENT, "Entity Type");
                 c.assertEqual(events[1].getEntitySpace(), "EVENT_TEST_SPACE_B", "Entity Space");
                 c.assertEqual(events[1].getEntityProject(), "/EVENT_TEST_SPACE_B/EVENT_TEST_PROJECT_B", "Entity Project");
                 c.assertEqual(events[1].getEntityProjectId().getPermId(), "20210514121033383-440", "Entity Project Id");
                 c.assertEqual(events[1].getIdentifier(), "20210514121033530-443", "Identifier");
 
-                c.assertEqual(events[2].getEventType(), c.EventType.DELETION, "Event Type");
-                c.assertEqual(events[2].getEntityType(), c.EntityType.EXPERIMENT, "Entity Type");
+                c.assertEqual(events[2].getEventType(), dtos.EventType.DELETION, "Event Type");
+                c.assertEqual(events[2].getEntityType(), dtos.EntityType.EXPERIMENT, "Entity Type");
                 c.assertEqual(events[2].getEntitySpace(), "EVENT_TEST_SPACE_B", "Entity Space");
                 c.assertEqual(events[2].getEntityProject(), "/EVENT_TEST_SPACE_B/EVENT_TEST_PROJECT_B", "Entity Project");
                 c.assertEqual(events[2].getEntityProjectId().getPermId(), "20210514121033383-440", "Entity Project Id");
@@ -2978,20 +2978,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
         });
 
         QUnit.test("searchEvents() withEntityProjectId", function(assert) {
-            var c = new common(assert, openbis);
+            var c = new common(assert, dtos);
 
             var fSearch = function(facade) {
-                var criteria = new c.EventSearchCriteria();
+                var criteria = new dtos.EventSearchCriteria();
                 criteria.withEntityProjectId().thatEquals("20210514121033383-441");
-                var fetchOptions = new c.EventFetchOptions();
+                var fetchOptions = new dtos.EventFetchOptions();
                 return facade.searchEvents(criteria, fetchOptions);
             }
 
             var fCheck = function(facade, events) {
                 c.assertEqual(events.length, 1);
 
-                c.assertEqual(events[0].getEventType(), c.EventType.DELETION, "Event Type");
-                c.assertEqual(events[0].getEntityType(), c.EntityType.PROJECT, "Entity Type");
+                c.assertEqual(events[0].getEventType(), dtos.EventType.DELETION, "Event Type");
+                c.assertEqual(events[0].getEntityType(), dtos.EntityType.PROJECT, "Entity Type");
                 c.assertEqual(events[0].getEntitySpace(), "EVENT_TEST_SPACE_C", "Entity Space");
                 c.assertEqual(events[0].getEntitySpaceId().getTechId(), 6, "Entity Space Id");
                 c.assertEqual(events[0].getEntityProject(), "/EVENT_TEST_SPACE_C/EVENT_TEST_PROJECT_C", "Entity Project");
@@ -3003,12 +3003,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
         });
 
         QUnit.test("searchEvents() withEntityRegistrator", function(assert) {
-            var c = new common(assert, openbis);
+            var c = new common(assert, dtos);
 
             var fSearch = function(facade) {
-                var criteria = new c.EventSearchCriteria();
+                var criteria = new dtos.EventSearchCriteria();
                 criteria.withEntityRegistrator().thatEquals("openbis_test_js");
-                var fetchOptions = new c.EventFetchOptions();
+                var fetchOptions = new dtos.EventFetchOptions();
                 fetchOptions.sortBy().id();
                 return facade.searchEvents(criteria, fetchOptions);
             }
@@ -3016,13 +3016,13 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
             var fCheck = function(facade, events) {
                 c.assertEqual(events.length, 2);
 
-                c.assertEqual(events[0].getEventType(), c.EventType.DELETION, "Event Type");
-                c.assertEqual(events[0].getEntityType(), c.EntityType.EXPERIMENT, "Entity Type");
+                c.assertEqual(events[0].getEventType(), dtos.EventType.DELETION, "Event Type");
+                c.assertEqual(events[0].getEntityType(), dtos.EntityType.EXPERIMENT, "Entity Type");
                 c.assertEqual(events[0].getEntityRegistrator(), "openbis_test_js", "Entity Registrator");
                 c.assertEqual(events[0].getIdentifier(), "20210514121033530-444", "Identifier");
 
-                c.assertEqual(events[1].getEventType(), c.EventType.DELETION, "Event Type");
-                c.assertEqual(events[1].getEntityType(), c.EntityType.EXPERIMENT, "Entity Type");
+                c.assertEqual(events[1].getEventType(), dtos.EventType.DELETION, "Event Type");
+                c.assertEqual(events[1].getEntityType(), dtos.EntityType.EXPERIMENT, "Entity Type");
                 c.assertEqual(events[1].getEntityRegistrator(), "openbis_test_js", "Entity Registrator");
                 c.assertEqual(events[1].getIdentifier(), "20210514121033530-443", "Identifier");
             }
@@ -3031,20 +3031,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
         });
 
         QUnit.test("searchEvents() withEntityRegistrationDate", function(assert) {
-            var c = new common(assert, openbis);
+            var c = new common(assert, dtos);
 
             var fSearch = function(facade) {
-                var criteria = new c.EventSearchCriteria();
+                var criteria = new dtos.EventSearchCriteria();
                 criteria.withEntityRegistrationDate().thatEquals("2021-05-13");
-                var fetchOptions = new c.EventFetchOptions();
+                var fetchOptions = new dtos.EventFetchOptions();
                 return facade.searchEvents(criteria, fetchOptions);
             }
 
             var fCheck = function(facade, events) {
                 c.assertEqual(events.length, 1);
 
-                c.assertEqual(events[0].getEventType(), c.EventType.DELETION, "Event Type");
-                c.assertEqual(events[0].getEntityType(), c.EntityType.PROJECT, "Entity Type");
+                c.assertEqual(events[0].getEventType(), dtos.EventType.DELETION, "Event Type");
+                c.assertEqual(events[0].getEntityType(), dtos.EntityType.PROJECT, "Entity Type");
                 c.assertDate(events[0].getEntityRegistrationDate(), "Entity Registration date", 2021, 5, 13, 8, 0);
                 c.assertEqual(events[0].getIdentifier(), "20210514121033383-441", "Identifier");
             }
@@ -3053,12 +3053,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
         });
 
         QUnit.test("searchEvents() withReason", function(assert) {
-            var c = new common(assert, openbis);
+            var c = new common(assert, dtos);
 
             var fSearch = function(facade) {
-                var criteria = new c.EventSearchCriteria();
+                var criteria = new dtos.EventSearchCriteria();
                 criteria.withReason().thatEquals("delete experiments");
-                var fetchOptions = new c.EventFetchOptions();
+                var fetchOptions = new dtos.EventFetchOptions();
                 fetchOptions.sortBy().id();
                 return facade.searchEvents(criteria, fetchOptions);
             }
@@ -3066,13 +3066,13 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
             var fCheck = function(facade, events) {
                 c.assertEqual(events.length, 2);
 
-                c.assertEqual(events[0].getEventType(), c.EventType.DELETION, "Event Type");
-                c.assertEqual(events[0].getEntityType(), c.EntityType.EXPERIMENT, "Entity Type");
+                c.assertEqual(events[0].getEventType(), dtos.EventType.DELETION, "Event Type");
+                c.assertEqual(events[0].getEntityType(), dtos.EntityType.EXPERIMENT, "Entity Type");
                 c.assertEqual(events[0].getEntityRegistrator(), "openbis_test_js", "Entity Registrator");
                 c.assertEqual(events[0].getIdentifier(), "20210514121033530-444", "Identifier");
 
-                c.assertEqual(events[1].getEventType(), c.EventType.DELETION, "Event Type");
-                c.assertEqual(events[1].getEntityType(), c.EntityType.EXPERIMENT, "Entity Type");
+                c.assertEqual(events[1].getEventType(), dtos.EventType.DELETION, "Event Type");
+                c.assertEqual(events[1].getEntityType(), dtos.EntityType.EXPERIMENT, "Entity Type");
                 c.assertEqual(events[1].getEntityRegistrator(), "openbis_test_js", "Entity Registrator");
                 c.assertEqual(events[1].getIdentifier(), "20210514121033530-443", "Identifier");
             }
@@ -3081,12 +3081,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
         });
 
         QUnit.test("searchEvents() withRegistrator", function(assert) {
-            var c = new common(assert, openbis);
+            var c = new common(assert, dtos);
 
             var fSearch = function(facade) {
-                var criteria = new c.EventSearchCriteria();
+                var criteria = new dtos.EventSearchCriteria();
                 criteria.withRegistrator().withUserId().thatEquals("openbis_test_js");
-                var fetchOptions = new c.EventFetchOptions();
+                var fetchOptions = new dtos.EventFetchOptions();
                 fetchOptions.withRegistrator();
                 return facade.searchEvents(criteria, fetchOptions);
             }
@@ -3094,8 +3094,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
             var fCheck = function(facade, events) {
                 c.assertEqual(events.length, 1);
 
-                c.assertEqual(events[0].getEventType(), c.EventType.FREEZING, "Event Type");
-                c.assertEqual(events[0].getEntityType(), c.EntityType.EXPERIMENT, "Entity Type");
+                c.assertEqual(events[0].getEventType(), dtos.EventType.FREEZING, "Event Type");
+                c.assertEqual(events[0].getEntityType(), dtos.EntityType.EXPERIMENT, "Entity Type");
                 c.assertEqual(events[0].getIdentifier(), "/EVENT_TEST_SPACE_A/EVENT_TEST_PROJECT_A/EVENT_TEST_EXPERIMENT_A", "Identifier");
                 c.assertEqual(events[0].getRegistrator().getUserId(), "openbis_test_js", "Registrator");
             }
@@ -3104,22 +3104,22 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
         });
 
         QUnit.test("searchEvents() withRegistrationDate", function(assert) {
-            var c = new common(assert, openbis);
+            var c = new common(assert, dtos);
 
             var fSearch = function(facade) {
-                var criteria = new c.EventSearchCriteria();
+                var criteria = new dtos.EventSearchCriteria();
                 criteria.withAndOperator();
                 criteria.withRegistrationDate().thatIsLaterThanOrEqualTo("2021-05-11");
                 criteria.withRegistrationDate().thatIsEarlierThanOrEqualTo("2021-05-13");
-                var fetchOptions = new c.EventFetchOptions();
+                var fetchOptions = new dtos.EventFetchOptions();
                 return facade.searchEvents(criteria, fetchOptions);
             }
 
             var fCheck = function(facade, events) {
                 c.assertEqual(events.length, 1);
 
-                c.assertEqual(events[0].getEventType(), c.EventType.DELETION, "Event Type");
-                c.assertEqual(events[0].getEntityType(), c.EntityType.PROJECT, "Entity Type");
+                c.assertEqual(events[0].getEventType(), dtos.EventType.DELETION, "Event Type");
+                c.assertEqual(events[0].getEntityType(), dtos.EntityType.PROJECT, "Entity Type");
                 c.assertDate(events[0].getRegistrationDate(), "Registration date", 2021, 5, 12, 8, 10);
                 c.assertEqual(events[0].getIdentifier(), "20210514121033383-441", "Identifier");
             }
@@ -3128,17 +3128,17 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
         });
 
 		QUnit.test("searchQueries() withId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var creation = new c.QueryCreation();
+			var creation = new dtos.QueryCreation();
 			creation.setName(c.generateId("query"));
-			creation.setDatabaseId(new c.QueryDatabaseName("openbisDB"));
-			creation.setQueryType(c.QueryType.GENERIC);
+			creation.setDatabaseId(new dtos.QueryDatabaseName("openbisDB"));
+			creation.setQueryType(dtos.QueryType.GENERIC);
 			creation.setSql("select * from spaces");
 
 			var fSearch = function(facade) {
 				return facade.createQueries([creation]).then(function(techIds) {
-					var criteria = new c.QuerySearchCriteria();
+					var criteria = new dtos.QuerySearchCriteria();
 					criteria.withId().thatEquals(techIds[0]);
 					return facade.searchQueries(criteria, c.createQueryFetchOptions());
 				});
@@ -3153,17 +3153,17 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchQueries() withName", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var creation = new c.QueryCreation();
+			var creation = new dtos.QueryCreation();
 			creation.setName(c.generateId("query"));
-			creation.setDatabaseId(new c.QueryDatabaseName("openbisDB"));
-			creation.setQueryType(c.QueryType.GENERIC);
+			creation.setDatabaseId(new dtos.QueryDatabaseName("openbisDB"));
+			creation.setQueryType(dtos.QueryType.GENERIC);
 			creation.setSql("select * from spaces");
 
 			var fSearch = function(facade) {
 				return facade.createQueries([creation]).then(function(techIds) {
-					var criteria = new c.QuerySearchCriteria();
+					var criteria = new dtos.QuerySearchCriteria();
 					criteria.withName().thatEquals(creation.getName());
 					return facade.searchQueries(criteria, c.createQueryFetchOptions());
 				});
@@ -3178,18 +3178,18 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchQueries() withEntityTypeCodePattern", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var creation = new c.QueryCreation();
+			var creation = new dtos.QueryCreation();
 			creation.setName(c.generateId("query"));
-			creation.setDatabaseId(new c.QueryDatabaseName("openbisDB"));
-			creation.setQueryType(c.QueryType.EXPERIMENT);
+			creation.setDatabaseId(new dtos.QueryDatabaseName("openbisDB"));
+			creation.setQueryType(dtos.QueryType.EXPERIMENT);
 			creation.setEntityTypeCodePattern(c.generateId("pattern"))
 			creation.setSql("select * from experiments where perm_id = ${key}");
 
 			var fSearch = function(facade) {
 				return facade.createQueries([creation]).then(function(techIds) {
-					var criteria = new c.QuerySearchCriteria();
+					var criteria = new dtos.QuerySearchCriteria();
 					criteria.withEntityTypeCodePattern().thatEquals(creation.getEntityTypeCodePattern());
 					return facade.searchQueries(criteria, c.createQueryFetchOptions());
 				});
@@ -3204,15 +3204,15 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchQueryDatabases() withId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fSearch = function(facade) {
-				var criteria = new c.QueryDatabaseSearchCriteria();
-				var fo = new c.QueryDatabaseFetchOptions();
+				var criteria = new dtos.QueryDatabaseSearchCriteria();
+				var fo = new dtos.QueryDatabaseFetchOptions();
 				fo.withSpace();
 				fo.sortBy().name().asc();
 
-				criteria.withId().thatEquals(new c.QueryDatabaseName("openbisDB"));
+				criteria.withId().thatEquals(new dtos.QueryDatabaseName("openbisDB"));
 				return facade.searchQueryDatabases(criteria, fo);
 			}
 
@@ -3221,8 +3221,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 				c.assertEqual(databases[0].getPermId().getName(), "openbisDB", "PermId");
 				c.assertEqual(databases[0].getName(), "openbisDB", "Name");
 				c.assertEqual(databases[0].getLabel(), "openBIS meta data", "Label");
-				c.assertEqual(databases[0].getCreatorMinimalRole(), c.Role.OBSERVER, "CreatorMinimalRole");
-				c.assertEqual(databases[0].getCreatorMinimalRoleLevel(), c.RoleLevel.INSTANCE, "CreatorMinimalRoleLevel");
+				c.assertEqual(databases[0].getCreatorMinimalRole(), dtos.Role.OBSERVER, "CreatorMinimalRole");
+				c.assertEqual(databases[0].getCreatorMinimalRoleLevel(), dtos.RoleLevel.INSTANCE, "CreatorMinimalRoleLevel");
 				c.assertEqual(databases[0].getSpace(), null, "Space");
 			}
 
@@ -3230,17 +3230,17 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchPersonalAccessTokens() withId", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var now = new Date();
 
-			var creation = new c.PersonalAccessTokenCreation();
+			var creation = new dtos.PersonalAccessTokenCreation();
 			creation.setSessionName(c.generateId("pat"));
 			creation.setValidFromDate(now.getTime());
 			creation.setValidToDate(new Date(now.getTime() + 24 * 3600 * 1000).getTime());
 
 			var fSearch = function(facade) {
 				return facade.createPersonalAccessTokens([creation]).then(function(permIds) {
-					var criteria = new c.PersonalAccessTokenSearchCriteria();
+					var criteria = new dtos.PersonalAccessTokenSearchCriteria();
 					criteria.withId().thatEquals(permIds[0]);
 					return facade.searchPersonalAccessTokens(criteria, c.createPersonalAccessTokenFetchOptions());
 				});
@@ -3255,10 +3255,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchPersonalAccessTokens() withOwner withSessionName", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var now = new Date();
 
-			var creation = new c.PersonalAccessTokenCreation();
+			var creation = new dtos.PersonalAccessTokenCreation();
 			creation.setSessionName(c.generateId("pat"));
 			creation.setValidFromDate(now.getTime());
 			creation.setValidToDate(new Date(now.getTime() + 24 * 3600 * 1000).getTime());
@@ -3266,7 +3266,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			var fSearch = function(facade) {
 				return facade.createPersonalAccessTokens([creation]).then(function(permIds) {
 				    return facade.getSessionInformation().then(function(sessionInformation){
-                        var criteria = new c.PersonalAccessTokenSearchCriteria();
+                        var criteria = new dtos.PersonalAccessTokenSearchCriteria();
                         criteria.withOwner().withUserId().thatEquals(sessionInformation.getUserName());
                         criteria.withSessionName().thatEquals(creation.getSessionName());
                         return facade.searchPersonalAccessTokens(criteria, c.createPersonalAccessTokenFetchOptions());
@@ -3283,20 +3283,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withProperty", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var samplePermId;
 			var propertyTypeId;
 			var sampleTypeId;
 			var fSearch = function(facade) {
-				return createPropertyType(c, facade, c.DataType.VARCHAR).then(function(propertyTypeIds) {
+				return createPropertyType(c, facade, dtos.DataType.VARCHAR).then(function(propertyTypeIds) {
 					propertyTypeId = propertyTypeIds[0];
 					return createSampleType(c, facade, false, propertyTypeIds[0]).then(function(sampleTypeIds) {
 						sampleTypeId = sampleTypeIds[0];
 						return createSample(c, facade, sampleTypeIds[0], propertyTypeIds[0], "abc").then(
 							function(sampleIds) {
 								samplePermId = sampleIds[0];
-								var criteria = new c.SampleSearchCriteria();
+								var criteria = new dtos.SampleSearchCriteria();
 								criteria.withProperty(propertyTypeIds[0].getPermId()).thatEquals("abc");
 								return facade.searchSamples(criteria, c.createSampleFetchOptions());
 							});
@@ -3323,20 +3323,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withAnyProperty", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var samplePermId;
 			var propertyTypeId;
 			var sampleTypeId;
 			var fSearch = function(facade) {
-				return createPropertyType(c, facade, c.DataType.VARCHAR).then(function(propertyTypeIds) {
+				return createPropertyType(c, facade, dtos.DataType.VARCHAR).then(function(propertyTypeIds) {
 					propertyTypeId = propertyTypeIds[0];
 					return createSampleType(c, facade, false, propertyTypeIds[0]).then(function(sampleTypeIds) {
 						sampleTypeId = sampleTypeIds[0];
 						return createSample(c, facade, sampleTypeIds[0], propertyTypeIds[0], "abc").then(
 							function(sampleIds) {
 								samplePermId = sampleIds[0];
-								var criteria = new c.SampleSearchCriteria();
+								var criteria = new dtos.SampleSearchCriteria();
 								criteria.withAnyProperty().thatEquals("abc");
 								return facade.searchSamples(criteria, c.createSampleFetchOptions());
 							});
@@ -3363,20 +3363,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withStringProperty", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var samplePermId;
 			var propertyTypeId;
 			var sampleTypeId;
 			var fSearch = function(facade) {
-				return createPropertyType(c, facade, c.DataType.VARCHAR).then(function(propertyTypeIds) {
+				return createPropertyType(c, facade, dtos.DataType.VARCHAR).then(function(propertyTypeIds) {
 					propertyTypeId = propertyTypeIds[0];
 					return createSampleType(c, facade, false, propertyTypeIds[0]).then(function(sampleTypeIds) {
 						sampleTypeId = sampleTypeIds[0];
 						return createSample(c, facade, sampleTypeIds[0], propertyTypeIds[0], "abc").then(
 							function(sampleIds) {
 								samplePermId = sampleIds[0];
-								var criteria = new c.SampleSearchCriteria();
+								var criteria = new dtos.SampleSearchCriteria();
 								criteria.withStringProperty(propertyTypeIds[0].getPermId()).thatEquals("abc");
 								return facade.searchSamples(criteria, c.createSampleFetchOptions());
 							});
@@ -3403,20 +3403,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withAnyStringProperty", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var samplePermId;
 			var propertyTypeId;
 			var sampleTypeId;
 			var fSearch = function(facade) {
-				return createPropertyType(c, facade, c.DataType.VARCHAR).then(function(propertyTypeIds) {
+				return createPropertyType(c, facade, dtos.DataType.VARCHAR).then(function(propertyTypeIds) {
 					propertyTypeId = propertyTypeIds[0];
 					return createSampleType(c, facade, false, propertyTypeIds[0]).then(function(sampleTypeIds) {
 						sampleTypeId = sampleTypeIds[0];
 						return createSample(c, facade, sampleTypeIds[0], propertyTypeIds[0], "abc").then(
 							function(sampleIds) {
 								samplePermId = sampleIds[0];
-								var criteria = new c.SampleSearchCriteria();
+								var criteria = new dtos.SampleSearchCriteria();
 								criteria.withAnyStringProperty().thatEquals("abc");
 								return facade.searchSamples(criteria, c.createSampleFetchOptions());
 							});
@@ -3443,38 +3443,38 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withStringProperty throwing exception", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			checkExceptionsThrown(assert, [
-				c.DataType.BOOLEAN,
-				c.DataType.CONTROLLEDVOCABULARY,
-				c.DataType.DATE,
-				c.DataType.INTEGER,
-				c.DataType.MATERIAL,
-				c.DataType.REAL,
-				c.DataType.SAMPLE,
-				c.DataType.TIMESTAMP
+				dtos.DataType.BOOLEAN,
+				dtos.DataType.CONTROLLEDVOCABULARY,
+				dtos.DataType.DATE,
+				dtos.DataType.INTEGER,
+				dtos.DataType.MATERIAL,
+				dtos.DataType.REAL,
+				dtos.DataType.SAMPLE,
+				dtos.DataType.TIMESTAMP
 			], function(propertyTypePermId) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withStringProperty(propertyTypePermId).thatEquals("true");
 				return criteria;
 			});
 		});
 
 		QUnit.test("searchSamples() withNumberProperty", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var samplePermId;
 			var propertyTypeId;
 			var sampleTypeId;
 			var fSearch = function(facade) {
-				return createPropertyType(c, facade, c.DataType.INTEGER).then(function(propertyTypeIds) {
+				return createPropertyType(c, facade, dtos.DataType.INTEGER).then(function(propertyTypeIds) {
 					propertyTypeId = propertyTypeIds[0];
 					return createSampleType(c, facade, false, propertyTypeIds[0]).then(function(sampleTypeIds) {
 						sampleTypeId = sampleTypeIds[0];
 						return createSample(c, facade, sampleTypeIds[0], propertyTypeIds[0], 12344).then(
 							function(sampleIds) {
 								samplePermId = sampleIds[0];
-								var criteria = new c.SampleSearchCriteria();
+								var criteria = new dtos.SampleSearchCriteria();
 								criteria.withNumberProperty(propertyTypeIds[0].getPermId()).thatEquals(12344);
 								return facade.searchSamples(criteria, c.createSampleFetchOptions());
 							});
@@ -3501,20 +3501,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withAnyNumberProperty", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var samplePermId;
 			var propertyTypeId;
 			var sampleTypeId;
 			var fSearch = function(facade) {
-				return createPropertyType(c, facade, c.DataType.INTEGER).then(function(propertyTypeIds) {
+				return createPropertyType(c, facade, dtos.DataType.INTEGER).then(function(propertyTypeIds) {
 					propertyTypeId = propertyTypeIds[0];
 					return createSampleType(c, facade, false, propertyTypeIds[0]).then(function(sampleTypeIds) {
 						sampleTypeId = sampleTypeIds[0];
 						return createSample(c, facade, sampleTypeIds[0], propertyTypeIds[0], 12344).then(
 							function(sampleIds) {
 								samplePermId = sampleIds[0];
-								var criteria = new c.SampleSearchCriteria();
+								var criteria = new dtos.SampleSearchCriteria();
 								criteria.withAnyNumberProperty().thatEquals(12344);
 								return facade.searchSamples(criteria, c.createSampleFetchOptions());
 							});
@@ -3541,40 +3541,40 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withNumberProperty throwing exception", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			checkExceptionsThrown(assert, [
-				c.DataType.BOOLEAN,
-				c.DataType.CONTROLLEDVOCABULARY,
-				c.DataType.DATE,
-				c.DataType.HYPERLINK,
-				c.DataType.MATERIAL,
-				c.DataType.MULTILINE_VARCHAR,
-				c.DataType.SAMPLE,
-				c.DataType.TIMESTAMP,
-				c.DataType.VARCHAR,
-				c.DataType.XML,
+				dtos.DataType.BOOLEAN,
+				dtos.DataType.CONTROLLEDVOCABULARY,
+				dtos.DataType.DATE,
+				dtos.DataType.HYPERLINK,
+				dtos.DataType.MATERIAL,
+				dtos.DataType.MULTILINE_VARCHAR,
+				dtos.DataType.SAMPLE,
+				dtos.DataType.TIMESTAMP,
+				dtos.DataType.VARCHAR,
+				dtos.DataType.XML,
 			], function(propertyTypePermId) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withNumberProperty(propertyTypePermId).thatEquals(12);
 				return criteria;
 			});
 		});
 
 		QUnit.test("searchSamples() withBooleanProperty", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var samplePermId;
 			var propertyTypeId;
 			var sampleTypeId;
 			var fSearch = function(facade) {
-				return createPropertyType(c, facade, c.DataType.BOOLEAN).then(function(propertyTypeIds) {
+				return createPropertyType(c, facade, dtos.DataType.BOOLEAN).then(function(propertyTypeIds) {
 					propertyTypeId = propertyTypeIds[0];
 					return createSampleType(c, facade, false, propertyTypeIds[0]).then(function(sampleTypeIds) {
 						sampleTypeId = sampleTypeIds[0];
 						return createSample(c, facade, sampleTypeIds[0], propertyTypeIds[0], true).then(
 							function(sampleIds) {
 								samplePermId = sampleIds[0];
-								var criteria = new c.SampleSearchCriteria();
+								var criteria = new dtos.SampleSearchCriteria();
 								criteria.withBooleanProperty(propertyTypeIds[0].getPermId()).thatEquals(true);
 								return facade.searchSamples(criteria, c.createSampleFetchOptions());
 							});
@@ -3599,20 +3599,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withAnyBooleanProperty", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var samplePermId;
 			var propertyTypeId;
 			var sampleTypeId;
 			var fSearch = function(facade) {
-				return createPropertyType(c, facade, c.DataType.BOOLEAN).then(function(propertyTypeIds) {
+				return createPropertyType(c, facade, dtos.DataType.BOOLEAN).then(function(propertyTypeIds) {
 					propertyTypeId = propertyTypeIds[0];
 					return createSampleType(c, facade, false, propertyTypeIds[0]).then(function(sampleTypeIds) {
 						sampleTypeId = sampleTypeIds[0];
 						return createSample(c, facade, sampleTypeIds[0], propertyTypeIds[0], true).then(
 							function(sampleIds) {
 								samplePermId = sampleIds[0];
-								var criteria = new c.SampleSearchCriteria();
+								var criteria = new dtos.SampleSearchCriteria();
 								criteria.withAnyBooleanProperty().thatEquals(true);
 								return facade.searchSamples(criteria, c.createSampleFetchOptions());
 							});
@@ -3637,41 +3637,41 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withBooleanProperty throwing exception", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			checkExceptionsThrown(assert, [
-				c.DataType.CONTROLLEDVOCABULARY,
-				c.DataType.DATE,
-				c.DataType.HYPERLINK,
-				c.DataType.INTEGER,
-				c.DataType.MATERIAL,
-				c.DataType.MULTILINE_VARCHAR,
-				c.DataType.REAL,
-				c.DataType.SAMPLE,
-				c.DataType.TIMESTAMP,
-				c.DataType.VARCHAR,
-				c.DataType.XML,
+				dtos.DataType.CONTROLLEDVOCABULARY,
+				dtos.DataType.DATE,
+				dtos.DataType.HYPERLINK,
+				dtos.DataType.INTEGER,
+				dtos.DataType.MATERIAL,
+				dtos.DataType.MULTILINE_VARCHAR,
+				dtos.DataType.REAL,
+				dtos.DataType.SAMPLE,
+				dtos.DataType.TIMESTAMP,
+				dtos.DataType.VARCHAR,
+				dtos.DataType.XML,
 			], function(propertyTypePermId) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withBooleanProperty(propertyTypePermId).thatEquals(true);
 				return criteria;
 			});
 		});
 
 		QUnit.test("searchSamples() withDateProperty", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var samplePermId;
 			var propertyTypeId;
 			var sampleTypeId;
 			var fSearch = function(facade) {
-				return createPropertyType(c, facade, c.DataType.DATE).then(function(propertyTypeIds) {
+				return createPropertyType(c, facade, dtos.DataType.DATE).then(function(propertyTypeIds) {
 					propertyTypeId = propertyTypeIds[0];
 					return createSampleType(c, facade, false, propertyTypeIds[0]).then(function(sampleTypeIds) {
 						sampleTypeId = sampleTypeIds[0];
 						return createSample(c, facade, sampleTypeIds[0], propertyTypeIds[0], '2007-07-17').then(
 							function(sampleIds) {
 								samplePermId = sampleIds[0];
-								var criteria = new c.SampleSearchCriteria();
+								var criteria = new dtos.SampleSearchCriteria();
 								criteria.withDateProperty(propertyTypeIds[0].getPermId()).thatEquals('2007-07-17');
 								return facade.searchSamples(criteria, c.createSampleFetchOptions());
 							});
@@ -3698,20 +3698,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withAnyDateProperty", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var samplePermId;
 			var propertyTypeId;
 			var sampleTypeId;
 			var fSearch = function(facade) {
-				return createPropertyType(c, facade, c.DataType.DATE).then(function(propertyTypeIds) {
+				return createPropertyType(c, facade, dtos.DataType.DATE).then(function(propertyTypeIds) {
 					propertyTypeId = propertyTypeIds[0];
 					return createSampleType(c, facade, false, propertyTypeIds[0]).then(function(sampleTypeIds) {
 						sampleTypeId = sampleTypeIds[0];
 						return createSample(c, facade, sampleTypeIds[0], propertyTypeIds[0], '2017-09-17').then(
 							function(sampleIds) {
 								samplePermId = sampleIds[0];
-								var criteria = new c.SampleSearchCriteria();
+								var criteria = new dtos.SampleSearchCriteria();
 								criteria.withAnyDateProperty().thatEquals('2017-09-17');
 								return facade.searchSamples(criteria, c.createSampleFetchOptions());
 							});
@@ -3738,27 +3738,27 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("searchSamples() withDateProperty throwing exception", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			checkExceptionsThrown(assert, [
-				c.DataType.BOOLEAN,
-				c.DataType.CONTROLLEDVOCABULARY,
-				c.DataType.HYPERLINK,
-				c.DataType.INTEGER,
-				c.DataType.MATERIAL,
-				c.DataType.MULTILINE_VARCHAR,
-				c.DataType.REAL,
-				c.DataType.SAMPLE,
-				c.DataType.VARCHAR,
-				c.DataType.XML,
+				dtos.DataType.BOOLEAN,
+				dtos.DataType.CONTROLLEDVOCABULARY,
+				dtos.DataType.HYPERLINK,
+				dtos.DataType.INTEGER,
+				dtos.DataType.MATERIAL,
+				dtos.DataType.MULTILINE_VARCHAR,
+				dtos.DataType.REAL,
+				dtos.DataType.SAMPLE,
+				dtos.DataType.VARCHAR,
+				dtos.DataType.XML,
 			], function(propertyTypePermId) {
-				var criteria = new c.SampleSearchCriteria();
+				var criteria = new dtos.SampleSearchCriteria();
 				criteria.withDateProperty(propertyTypePermId).thatEquals('2017-09-17');
 				return criteria;
 			});
 		});
 
 		function checkExceptionsThrown(assert, dataTypes, createCriteria) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			c.start = function() {}
 			c.finish = function() {}
 
@@ -3796,20 +3796,28 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		}
 
 		function cleanup(c, facade, samplePermId, propertyTypeId, sampleTypeId) {
-			var options = new c.SampleDeletionOptions();
+			var options = new dtos.SampleDeletionOptions();
 			options.setReason("Test reason.");
 			facade.deleteSamples([samplePermId], options)
-				.then(function() {
-					facade.deleteSampleTypes([sampleTypeId], new c.SampleTypeDeletionOptions())
-						.then(function() {
-							facade.deletePropertyTypes([propertyTypeId], new c.PropertyTypeDeletionOptions())
-								.fail(function(error) {
-									c.fail("Error deleting property type. error.message=" + erro.message);
-								});
-						})
-						.fail(function(error) {
-							c.fail("Error deleting sample type. error.message=" + error.message);
-						});
+				.then(function(deletionId) {
+					facade.confirmDeletions([deletionId]).then(function(){
+						var options = new dtos.SampleTypeDeletionOptions()
+						options.setReason("Test reason.");
+						facade.deleteSampleTypes([sampleTypeId], options)
+							.then(function() {
+								var options = new dtos.PropertyTypeDeletionOptions()
+								options.setReason("Test reason.");
+								facade.deletePropertyTypes([propertyTypeId], options)
+									.fail(function(error) {
+										c.fail("Error deleting property type. error.message=" + erro.message);
+									});
+							})
+							.fail(function(error) {
+								c.fail("Error deleting sample type. error.message=" + error.message);
+							});
+					}).fail(function(error) {
+						c.fail("Error confirming sample deletion. error.message=" + error.message);
+					});
 				})
 				.fail(function(error) {
 					c.fail("Error deleting sample. error.message=" + error.message);
@@ -3817,12 +3825,12 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		}
 
 		function createSampleType(c, facade, mandatory) {
-			var creation = new c.SampleTypeCreation();
+			var creation = new dtos.SampleTypeCreation();
 			creation.setCode("SAMPLE-TYPE-" + Date.now());
 
 			var assignments = [];
 			for (var i = 3; i < arguments.length; i++) {
-				var propertyAssignmentCreation = new c.PropertyAssignmentCreation();
+				var propertyAssignmentCreation = new dtos.PropertyAssignmentCreation();
 				propertyAssignmentCreation.setPropertyTypeId(arguments[i]);
 				propertyAssignmentCreation.setMandatory(mandatory);
 				assignments.push(propertyAssignmentCreation);
@@ -3833,14 +3841,14 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		}
 
 		function createPropertyType(c, facade, dataType, vocabularyPermId) {
-			var creation = new c.PropertyTypeCreation();
+			var creation = new dtos.PropertyTypeCreation();
 			creation.setCode("TYPE-" + Date.now());
 			creation.setDataType(dataType);
 			creation.setDescription("description");
 			creation.setLabel("label");
 			creation.setMultiValue(false);
 
-			if (dataType === c.DataType.CONTROLLEDVOCABULARY)
+			if (dataType === dtos.DataType.CONTROLLEDVOCABULARY)
 			{
 				creation.setVocabularyId(vocabularyPermId);
 			}
@@ -3848,17 +3856,21 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		}
 
 		function createSample(c, facade, sampleTypeId, propertyType, value) {
-			var creation = new c.SampleCreation();
+			var creation = new dtos.SampleCreation();
 			creation.setTypeId(sampleTypeId);
 			creation.setCode("V3-TST-SAMPLE-" + Date.now());
-			creation.setSpaceId(new c.SpacePermId("TEST"));
+			creation.setSpaceId(new dtos.SpacePermId("TEST"));
 			creation.setProperty(propertyType, value);
 			return facade.createSamples([creation]);
 		}
 	}
 
 	return function() {
-		executeModule("Search tests", openbis);
-		executeModule("Search tests (executeOperations)", openbisExecuteOperations);
+		executeModule("Search tests (RequireJS)", new openbis(), dtos);
+		executeModule("Search tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos);
+		executeModule("Search tests (module UMD)", new window.openbis.openbis(), window.openbis);
+		executeModule("Search tests (module UMD - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis);
+		executeModule("Search tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM);
+		executeModule("Search tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM);
 	}
 });
diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-update.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-update.js
index 6dd6b2aa1b5af3a5c6ad1f93e22e2775840f562b..a284bae2d5af50dc2204b8ab01b3c2050b45e639 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-update.js
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-update.js
@@ -1,5 +1,5 @@
-define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common' ], function($, _, openbis, openbisExecuteOperations, common) {
-	var executeModule = function(moduleName, openbis) {
+define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], function($, _, openbis, openbisExecuteOperations, common, dtos) {
+	var executeModule = function(moduleName, facade, dtos) {
 		QUnit.module(moduleName);
 
 		var testUpdate = function(c, fCreate, fUpdate, fFind, fCheck, fCheckError) {
@@ -9,7 +9,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 				facade : null,
 				permIds : null
 			};
-			c.createFacadeAndLogin().then(function(facade) {
+			c.login(facade).then(function() {
 				ctx.facade = facade;
 				return fCreate(facade)
 			}).then(function(permIds) {
@@ -38,18 +38,18 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		}
 
 		QUnit.test("updateSpaces()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("SPACE");
 
 			var fCreate = function(facade) {
-				var creation = new c.SpaceCreation();
+				var creation = new dtos.SpaceCreation();
 				creation.setCode(code);
 				creation.setDescription("test description");
 				return facade.createSpaces([ creation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.SpaceUpdate();
+				var update = new dtos.SpaceUpdate();
 				update.setSpaceId(permId);
 				update.setDescription("test description 2");
 				return facade.updateSpaces([ update ]);
@@ -64,22 +64,22 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateProjects() added attachments", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("PROJECT");
 
 			var fCreate = function(facade) {
-				var projectCreation = new c.ProjectCreation();
-				projectCreation.setSpaceId(new c.SpacePermId("TEST"));
+				var projectCreation = new dtos.ProjectCreation();
+				projectCreation.setSpaceId(new dtos.SpacePermId("TEST"));
 				projectCreation.setCode(code);
 				projectCreation.setDescription("JS test project");
 				return facade.createProjects([ projectCreation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var projectUpdate = new c.ProjectUpdate();
+				var projectUpdate = new dtos.ProjectUpdate();
 				projectUpdate.setProjectId(permId);
-				projectUpdate.setSpaceId(new c.SpacePermId("PLATONIC"));
-				attachmentCreation = new c.AttachmentCreation();
+				projectUpdate.setSpaceId(new dtos.SpacePermId("PLATONIC"));
+				attachmentCreation = new dtos.AttachmentCreation();
 				attachmentCreation.setFileName("test_file");
 				attachmentCreation.setTitle("test_title");
 				attachmentCreation.setDescription("test_description");
@@ -104,19 +104,19 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateProjects() changed attributes", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("PROJECT");
 
 			var fCreate = function(facade) {
-				var projectCreation = new c.ProjectCreation();
-				projectCreation.setSpaceId(new c.SpacePermId("TEST"));
+				var projectCreation = new dtos.ProjectCreation();
+				projectCreation.setSpaceId(new dtos.SpacePermId("TEST"));
 				projectCreation.setCode(code);
 				projectCreation.setDescription("JS test project");
 				return facade.createProjects([ projectCreation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var projectUpdate = new c.ProjectUpdate();
+				var projectUpdate = new dtos.ProjectUpdate();
 				projectUpdate.setProjectId(permId);
 				projectUpdate.setDescription("test_description");
 				return facade.updateProjects([ projectUpdate ]);
@@ -132,19 +132,19 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateProjects() removed space", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("PROJECT");
 
 			var fCreate = function(facade) {
-				var projectCreation = new c.ProjectCreation();
-				projectCreation.setSpaceId(new c.SpacePermId("TEST"));
+				var projectCreation = new dtos.ProjectCreation();
+				projectCreation.setSpaceId(new dtos.SpacePermId("TEST"));
 				projectCreation.setCode(code);
 				projectCreation.setDescription("JS test project");
 				return facade.createProjects([ projectCreation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var projectUpdate = new c.ProjectUpdate();
+				var projectUpdate = new dtos.ProjectUpdate();
 				projectUpdate.setProjectId(permId);
 				projectUpdate.setSpaceId(null);
 				return facade.updateProjects([ projectUpdate ]);
@@ -158,20 +158,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateExperimentTypes()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("EXPERIMENT_TYPE");
 
 			var fCreate = function(facade) {
-				var assignmentCreation = new c.PropertyAssignmentCreation();
+				var assignmentCreation = new dtos.PropertyAssignmentCreation();
 				assignmentCreation.setSection("test section");
 				assignmentCreation.setOrdinal(10);
-				assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId("DESCRIPTION"));
-				assignmentCreation.setPluginId(new c.PluginPermId("Diff_time"));
+				assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId("DESCRIPTION"));
+				assignmentCreation.setPluginId(new dtos.PluginPermId("Diff_time"));
 				assignmentCreation.setInitialValueForExistingEntities("initial value");
 				assignmentCreation.setShowInEditView(true);
 				assignmentCreation.setShowRawValueInForms(true);
 
-				var creation = new c.ExperimentTypeCreation();
+				var creation = new dtos.ExperimentTypeCreation();
 				creation.setCode(code);
 				creation.setDescription("a new description");
 				creation.setPropertyAssignments([ assignmentCreation ]);
@@ -181,19 +181,19 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fUpdate = function(facade, permId) {
-				var assignmentCreation = new c.PropertyAssignmentCreation();
+				var assignmentCreation = new dtos.PropertyAssignmentCreation();
 				assignmentCreation.setSection("test section 2");
 				assignmentCreation.setOrdinal(10);
-				assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId("VERSION"));
-				assignmentCreation.setPluginId(new c.PluginPermId("Diff_time"));
+				assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId("VERSION"));
+				assignmentCreation.setPluginId(new dtos.PluginPermId("Diff_time"));
 				assignmentCreation.setMandatory(true);
 				assignmentCreation.setInitialValueForExistingEntities("1.0");
 				assignmentCreation.setShowInEditView(true);
 				assignmentCreation.setShowRawValueInForms(true);
-				var update = new c.ExperimentTypeUpdate();
+				var update = new dtos.ExperimentTypeUpdate();
 				update.setTypeId(permId);
 				update.setDescription("another new description");
-				update.setValidationPluginId(new c.PluginPermId("Has_Parents"));
+				update.setValidationPluginId(new dtos.PluginPermId("Has_Parents"));
 				update.getPropertyAssignments().set([ assignmentCreation ]);
 				update.getMetaData().put("experiment_type_update", "new_value");
 				update.getMetaData().add({"experiment_type_add":"add_value"});
@@ -227,26 +227,26 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateExperiments() changed attributes + added tag + added attachment", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("EXPERIMENT");
 
 			var fCreate = function(facade) {
-				var experimentCreation = new c.ExperimentCreation();
+				var experimentCreation = new dtos.ExperimentCreation();
 				experimentCreation.setCode(code);
-				experimentCreation.setTypeId(new c.EntityTypePermId("HT_SEQUENCING"));
+				experimentCreation.setTypeId(new dtos.EntityTypePermId("HT_SEQUENCING"));
 				experimentCreation.setProperty("EXPERIMENT_DESIGN", "EXPRESSION");
-				experimentCreation.setTagIds([ new c.TagCode("CREATE_JSON_TAG") ]);
-				experimentCreation.setProjectId(new c.ProjectIdentifier("/TEST/TEST-PROJECT"));
+				experimentCreation.setTagIds([ new dtos.TagCode("CREATE_JSON_TAG") ]);
+				experimentCreation.setProjectId(new dtos.ProjectIdentifier("/TEST/TEST-PROJECT"));
 				experimentCreation.setMetaData({"experiment_update":"old_value", "experiment_delete":"del_value"});
 				return facade.createExperiments([ experimentCreation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var experimentUpdate = new c.ExperimentUpdate();
+				var experimentUpdate = new dtos.ExperimentUpdate();
 				experimentUpdate.setExperimentId(permId);
-				experimentUpdate.setProjectId(new c.ProjectIdentifier("/PLATONIC/SCREENING-EXAMPLES"));
-				experimentUpdate.getTagIds().add(new c.TagCode("CREATE_ANOTHER_JSON_TAG"));
-				attachmentCreation = new c.AttachmentCreation();
+				experimentUpdate.setProjectId(new dtos.ProjectIdentifier("/PLATONIC/SCREENING-EXAMPLES"));
+				experimentUpdate.getTagIds().add(new dtos.TagCode("CREATE_ANOTHER_JSON_TAG"));
+				attachmentCreation = new dtos.AttachmentCreation();
 				attachmentCreation.setFileName("test_file");
 				attachmentCreation.setTitle("test_title");
 				attachmentCreation.setDescription("test_description");
@@ -284,24 +284,24 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateExperiments() changed properties + removed tag", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("EXPERIMENT");
 
 			var fCreate = function(facade) {
-				var experimentCreation = new c.ExperimentCreation();
+				var experimentCreation = new dtos.ExperimentCreation();
 				experimentCreation.setCode(code);
-				experimentCreation.setTypeId(new c.EntityTypePermId("HT_SEQUENCING"));
+				experimentCreation.setTypeId(new dtos.EntityTypePermId("HT_SEQUENCING"));
 				experimentCreation.setProperty("EXPERIMENT_DESIGN", "EXPRESSION");
-				experimentCreation.setTagIds([ new c.TagCode("CREATE_JSON_TAG") ]);
-				experimentCreation.setProjectId(new c.ProjectIdentifier("/TEST/TEST-PROJECT"));
+				experimentCreation.setTagIds([ new dtos.TagCode("CREATE_JSON_TAG") ]);
+				experimentCreation.setProjectId(new dtos.ProjectIdentifier("/TEST/TEST-PROJECT"));
 				return facade.createExperiments([ experimentCreation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var experimentUpdate = new c.ExperimentUpdate();
+				var experimentUpdate = new dtos.ExperimentUpdate();
 				experimentUpdate.setExperimentId(permId);
 				experimentUpdate.setProperty("EXPERIMENT_DESIGN", "OTHER");
-				experimentUpdate.getTagIds().remove([ new c.TagCode("UNKNOWN_TAG"), new c.TagCode("CREATE_JSON_TAG") ]);
+				experimentUpdate.getTagIds().remove([ new dtos.TagCode("UNKNOWN_TAG"), new dtos.TagCode("CREATE_JSON_TAG") ]);
 				return facade.updateExperiments([ experimentUpdate ]);
 			}
 
@@ -320,19 +320,19 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateExperiments() removed project", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("EXPERIMENT");
 
 			var fCreate = function(facade) {
-				var experimentCreation = new c.ExperimentCreation();
+				var experimentCreation = new dtos.ExperimentCreation();
 				experimentCreation.setCode(code);
-				experimentCreation.setTypeId(new c.EntityTypePermId("HT_SEQUENCING"));
-				experimentCreation.setProjectId(new c.ProjectIdentifier("/TEST/TEST-PROJECT"));
+				experimentCreation.setTypeId(new dtos.EntityTypePermId("HT_SEQUENCING"));
+				experimentCreation.setProjectId(new dtos.ProjectIdentifier("/TEST/TEST-PROJECT"));
 				return facade.createExperiments([ experimentCreation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var experimentUpdate = new c.ExperimentUpdate();
+				var experimentUpdate = new dtos.ExperimentUpdate();
 				experimentUpdate.setExperimentId(permId);
 				experimentUpdate.setProjectId(null);
 				return facade.updateExperiments([ experimentUpdate ]);
@@ -346,28 +346,28 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateExperiment() change property of type SAMPLE", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var propertyTypeCode = c.generateId("PROPERTY_TYPE");
 			var experimentTypeCode = c.generateId("EXPERIMENT_TYPE");
 			var code = c.generateId("EXPERIMENT");
 
 			var fCreate = function(facade) {
-				var propertyTypeCreation = new c.PropertyTypeCreation();
+				var propertyTypeCreation = new dtos.PropertyTypeCreation();
 				propertyTypeCreation.setCode(propertyTypeCode);
 				propertyTypeCreation.setDescription("hello");
-				propertyTypeCreation.setDataType(c.DataType.SAMPLE);
+				propertyTypeCreation.setDataType(dtos.DataType.SAMPLE);
 				propertyTypeCreation.setLabel("Test Property Type");
 				return facade.createPropertyTypes([ propertyTypeCreation ]).then(function(results) {
-					var assignmentCreation = new c.PropertyAssignmentCreation();
-					assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCode));
-					var experimentTypeCreation = new c.ExperimentTypeCreation();
+					var assignmentCreation = new dtos.PropertyAssignmentCreation();
+					assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+					var experimentTypeCreation = new dtos.ExperimentTypeCreation();
 					experimentTypeCreation.setCode(experimentTypeCode);
 					experimentTypeCreation.setPropertyAssignments([ assignmentCreation ]);
 					return facade.createExperimentTypes([ experimentTypeCreation ]).then(function(results) {
-						var creation = new c.ExperimentCreation();
-						creation.setTypeId(new c.EntityTypePermId(experimentTypeCode));
+						var creation = new dtos.ExperimentCreation();
+						creation.setTypeId(new dtos.EntityTypePermId(experimentTypeCode));
 						creation.setCode(code);
-						creation.setProjectId(new c.ProjectIdentifier("/TEST/TEST-PROJECT"));
+						creation.setProjectId(new dtos.ProjectIdentifier("/TEST/TEST-PROJECT"));
 						creation.setProperty(propertyTypeCode, "20130412140147735-20");
 						return facade.createExperiments([ creation ]);
 					});
@@ -375,7 +375,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.ExperimentUpdate();
+				var update = new dtos.ExperimentUpdate();
 				update.setExperimentId(permId);
 				update.setProperty(propertyTypeCode, "20130412140147736-21");
 				return facade.updateExperiments([ update ]);
@@ -395,29 +395,29 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateExperiment() change multi-value property of type SAMPLE", function(assert) {
-            var c = new common(assert, openbis);
+            var c = new common(assert, dtos);
             var propertyTypeCode = c.generateId("PROPERTY_TYPE");
             var experimentTypeCode = c.generateId("EXPERIMENT_TYPE");
             var code = c.generateId("EXPERIMENT");
 
             var fCreate = function(facade) {
-                var propertyTypeCreation = new c.PropertyTypeCreation();
+                var propertyTypeCreation = new dtos.PropertyTypeCreation();
                 propertyTypeCreation.setCode(propertyTypeCode);
                 propertyTypeCreation.setDescription("hello");
-                propertyTypeCreation.setDataType(c.DataType.SAMPLE);
+                propertyTypeCreation.setDataType(dtos.DataType.SAMPLE);
                 propertyTypeCreation.setLabel("Test Property Type");
                 propertyTypeCreation.setMultiValue(true);
                 return facade.createPropertyTypes([ propertyTypeCreation ]).then(function(results) {
-                    var assignmentCreation = new c.PropertyAssignmentCreation();
-                    assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCode));
-                    var experimentTypeCreation = new c.ExperimentTypeCreation();
+                    var assignmentCreation = new dtos.PropertyAssignmentCreation();
+                    assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+                    var experimentTypeCreation = new dtos.ExperimentTypeCreation();
                     experimentTypeCreation.setCode(experimentTypeCode);
                     experimentTypeCreation.setPropertyAssignments([ assignmentCreation ]);
                     return facade.createExperimentTypes([ experimentTypeCreation ]).then(function(results) {
-                        var creation = new c.ExperimentCreation();
-                        creation.setTypeId(new c.EntityTypePermId(experimentTypeCode));
+                        var creation = new dtos.ExperimentCreation();
+                        creation.setTypeId(new dtos.EntityTypePermId(experimentTypeCode));
                         creation.setCode(code);
-                        creation.setProjectId(new c.ProjectIdentifier("/TEST/TEST-PROJECT"));
+                        creation.setProjectId(new dtos.ProjectIdentifier("/TEST/TEST-PROJECT"));
                         creation.setProperty(propertyTypeCode, ["20130412140147735-20", "20130424134657597-433"]);
                         return facade.createExperiments([ creation ]);
                     });
@@ -425,7 +425,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
             }
 
             var fUpdate = function(facade, permId) {
-                var update = new c.ExperimentUpdate();
+                var update = new dtos.ExperimentUpdate();
                 update.setExperimentId(permId);
                 update.setProperty(propertyTypeCode, "20130412140147736-21");
                 return facade.updateExperiments([ update ]);
@@ -448,21 +448,21 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
         });
 		
 		QUnit.test("updateSampleTypes()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("SAMPLE_TYPE");
 
 			var fCreate = function(facade) {
-				var assignmentCreation = new c.PropertyAssignmentCreation();
+				var assignmentCreation = new dtos.PropertyAssignmentCreation();
 				assignmentCreation.setSection("test section");
 				assignmentCreation.setOrdinal(10);
-				assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId("DESCRIPTION"));
-				assignmentCreation.setPluginId(new c.PluginPermId("Diff_time"));
+				assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId("DESCRIPTION"));
+				assignmentCreation.setPluginId(new dtos.PluginPermId("Diff_time"));
 				assignmentCreation.setMandatory(true);
 				assignmentCreation.setInitialValueForExistingEntities("initial value");
 				assignmentCreation.setShowInEditView(true);
 				assignmentCreation.setShowRawValueInForms(true);
 
-				var creation = new c.SampleTypeCreation();
+				var creation = new dtos.SampleTypeCreation();
 				creation.setCode(code);
 				creation.setDescription("a new description");
 				creation.setGeneratedCodePrefix("TEST_PREFIX");
@@ -473,16 +473,16 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fUpdate = function(facade, permId) {
-				var assignmentCreation = new c.PropertyAssignmentCreation();
+				var assignmentCreation = new dtos.PropertyAssignmentCreation();
 				assignmentCreation.setSection("test section 2");
 				assignmentCreation.setOrdinal(10);
-				assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId("VERSION"));
-				assignmentCreation.setPluginId(new c.PluginPermId("Diff_time"));
+				assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId("VERSION"));
+				assignmentCreation.setPluginId(new dtos.PluginPermId("Diff_time"));
 				assignmentCreation.setMandatory(true);
 				assignmentCreation.setInitialValueForExistingEntities("1.0");
 				assignmentCreation.setShowInEditView(true);
 				assignmentCreation.setShowRawValueInForms(true);
-				var update = new c.SampleTypeUpdate();
+				var update = new dtos.SampleTypeUpdate();
 				update.setTypeId(permId);
 				update.setAutoGeneratedCode(true);
 				update.setSubcodeUnique(true);
@@ -492,9 +492,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 				update.setShowContainer(true);
 				update.setShowParents(true);
 				update.setShowParentMetadata(true);
-				update.setValidationPluginId(new c.PluginPermId("Has_Parents"));
+				update.setValidationPluginId(new dtos.PluginPermId("Has_Parents"));
 				update.getPropertyAssignments().add([ assignmentCreation ]);
-				update.getPropertyAssignments().remove([ new c.PropertyAssignmentPermId(permId, new c.PropertyTypePermId("DESCRIPTION")) ]);
+				update.getPropertyAssignments().remove([ new dtos.PropertyAssignmentPermId(permId, new dtos.PropertyTypePermId("DESCRIPTION")) ]);
                 update.getMetaData().put("sample_type_update", "new_value");
                 update.getMetaData().add({"sample_type_add":"add_value"});
                 update.getMetaData().remove("sample_type_delete");
@@ -534,25 +534,25 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateSamples()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("SAMPLE");
 
 			var fCreate = function(facade) {
-				var creation = new c.SampleCreation();
-				creation.setTypeId(new c.EntityTypePermId("UNKNOWN"));
+				var creation = new dtos.SampleCreation();
+				creation.setTypeId(new dtos.EntityTypePermId("UNKNOWN"));
 				creation.setCode(code);
-				creation.setSpaceId(new c.SpacePermId("TEST"));
-				creation.setTagIds([ new c.TagCode("CREATE_JSON_TAG") ]);
+				creation.setSpaceId(new dtos.SpacePermId("TEST"));
+				creation.setTagIds([ new dtos.TagCode("CREATE_JSON_TAG") ]);
 				creation.setMetaData({"sample_update":"old_value", "sample_delete":"del_value"});
 				return facade.createSamples([ creation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.SampleUpdate();
+				var update = new dtos.SampleUpdate();
 				update.setSampleId(permId);
-				update.getTagIds().remove(new c.TagCode("CREATE_JSON_TAG"));
-				update.getTagIds().add(new c.TagCode("CREATE_JSON_TAG_2"));
-				update.getTagIds().add(new c.TagCode("CREATE_JSON_TAG_3"));
+				update.getTagIds().remove(new dtos.TagCode("CREATE_JSON_TAG"));
+				update.getTagIds().add(new dtos.TagCode("CREATE_JSON_TAG_2"));
+				update.getTagIds().add(new dtos.TagCode("CREATE_JSON_TAG_3"));
 				update.getMetaData().put("sample_update", "new_value");
                 update.getMetaData().add({"sample_add":"add_value"});
                 update.getMetaData().remove("sample_delete");
@@ -576,23 +576,23 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateSamples() turn project sample into a space sample", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("SAMPLE");
 
 			var fCreate = function(facade) {
-				var creation = new c.SampleCreation();
-				creation.setTypeId(new c.EntityTypePermId("UNKNOWN"));
+				var creation = new dtos.SampleCreation();
+				creation.setTypeId(new dtos.EntityTypePermId("UNKNOWN"));
 				creation.setCode(code);
-				creation.setSpaceId(new c.SpacePermId("TEST"));
-				creation.setProjectId(new c.ProjectIdentifier("/TEST/TEST-PROJECT"));
+				creation.setSpaceId(new dtos.SpacePermId("TEST"));
+				creation.setProjectId(new dtos.ProjectIdentifier("/TEST/TEST-PROJECT"));
 				return facade.createSamples([ creation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.SampleUpdate();
+				var update = new dtos.SampleUpdate();
 				update.setSampleId(permId);
 				update.setProjectId(null);
-				update.setSpaceId(new c.SpacePermId("PLATONIC"));
+				update.setSpaceId(new dtos.SpacePermId("PLATONIC"));
 				return facade.updateSamples([ update ]);
 			}
 
@@ -608,22 +608,22 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateSamples() turn space sample into a project sample", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("SAMPLE");
 
 			var fCreate = function(facade) {
-				var creation = new c.SampleCreation();
-				creation.setTypeId(new c.EntityTypePermId("UNKNOWN"));
+				var creation = new dtos.SampleCreation();
+				creation.setTypeId(new dtos.EntityTypePermId("UNKNOWN"));
 				creation.setCode(code);
-				creation.setSpaceId(new c.SpacePermId("TEST"));
+				creation.setSpaceId(new dtos.SpacePermId("TEST"));
 				return facade.createSamples([ creation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.SampleUpdate();
+				var update = new dtos.SampleUpdate();
 				update.setSampleId(permId);
-				update.setProjectId(new c.ProjectIdentifier("/PLATONIC/SCREENING-EXAMPLES"));
-				update.setSpaceId(new c.SpacePermId("PLATONIC"));
+				update.setProjectId(new dtos.ProjectIdentifier("/PLATONIC/SCREENING-EXAMPLES"));
+				update.setSpaceId(new dtos.SpacePermId("PLATONIC"));
 				return facade.updateSamples([ update ]);
 			}
 
@@ -639,16 +639,16 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateSamples() with annotated parent and child", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("SAMPLE");
-			var parentId = new c.SampleIdentifier("/TEST/TEST-SAMPLE-1");
-			var childId = new c.SampleIdentifier("/TEST/TEST-PROJECT/TEST-SAMPLE-2");
+			var parentId = new dtos.SampleIdentifier("/TEST/TEST-SAMPLE-1");
+			var childId = new dtos.SampleIdentifier("/TEST/TEST-PROJECT/TEST-SAMPLE-2");
 			
 			var fCreate = function(facade) {
-				var creation = new c.SampleCreation();
-				creation.setTypeId(new c.EntityTypePermId("UNKNOWN"));
+				var creation = new dtos.SampleCreation();
+				creation.setTypeId(new dtos.EntityTypePermId("UNKNOWN"));
 				creation.setCode(code);
-				creation.setSpaceId(new c.SpacePermId("TEST"));
+				creation.setSpaceId(new dtos.SpacePermId("TEST"));
 				creation.setParentIds([ parentId ]);
 				creation.setChildIds([ childId ]);
 				creation.relationship(parentId).addParentAnnotation("type", "father").addChildAnnotation("type", "daughter");
@@ -658,7 +658,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 			
 			var fUpdate = function(facade, permId) {
-				var update = new c.SampleUpdate();
+				var update = new dtos.SampleUpdate();
 				update.setSampleId(permId);
 				var parentRelationShip = update.relationship(parentId);
 				parentRelationShip.removeChildAnnotations("type").addChildAnnotation("color", "blue")
@@ -690,28 +690,28 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("updateSamples() change property of type SAMPLE", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var propertyTypeCode = c.generateId("PROPERTY_TYPE");
 			var sampleTypeCode = c.generateId("SAMPLE_TYPE");
 			var code = c.generateId("SAMPLE");
 
 			var fCreate = function(facade) {
-				var propertyTypeCreation = new c.PropertyTypeCreation();
+				var propertyTypeCreation = new dtos.PropertyTypeCreation();
 				propertyTypeCreation.setCode(propertyTypeCode);
 				propertyTypeCreation.setDescription("hello");
-				propertyTypeCreation.setDataType(c.DataType.SAMPLE);
+				propertyTypeCreation.setDataType(dtos.DataType.SAMPLE);
 				propertyTypeCreation.setLabel("Test Property Type");
 				return facade.createPropertyTypes([ propertyTypeCreation ]).then(function(results) {
-					var assignmentCreation = new c.PropertyAssignmentCreation();
-					assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCode));
-					var sampleTypeCreation = new c.SampleTypeCreation();
+					var assignmentCreation = new dtos.PropertyAssignmentCreation();
+					assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+					var sampleTypeCreation = new dtos.SampleTypeCreation();
 					sampleTypeCreation.setCode(sampleTypeCode);
 					sampleTypeCreation.setPropertyAssignments([ assignmentCreation ]);
 					return facade.createSampleTypes([ sampleTypeCreation ]).then(function(results) {
-						var creation = new c.SampleCreation();
-						creation.setTypeId(new c.EntityTypePermId(sampleTypeCode));
+						var creation = new dtos.SampleCreation();
+						creation.setTypeId(new dtos.EntityTypePermId(sampleTypeCode));
 						creation.setCode(code);
-						creation.setSpaceId(new c.SpacePermId("TEST"));
+						creation.setSpaceId(new dtos.SpacePermId("TEST"));
 						creation.setProperty(propertyTypeCode, "20130412140147735-20");
 						return facade.createSamples([ creation ]);
 					});
@@ -719,7 +719,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.SampleUpdate();
+				var update = new dtos.SampleUpdate();
 				update.setSampleId(permId);
 				update.setProperty(propertyTypeCode, "20130412140147736-21");
 				return facade.updateSamples([ update ]);
@@ -738,29 +738,29 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateSamples() change multi-value property of type SAMPLE", function(assert) {
-            var c = new common(assert, openbis);
+            var c = new common(assert, dtos);
             var propertyTypeCode = c.generateId("PROPERTY_TYPE");
             var sampleTypeCode = c.generateId("SAMPLE_TYPE");
             var code = c.generateId("SAMPLE");
 
             var fCreate = function(facade) {
-                var propertyTypeCreation = new c.PropertyTypeCreation();
+                var propertyTypeCreation = new dtos.PropertyTypeCreation();
                 propertyTypeCreation.setCode(propertyTypeCode);
                 propertyTypeCreation.setDescription("hello");
-                propertyTypeCreation.setDataType(c.DataType.SAMPLE);
+                propertyTypeCreation.setDataType(dtos.DataType.SAMPLE);
                 propertyTypeCreation.setLabel("Test Property Type");
                 propertyTypeCreation.setMultiValue(true);
                 return facade.createPropertyTypes([ propertyTypeCreation ]).then(function(results) {
-                    var assignmentCreation = new c.PropertyAssignmentCreation();
-                    assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCode));
-                    var sampleTypeCreation = new c.SampleTypeCreation();
+                    var assignmentCreation = new dtos.PropertyAssignmentCreation();
+                    assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+                    var sampleTypeCreation = new dtos.SampleTypeCreation();
                     sampleTypeCreation.setCode(sampleTypeCode);
                     sampleTypeCreation.setPropertyAssignments([ assignmentCreation ]);
                     return facade.createSampleTypes([ sampleTypeCreation ]).then(function(results) {
-                        var creation = new c.SampleCreation();
-                        creation.setTypeId(new c.EntityTypePermId(sampleTypeCode));
+                        var creation = new dtos.SampleCreation();
+                        creation.setTypeId(new dtos.EntityTypePermId(sampleTypeCode));
                         creation.setCode(code);
-                        creation.setSpaceId(new c.SpacePermId("TEST"));
+                        creation.setSpaceId(new dtos.SpacePermId("TEST"));
                         creation.setProperty(propertyTypeCode, ["20130412140147735-20", "20130424134657597-433"]);
                         return facade.createSamples([ creation ]);
                     });
@@ -768,7 +768,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
             }
 
             var fUpdate = function(facade, permId) {
-                var update = new c.SampleUpdate();
+                var update = new dtos.SampleUpdate();
                 update.setSampleId(permId);
                 update.setProperty(propertyTypeCode, "20130412140147736-21");
                 return facade.updateSamples([ update ]);
@@ -788,28 +788,28 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
         });
 		
 		QUnit.test("updateSamples() remove property of type SAMPLE", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var propertyTypeCode = c.generateId("PROPERTY_TYPE");
 			var sampleTypeCode = c.generateId("SAMPLE_TYPE");
 			var code = c.generateId("SAMPLE");
 			
 			var fCreate = function(facade) {
-				var propertyTypeCreation = new c.PropertyTypeCreation();
+				var propertyTypeCreation = new dtos.PropertyTypeCreation();
 				propertyTypeCreation.setCode(propertyTypeCode);
 				propertyTypeCreation.setDescription("hello");
-				propertyTypeCreation.setDataType(c.DataType.SAMPLE);
+				propertyTypeCreation.setDataType(dtos.DataType.SAMPLE);
 				propertyTypeCreation.setLabel("Test Property Type");
 				return facade.createPropertyTypes([ propertyTypeCreation ]).then(function(results) {
-					var assignmentCreation = new c.PropertyAssignmentCreation();
-					assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCode));
-					var sampleTypeCreation = new c.SampleTypeCreation();
+					var assignmentCreation = new dtos.PropertyAssignmentCreation();
+					assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+					var sampleTypeCreation = new dtos.SampleTypeCreation();
 					sampleTypeCreation.setCode(sampleTypeCode);
 					sampleTypeCreation.setPropertyAssignments([ assignmentCreation ]);
 					return facade.createSampleTypes([ sampleTypeCreation ]).then(function(results) {
-						var creation = new c.SampleCreation();
-						creation.setTypeId(new c.EntityTypePermId(sampleTypeCode));
+						var creation = new dtos.SampleCreation();
+						creation.setTypeId(new dtos.EntityTypePermId(sampleTypeCode));
 						creation.setCode(code);
-						creation.setSpaceId(new c.SpacePermId("TEST"));
+						creation.setSpaceId(new dtos.SpacePermId("TEST"));
 						creation.setProperty(propertyTypeCode, "20130412140147735-20");
 						return facade.createSamples([ creation ]);
 					});
@@ -817,7 +817,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 			
 			var fUpdate = function(facade, permId) {
-				var update = new c.SampleUpdate();
+				var update = new dtos.SampleUpdate();
 				update.setSampleId(permId);
 				update.setProperty(propertyTypeCode, null);
 				return facade.updateSamples([ update ]);
@@ -836,21 +836,21 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateDataSetTypes()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("DATA_SET_TYPE");
 
 			var fCreate = function(facade) {
-				var assignmentCreation = new c.PropertyAssignmentCreation();
+				var assignmentCreation = new dtos.PropertyAssignmentCreation();
 				assignmentCreation.setSection("test section");
 				assignmentCreation.setOrdinal(10);
-				assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId("DESCRIPTION"));
-				assignmentCreation.setPluginId(new c.PluginPermId("Diff_time"));
+				assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId("DESCRIPTION"));
+				assignmentCreation.setPluginId(new dtos.PluginPermId("Diff_time"));
 				assignmentCreation.setMandatory(true);
 				assignmentCreation.setInitialValueForExistingEntities("initial value");
 				assignmentCreation.setShowInEditView(true);
 				assignmentCreation.setShowRawValueInForms(true);
 
-				var creation = new c.DataSetTypeCreation();
+				var creation = new dtos.DataSetTypeCreation();
 				creation.setCode(code);
 				creation.setDescription("a new description");
 				creation.setPropertyAssignments([ assignmentCreation ]);
@@ -860,19 +860,19 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fUpdate = function(facade, permId) {
-				var assignmentCreation = new c.PropertyAssignmentCreation();
+				var assignmentCreation = new dtos.PropertyAssignmentCreation();
 				assignmentCreation.setSection("test section 2");
 				assignmentCreation.setOrdinal(10);
-				assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId("VERSION"));
-				assignmentCreation.setPluginId(new c.PluginPermId("Diff_time"));
+				assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId("VERSION"));
+				assignmentCreation.setPluginId(new dtos.PluginPermId("Diff_time"));
 				assignmentCreation.setMandatory(true);
 				assignmentCreation.setInitialValueForExistingEntities("1.0");
 				assignmentCreation.setShowInEditView(true);
 				assignmentCreation.setShowRawValueInForms(true);
-				var update = new c.DataSetTypeUpdate();
+				var update = new dtos.DataSetTypeUpdate();
 				update.setTypeId(permId);
 				update.setDescription("another new description");
-				update.setValidationPluginId(new c.PluginPermId("Has_Parents"));
+				update.setValidationPluginId(new dtos.PluginPermId("Has_Parents"));
 				update.setMainDataSetPattern(".*\\.jpg");
 				update.setMainDataSetPath("original/images/");
 				update.setDisallowDeletion(true);
@@ -912,7 +912,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateDataSets()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = null;
 
 			var fCreate = function(facade) {
@@ -923,11 +923,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fUpdate = function(facade, permId) {
-				var physicalUpdate = new c.PhysicalDataUpdate();
-				physicalUpdate.setFileFormatTypeId(new c.FileFormatTypePermId("TIFF"));
+				var physicalUpdate = new dtos.PhysicalDataUpdate();
+				physicalUpdate.setFileFormatTypeId(new dtos.FileFormatTypePermId("TIFF"));
 				physicalUpdate.setArchivingRequested(true);
 
-				var update = new c.DataSetUpdate();
+				var update = new dtos.DataSetUpdate();
 				update.setDataSetId(permId);
 				update.setProperty("NOTES", "new 409 description");
 				update.setPhysicalData(physicalUpdate);
@@ -946,30 +946,30 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateDataSet() change property of type SAMPLE", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var propertyTypeCode = c.generateId("PROPERTY_TYPE");
 			var dataSetTypeCode = c.generateId("DATA_SET_TYPE");
 			var code = c.generateId("DATA_SET");
 			
 			var fCreate = function(facade) {
-				var propertyTypeCreation = new c.PropertyTypeCreation();
+				var propertyTypeCreation = new dtos.PropertyTypeCreation();
 				propertyTypeCreation.setCode(propertyTypeCode);
 				propertyTypeCreation.setDescription("hello");
-				propertyTypeCreation.setDataType(c.DataType.SAMPLE);
+				propertyTypeCreation.setDataType(dtos.DataType.SAMPLE);
 				propertyTypeCreation.setLabel("Test Property Type");
 				return facade.createPropertyTypes([ propertyTypeCreation ]).then(function(results) {
-					var assignmentCreation = new c.PropertyAssignmentCreation();
-					assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCode));
-					var dataSetTypeCreation = new c.DataSetTypeCreation();
+					var assignmentCreation = new dtos.PropertyAssignmentCreation();
+					assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+					var dataSetTypeCreation = new dtos.DataSetTypeCreation();
 					dataSetTypeCreation.setCode(dataSetTypeCode);
 					dataSetTypeCreation.setPropertyAssignments([ assignmentCreation ]);
 					return facade.createDataSetTypes([ dataSetTypeCreation ]).then(function(results) {
-						var creation = new c.DataSetCreation();
-						creation.setTypeId(new c.EntityTypePermId(dataSetTypeCode));
+						var creation = new dtos.DataSetCreation();
+						creation.setTypeId(new dtos.EntityTypePermId(dataSetTypeCode));
 						creation.setCode(code);
-						creation.setDataSetKind(c.DataSetKind.CONTAINER);
-						creation.setDataStoreId(new c.DataStorePermId("DSS1"));
-						creation.setExperimentId(new c.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
+						creation.setDataSetKind(dtos.DataSetKind.CONTAINER);
+						creation.setDataStoreId(new dtos.DataStorePermId("DSS1"));
+						creation.setExperimentId(new dtos.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
 						creation.setProperty(propertyTypeCode, "20130412140147735-20");
 						creation.setMetaData({"dataset_update":"old_value", "dataset_delete":"del_value"});
 						return facade.createDataSets([ creation ]);
@@ -978,7 +978,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.DataSetUpdate();
+				var update = new dtos.DataSetUpdate();
 				update.setDataSetId(permId);
 				update.setProperty(propertyTypeCode, "20130412140147736-21");
 				update.getMetaData().put("dataset_update", "new_value");
@@ -1004,31 +1004,31 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateDataSet() change multi-value property of type SAMPLE", function(assert) {
-            var c = new common(assert, openbis);
+            var c = new common(assert, dtos);
             var propertyTypeCode = c.generateId("PROPERTY_TYPE");
             var dataSetTypeCode = c.generateId("DATA_SET_TYPE");
             var code = c.generateId("DATA_SET");
 
             var fCreate = function(facade) {
-                var propertyTypeCreation = new c.PropertyTypeCreation();
+                var propertyTypeCreation = new dtos.PropertyTypeCreation();
                 propertyTypeCreation.setCode(propertyTypeCode);
                 propertyTypeCreation.setDescription("hello");
-                propertyTypeCreation.setDataType(c.DataType.SAMPLE);
+                propertyTypeCreation.setDataType(dtos.DataType.SAMPLE);
                 propertyTypeCreation.setLabel("Test Property Type");
                 propertyTypeCreation.setMultiValue(true);
                 return facade.createPropertyTypes([ propertyTypeCreation ]).then(function(results) {
-                    var assignmentCreation = new c.PropertyAssignmentCreation();
-                    assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCode));
-                    var dataSetTypeCreation = new c.DataSetTypeCreation();
+                    var assignmentCreation = new dtos.PropertyAssignmentCreation();
+                    assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+                    var dataSetTypeCreation = new dtos.DataSetTypeCreation();
                     dataSetTypeCreation.setCode(dataSetTypeCode);
                     dataSetTypeCreation.setPropertyAssignments([ assignmentCreation ]);
                     return facade.createDataSetTypes([ dataSetTypeCreation ]).then(function(results) {
-                        var creation = new c.DataSetCreation();
-                        creation.setTypeId(new c.EntityTypePermId(dataSetTypeCode));
+                        var creation = new dtos.DataSetCreation();
+                        creation.setTypeId(new dtos.EntityTypePermId(dataSetTypeCode));
                         creation.setCode(code);
-                        creation.setDataSetKind(c.DataSetKind.CONTAINER);
-                        creation.setDataStoreId(new c.DataStorePermId("DSS1"));
-                        creation.setExperimentId(new c.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
+                        creation.setDataSetKind(dtos.DataSetKind.CONTAINER);
+                        creation.setDataStoreId(new dtos.DataStorePermId("DSS1"));
+                        creation.setExperimentId(new dtos.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
                         creation.setProperty(propertyTypeCode, ["20130412140147735-20", "20130424134657597-433"]);
                         creation.setMetaData({"dataset_update":"old_value", "dataset_delete":"del_value"});
                         return facade.createDataSets([ creation ]);
@@ -1037,7 +1037,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
             }
 
             var fUpdate = function(facade, permId) {
-                var update = new c.DataSetUpdate();
+                var update = new dtos.DataSetUpdate();
                 update.setDataSetId(permId);
                 update.setProperty(propertyTypeCode, "20130412140147736-21");
                 update.getMetaData().put("dataset_update", "new_value");
@@ -1064,18 +1064,18 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
         });
 		
 		QUnit.test("updateDataSets() link data set", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = "20160613195437233-437";
 
 			var fCreate = function(facade) {
-				return [ new c.DataSetPermId(code) ];
+				return [ new dtos.DataSetPermId(code) ];
 			}
 
 			var fUpdate = function(facade, permId) {
-				var linkUpdate = new c.LinkedDataUpdate();
+				var linkUpdate = new dtos.LinkedDataUpdate();
 				linkUpdate.setExternalCode("new code");
 
-				var update = new c.DataSetUpdate();
+				var update = new dtos.DataSetUpdate();
 				update.setDataSetId(permId);
 				update.setLinkedData(linkUpdate);
 
@@ -1092,7 +1092,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateDataSets() add content copy to link data set", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var edmsId = null;
 
 			var fCreate = function(facade) {
@@ -1106,8 +1106,8 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 				return c.findDataSet(facade, permId).then(function(dataSet) {
 					var contentCopy = dataSet.getLinkedData().getContentCopies()[0];
 					edmsId = contentCopy.getExternalDms().getPermId();
-					var contentCopyListUpdateValue = new c.ContentCopyListUpdateValue();
-					var contentCopyCreation = new c.ContentCopyCreation();
+					var contentCopyListUpdateValue = new dtos.ContentCopyListUpdateValue();
+					var contentCopyCreation = new dtos.ContentCopyCreation();
 					contentCopyCreation.setExternalDmsId(edmsId);
 					contentCopyCreation.setPath("my/data/path");
 					contentCopyCreation.setGitCommitHash("my-git-hash");
@@ -1115,10 +1115,10 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 					contentCopyListUpdateValue.add([ contentCopyCreation ]);
 					contentCopyListUpdateValue.remove([ contentCopy.getId() ]);
 
-					var linkUpdate = new c.LinkedDataUpdate();
+					var linkUpdate = new dtos.LinkedDataUpdate();
 					linkUpdate.setContentCopyActions(contentCopyListUpdateValue.getActions());
 
-					var update = new c.DataSetUpdate();
+					var update = new dtos.DataSetUpdate();
 					update.setDataSetId(permId);
 					update.setLinkedData(linkUpdate);
 
@@ -1141,21 +1141,21 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateMaterialTypes()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("MATERIAL_TYPE");
 
 			var fCreate = function(facade) {
-				var assignmentCreation = new c.PropertyAssignmentCreation();
+				var assignmentCreation = new dtos.PropertyAssignmentCreation();
 				assignmentCreation.setSection("test section");
 				assignmentCreation.setOrdinal(10);
-				assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId("DESCRIPTION"));
-				assignmentCreation.setPluginId(new c.PluginPermId("Diff_time"));
+				assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId("DESCRIPTION"));
+				assignmentCreation.setPluginId(new dtos.PluginPermId("Diff_time"));
 				assignmentCreation.setMandatory(true);
 				assignmentCreation.setInitialValueForExistingEntities("initial value");
 				assignmentCreation.setShowInEditView(true);
 				assignmentCreation.setShowRawValueInForms(true);
 
-				var creation = new c.MaterialTypeCreation();
+				var creation = new dtos.MaterialTypeCreation();
 				creation.setCode(code);
 				creation.setDescription("a new description");
 				creation.setPropertyAssignments([ assignmentCreation ]);
@@ -1164,21 +1164,21 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fUpdate = function(facade, permId) {
-				var assignmentCreation = new c.PropertyAssignmentCreation();
+				var assignmentCreation = new dtos.PropertyAssignmentCreation();
 				assignmentCreation.setSection("test section 2");
 				assignmentCreation.setOrdinal(10);
-				assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId("VERSION"));
-				assignmentCreation.setPluginId(new c.PluginPermId("Diff_time"));
+				assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId("VERSION"));
+				assignmentCreation.setPluginId(new dtos.PluginPermId("Diff_time"));
 				assignmentCreation.setMandatory(true);
 				assignmentCreation.setInitialValueForExistingEntities("1.0");
 				assignmentCreation.setShowInEditView(true);
 				assignmentCreation.setShowRawValueInForms(true);
-				var update = new c.MaterialTypeUpdate();
+				var update = new dtos.MaterialTypeUpdate();
 				update.setTypeId(permId);
 				update.setDescription("another new description");
-				update.setValidationPluginId(new c.PluginPermId("Has_Parents"));
+				update.setValidationPluginId(new dtos.PluginPermId("Has_Parents"));
 				update.getPropertyAssignments().add([ assignmentCreation ]);
-				update.getPropertyAssignments().remove([ new c.PropertyAssignmentPermId(permId, new c.PropertyTypePermId("DESCRIPTION")) ]);
+				update.getPropertyAssignments().remove([ new dtos.PropertyAssignmentPermId(permId, new dtos.PropertyTypePermId("DESCRIPTION")) ]);
 				return facade.updateMaterialTypes([ update ]);
 			}
 
@@ -1203,19 +1203,19 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateMaterials()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("MATERIAL");
 
 			var fCreate = function(facade) {
-				var materialCreation = new c.MaterialCreation();
-				materialCreation.setTypeId(new c.EntityTypePermId("COMPOUND"));
+				var materialCreation = new dtos.MaterialCreation();
+				materialCreation.setTypeId(new dtos.EntityTypePermId("COMPOUND"));
 				materialCreation.setCode(code);
 				materialCreation.setProperty("DESCRIPTION", "Metal");
 				return facade.createMaterials([ materialCreation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var materialUpdate = new c.MaterialUpdate();
+				var materialUpdate = new dtos.MaterialUpdate();
 				materialUpdate.setMaterialId(permId);
 				materialUpdate.setProperty("DESCRIPTION", "Alloy");
 				return facade.updateMaterials([ materialUpdate ]);
@@ -1232,25 +1232,25 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updatePropertyTypes()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("PROPERTY_TYPE");
 			var description = "Description of " + code;
 			var label = "Label of " + code;
 			var metaData1 = {"greetings" : "hello test"};
 
 			var fCreate = function(facade) {
-				var creation = new c.PropertyTypeCreation();
+				var creation = new dtos.PropertyTypeCreation();
 				creation.setCode(code);
 				creation.setLabel("Testing");
 				creation.setDescription("testing");
-				creation.setDataType(c.DataType.VARCHAR);
+				creation.setDataType(dtos.DataType.VARCHAR);
 				creation.setMetaData(metaData1);
 				return facade.createPropertyTypes([ creation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.PropertyTypeUpdate();
-				update.setTypeId(new c.PropertyTypePermId(code));
+				var update = new dtos.PropertyTypeUpdate();
+				update.setTypeId(new dtos.PropertyTypePermId(code));
 				update.setDescription(description);
 				update.setLabel(label);
 				var metaData = update.getMetaData();
@@ -1270,30 +1270,30 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updatePropertyTypes() convert data type ", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var propertyTypeCode = c.generateId("PROPERTY_TYPE");
 			var dataSetTypeCode = c.generateId("DATA_SET_TYPE");
 			var code = c.generateId("DATA_SET");
 			
 			var fCreate = function(facade) {
-				var propertyTypeCreation = new c.PropertyTypeCreation();
+				var propertyTypeCreation = new dtos.PropertyTypeCreation();
 				propertyTypeCreation.setCode(propertyTypeCode);
 				propertyTypeCreation.setDescription("hello");
-				propertyTypeCreation.setDataType(c.DataType.SAMPLE);
+				propertyTypeCreation.setDataType(dtos.DataType.SAMPLE);
 				propertyTypeCreation.setLabel("Test Property Type");
 				return facade.createPropertyTypes([ propertyTypeCreation ]).then(function(results) {
-					var assignmentCreation = new c.PropertyAssignmentCreation();
-					assignmentCreation.setPropertyTypeId(new c.PropertyTypePermId(propertyTypeCode));
-					var dataSetTypeCreation = new c.DataSetTypeCreation();
+					var assignmentCreation = new dtos.PropertyAssignmentCreation();
+					assignmentCreation.setPropertyTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+					var dataSetTypeCreation = new dtos.DataSetTypeCreation();
 					dataSetTypeCreation.setCode(dataSetTypeCode);
 					dataSetTypeCreation.setPropertyAssignments([ assignmentCreation ]);
 					return facade.createDataSetTypes([ dataSetTypeCreation ]).then(function(results) {
-						var creation = new c.DataSetCreation();
-						creation.setTypeId(new c.EntityTypePermId(dataSetTypeCode));
+						var creation = new dtos.DataSetCreation();
+						creation.setTypeId(new dtos.EntityTypePermId(dataSetTypeCode));
 						creation.setCode(code);
-						creation.setDataSetKind(c.DataSetKind.CONTAINER);
-						creation.setDataStoreId(new c.DataStorePermId("DSS1"));
-						creation.setExperimentId(new c.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
+						creation.setDataSetKind(dtos.DataSetKind.CONTAINER);
+						creation.setDataStoreId(new dtos.DataStorePermId("DSS1"));
+						creation.setExperimentId(new dtos.ExperimentIdentifier("/TEST/TEST-PROJECT/TEST-EXPERIMENT"));
 						creation.setProperty(propertyTypeCode, "20130412140147735-20");
 						return facade.createDataSets([ creation ]);
 					});
@@ -1301,9 +1301,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 			
 			var fUpdate = function(facade, permId) {
-				var update = new c.PropertyTypeUpdate();
-				update.setTypeId(new c.PropertyTypePermId(propertyTypeCode));
-				update.convertToDataType(c.DataType.VARCHAR);
+				var update = new dtos.PropertyTypeUpdate();
+				update.setTypeId(new dtos.PropertyTypePermId(propertyTypeCode));
+				update.convertToDataType(dtos.DataType.VARCHAR);
 				return facade.updatePropertyTypes([ update ]);
 			}
 			
@@ -1318,24 +1318,24 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("updatePlugins()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var name = c.generateId("PLUGIN");
 			var description = "Description of " + name;
 			var script = "print 'hello'";
 
 			var fCreate = function(facade) {
-				var creation = new c.PluginCreation();
+				var creation = new dtos.PluginCreation();
 				creation.setName(name);
 				creation.setScript("pass");
 				creation.setDescription("old description");
 				creation.setAvailable(false);
-				creation.setPluginType(c.PluginType.MANAGED_PROPERTY);
+				creation.setPluginType(dtos.PluginType.MANAGED_PROPERTY);
 				return facade.createPlugins([ creation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.PluginUpdate();
-				update.setPluginId(new c.PluginPermId(name));
+				var update = new dtos.PluginUpdate();
+				update.setPluginId(new dtos.PluginPermId(name));
 				update.setDescription(description);
 				update.setScript(script);
 				return facade.updatePlugins([ update ]);
@@ -1351,18 +1351,18 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateVocabularies()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("VOCABULARY");
 			var description = "Description of " + code;
 
 			var fCreate = function(facade) {
-				var creation = new c.VocabularyCreation();
+				var creation = new dtos.VocabularyCreation();
 				creation.setCode(code);
 				return facade.createVocabularies([ creation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.VocabularyUpdate();
+				var update = new dtos.VocabularyUpdate();
 				update.setVocabularyId(permId);
 				update.setDescription(description);
 				update.setChosenFromList(true);
@@ -1381,19 +1381,19 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateVocabularyTerms()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("VOCABULARY_TERM");
 			var description = "Description of " + code;
 
 			var fCreate = function(facade) {
-				var termCreation = new c.VocabularyTermCreation();
-				termCreation.setVocabularyId(new c.VocabularyPermId("TEST-VOCABULARY"));
+				var termCreation = new dtos.VocabularyTermCreation();
+				termCreation.setVocabularyId(new dtos.VocabularyPermId("TEST-VOCABULARY"));
 				termCreation.setCode(code);
 				return facade.createVocabularyTerms([ termCreation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var termUpdate = new c.VocabularyTermUpdate();
+				var termUpdate = new dtos.VocabularyTermUpdate();
 				termUpdate.setVocabularyTermId(permId);
 				termUpdate.setDescription(description);
 				return facade.updateVocabularyTerms([ termUpdate ]);
@@ -1409,20 +1409,20 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateExternalDms()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("EDMS");
 
 			var fCreate = function(facade) {
-				var edmsCreation = new c.ExternalDmsCreation();
+				var edmsCreation = new dtos.ExternalDmsCreation();
 				edmsCreation.setCode(code);
 				edmsCreation.setLabel("Test EDMS");
-				edmsCreation.setAddressType(c.ExternalDmsAddressType.OPENBIS);
+				edmsCreation.setAddressType(dtos.ExternalDmsAddressType.OPENBIS);
 				edmsCreation.setAddress("https://my-site/q=${term}")
 				return facade.createExternalDms([ edmsCreation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var edmsUpdate = new c.ExternalDmsUpdate();
+				var edmsUpdate = new dtos.ExternalDmsUpdate();
 				edmsUpdate.setExternalDmsId(permId);
 				edmsUpdate.setLabel("Test EDMS 2");
 				edmsUpdate.setAddress("https://my-second-site/q=${term}");
@@ -1442,18 +1442,18 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateTags()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("TAG");
 			var description = "Description of " + code;
 
 			var fCreate = function(facade) {
-				var tagCreation = new c.TagCreation();
+				var tagCreation = new dtos.TagCreation();
 				tagCreation.setCode(code);
 				return facade.createTags([ tagCreation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var tagUpdate = new c.TagUpdate();
+				var tagUpdate = new dtos.TagUpdate();
 				tagUpdate.setTagId(permId);
 				tagUpdate.setDescription(description);
 				return facade.updateTags([ tagUpdate ]);
@@ -1468,23 +1468,23 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateAuthorizationGroups()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var code = c.generateId("AUTHORIZATION_GROUP");
 			var description = "Description of " + code;
 
 			var fCreate = function(facade) {
-				var creation = new c.AuthorizationGroupCreation();
+				var creation = new dtos.AuthorizationGroupCreation();
 				creation.setCode(code);
-				creation.setUserIds([ new c.PersonPermId("power_user") ]);
+				creation.setUserIds([ new dtos.PersonPermId("power_user") ]);
 				return facade.createAuthorizationGroups([ creation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.AuthorizationGroupUpdate();
+				var update = new dtos.AuthorizationGroupUpdate();
 				update.setAuthorizationGroupId(permId);
 				update.setDescription(description);
-				update.getUserIds().remove([ new c.PersonPermId("power_user") ]);
-				update.getUserIds().add([ new c.PersonPermId("admin"), new c.Me() ]);
+				update.getUserIds().remove([ new dtos.PersonPermId("power_user") ]);
+				update.getUserIds().add([ new dtos.PersonPermId("admin"), new dtos.Me() ]);
 				return facade.updateAuthorizationGroups([ update ]);
 			}
 
@@ -1502,16 +1502,16 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updatePersons()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var userId = c.generateId("USER");
 
 			var fCreate = function(facade) {
-				var creation = new c.PersonCreation();
+				var creation = new dtos.PersonCreation();
 				creation.setUserId(userId);
 				return facade.createPersons([ creation ]).then(function(permIds) {
-					var creation = new c.RoleAssignmentCreation();
+					var creation = new dtos.RoleAssignmentCreation();
 					creation.setUserId(permIds[0]);
-					creation.setRole(c.Role.ADMIN);
+					creation.setRole(dtos.Role.ADMIN);
 					return facade.createRoleAssignments([ creation ]).then(function(assignmentId) {
 						return permIds;
 					});
@@ -1519,9 +1519,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.PersonUpdate();
+				var update = new dtos.PersonUpdate();
 				update.setUserId(permId);
-				update.setSpaceId(new c.SpacePermId("TEST"))
+				update.setSpaceId(new dtos.SpacePermId("TEST"))
 				return facade.updatePersons([ update ]);
 			}
 
@@ -1535,17 +1535,17 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updatePersons() deactivate", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var userId = c.generateId("USER");
 
 			var fCreate = function(facade) {
-				var creation = new c.PersonCreation();
+				var creation = new dtos.PersonCreation();
 				creation.setUserId(userId);
 				return facade.createPersons([ creation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.PersonUpdate();
+				var update = new dtos.PersonUpdate();
 				update.setUserId(permId);
 				update.deactivate();
 				return facade.updatePersons([ update ]);
@@ -1560,21 +1560,21 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("updatePersons() deactivate and activate", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var userId = c.generateId("USER");
 
 			var fCreate = function(facade) {
-				var creation = new c.PersonCreation();
+				var creation = new dtos.PersonCreation();
 				creation.setUserId(userId);
 				return facade.createPersons([ creation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var deactivateUpdate = new c.PersonUpdate();
+				var deactivateUpdate = new dtos.PersonUpdate();
 				deactivateUpdate.setUserId(permId);
 				deactivateUpdate.deactivate();
 				return facade.updatePersons([ deactivateUpdate ]).then(function(){
-					var activateUpdate = new c.PersonUpdate();
+					var activateUpdate = new dtos.PersonUpdate();
 					activateUpdate.setUserId(permId);
 					activateUpdate.activate();
 					return facade.updatePersons([ activateUpdate ]);
@@ -1590,7 +1590,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updatePersons() webAppSettings", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var userId = c.generateId("USER");
 
 			var WEB_APP_1 = "webApp1";
@@ -1599,38 +1599,38 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			var WEB_APP_4 = "webApp4";
 
 			var fCreate = function(facade) {
-				var creation = new c.PersonCreation();
+				var creation = new dtos.PersonCreation();
 				creation.setUserId(userId);
 				return facade.createPersons([ creation ]);
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.PersonUpdate();
+				var update = new dtos.PersonUpdate();
 				update.setUserId(permId);
 
 				var webApp1Update = update.getWebAppSettings(WEB_APP_1);
-				webApp1Update.add(new c.WebAppSettingCreation("n1a", "v1a"));
-				webApp1Update.add(new c.WebAppSettingCreation("n1b", "v1b"));
+				webApp1Update.add(new dtos.WebAppSettingCreation("n1a", "v1a"));
+				webApp1Update.add(new dtos.WebAppSettingCreation("n1b", "v1b"));
 
 				var webApp2Update = update.getWebAppSettings(WEB_APP_2);
-				webApp2Update.add(new c.WebAppSettingCreation("n2a", "v2a"));
+				webApp2Update.add(new dtos.WebAppSettingCreation("n2a", "v2a"));
 
 				var webApp3Update = update.getWebAppSettings(WEB_APP_3);
-				webApp3Update.add(new c.WebAppSettingCreation("n3a", "v3a"));
+				webApp3Update.add(new dtos.WebAppSettingCreation("n3a", "v3a"));
 
 				var webApp4Update = update.getWebAppSettings(WEB_APP_4);
-				webApp4Update.add(new c.WebAppSettingCreation("n4a", "v4a"));
+				webApp4Update.add(new dtos.WebAppSettingCreation("n4a", "v4a"));
 
 				return facade.updatePersons([ update ]).then(function() {
-					var update = new c.PersonUpdate();
+					var update = new dtos.PersonUpdate();
 					update.setUserId(permId);
 
 					var webApp1Update = update.getWebAppSettings(WEB_APP_1);
-					webApp1Update.add(new c.WebAppSettingCreation("n1c", "v1c"));
+					webApp1Update.add(new dtos.WebAppSettingCreation("n1c", "v1c"));
 					webApp1Update.remove("n1b");
 
 					var webApp2Update = update.getWebAppSettings(WEB_APP_2);
-					webApp2Update.set([ new c.WebAppSettingCreation("n2a", "v2a updated"), new c.WebAppSettingCreation("n2c", "v2c") ]);
+					webApp2Update.set([ new dtos.WebAppSettingCreation("n2a", "v2a updated"), new dtos.WebAppSettingCreation("n2c", "v2c") ]);
 
 					var webApp3Update = update.getWebAppSettings(WEB_APP_3);
 					webApp3Update.set();
@@ -1661,7 +1661,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateOperationExecutions()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			var permId = null;
 
 			var fCreate = function(facade) {
@@ -1672,7 +1672,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fUpdate = function(facade, permId) {
-				var executionUpdate = new c.OperationExecutionUpdate();
+				var executionUpdate = new dtos.OperationExecutionUpdate();
 				executionUpdate.setExecutionId(permId);
 				executionUpdate.setDescription("Description " + permId.getPermId());
 				return facade.updateOperationExecutions([ executionUpdate ]);
@@ -1687,7 +1687,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updateSemanticAnnotations()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
 			var fCreate = function(facade) {
 				return c.createSemanticAnnotation(facade).then(function(permId) {
@@ -1696,7 +1696,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 			}
 
 			var fUpdate = function(facade, permId) {
-				var update = new c.SemanticAnnotationUpdate();
+				var update = new dtos.SemanticAnnotationUpdate();
 				update.setSemanticAnnotationId(permId);
 				update.setPredicateOntologyId("updatedPredicateOntologyId");
 				update.setPredicateOntologyVersion("updatedPredicateOntologyVersion");
@@ -1720,13 +1720,13 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 		
 		QUnit.test("updateQueries()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 			
-			var update = new c.QueryUpdate();
+			var update = new dtos.QueryUpdate();
 			update.setName(c.generateId("query"));
 			update.setDescription("updated description");
-			update.setDatabaseId(new c.QueryDatabaseName("openbisDB2"));
-			update.setQueryType(c.QueryType.SAMPLE);
+			update.setDatabaseId(new dtos.QueryDatabaseName("openbisDB2"));
+			update.setQueryType(dtos.QueryType.SAMPLE);
 			update.setEntityTypeCodePattern("sample type pattern");
 			update.setSql("select * from samples where perm_id = ${key};");
 			update.setPublic(true);
@@ -1756,9 +1756,9 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 		});
 
 		QUnit.test("updatePersonalAccessTokens()", function(assert) {
-			var c = new common(assert, openbis);
+			var c = new common(assert, dtos);
 
-			var update = new c.PersonalAccessTokenUpdate();
+			var update = new dtos.PersonalAccessTokenUpdate();
 			update.setAccessDate(new Date().getTime());
 
 			var fCreate = function(facade) {
@@ -1781,7 +1781,11 @@ define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', '
 	}
 
 	return function() {
-		executeModule("Update tests", openbis);
-		executeModule("Update tests (executeOperations)", openbisExecuteOperations);
+		executeModule("Update tests (RequireJS)", new openbis(), dtos);
+		executeModule("Update tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos);
+		executeModule("Update tests (module UMD)", new window.openbis.openbis(), window.openbis);
+		executeModule("Update tests (module UMD - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis);
+		executeModule("Update tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM);
+		executeModule("Update tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM);
 	}
 });