diff --git a/api/src/engine/connectors/datashield/main.connector.ts b/api/src/engine/connectors/datashield/main.connector.ts
index 4a0f2220c806b480d30a07cb1634e1aac953d943..3ee3fbb9843478b3e0d048dc193537ca350d9364 100644
--- a/api/src/engine/connectors/datashield/main.connector.ts
+++ b/api/src/engine/connectors/datashield/main.connector.ts
@@ -14,38 +14,66 @@ export default class DataShieldService implements IEngineService {
   getAlgorithms(): Algorithm[] | Promise<Algorithm[]> {
     throw new Error('Method not implemented.');
   }
+
   createExperiment(
     data: ExperimentCreateInput,
     isTransient: boolean,
   ): Experiment | Promise<Experiment> {
     throw new Error('Method not implemented.');
   }
+
   listExperiments(
     page: number,
     name: string,
   ): ListExperiments | Promise<ListExperiments> {
     throw new Error('Method not implemented.');
   }
+
   getExperiment(uuid: string): Experiment | Promise<Experiment> {
     throw new Error('Method not implemented.');
   }
+
   removeExperiment(
     uuid: string,
   ): PartialExperiment | Promise<PartialExperiment> {
     throw new Error('Method not implemented.');
   }
+
   editExperient(
     uuid: string,
     expriment: ExperimentEditInput,
   ): Experiment | Promise<Experiment> {
     throw new Error('Method not implemented.');
   }
+
   getDomains(): Domain[] {
-    throw new Error('Method not implemented.');
+    return [
+      {
+        id: 'Dummy',
+        label: 'Dummy',
+        datasets: [{ id: 'DummyDataSet' }],
+        groups: [
+          {
+            id: 'DummyGroup',
+            variables: ['DummyVar'],
+            groups: [],
+          },
+        ],
+        rootGroup: { id: 'DummyGroup', variables: [], groups: [] },
+        variables: [{ id: 'DummyVar', type: 'string' }],
+      },
+    ];
   }
 
-  getActiveUser(): Observable<string> {
-    throw new Error('Method not implemented.');
+  getActiveUser(): string {
+    const dummyUser = {
+      username: 'anonymous',
+      subjectId: 'anonymousId',
+      fullname: 'anonymous',
+      email: 'anonymous@anonymous.com',
+      agreeNDA: true,
+    };
+    return JSON.stringify(dummyUser);
   }
 
   editActiveUser(): Observable<string> {
@@ -72,11 +100,11 @@ export default class DataShieldService implements IEngineService {
     throw new Error('Method not implemented.');
   }
 
-  getExperiments(): Observable<string> {
-    throw new Error('Method not implemented.');
+  getExperiments(): string {
+    return '[]';
   }
 
-  getAlgorithmsREST(): Observable<string> {
-    throw new Error('Method not implemented.');
+  getAlgorithmsREST(): string {
+    return '[]';
   }
 }
diff --git a/api/src/engine/connectors/exareme/converters.ts b/api/src/engine/connectors/exareme/converters.ts
index 80811045c0862864d4ba704712a9b0efa606685b..07fb2b4b0cfa378b1950147be5862307d4ff4ea9 100644
--- a/api/src/engine/connectors/exareme/converters.ts
+++ b/api/src/engine/connectors/exareme/converters.ts
@@ -28,7 +28,9 @@ export const dataToGroup = (data: Hierarchy): Group => {
     id: data.code,
     label: data.label,
     groups: data.groups ? data.groups.map(dataToGroup) : [],
-    variables: data.variables ? data.variables.map(dataToVariable) : [],
+    variables: data.variables
+      ? data.variables.map((data: VariableEntity) => data.code)
+      : [],
   };
 };
 
diff --git a/api/src/engine/models/domain.model.ts b/api/src/engine/models/domain.model.ts
index 8c3c593cc06bf0611a9aac2ffdd92ccfa21fb2f3..f5b8def42a318613b348040b2eccb3ea67a7aa29 100644
--- a/api/src/engine/models/domain.model.ts
+++ b/api/src/engine/models/domain.model.ts
@@ -1,9 +1,20 @@
 import { Field, ObjectType } from '@nestjs/graphql';
 import { Category } from './category.model';
+import { Entity } from './entity.model';
 import { Group } from './group.model';
+import { Variable } from './variable.model';
 
 @ObjectType()
-export class Domain extends Group {
+export class Domain extends Entity {
+  @Field({ nullable: true })
+  description?: string;
+
+  @Field(() => [Group])
+  groups: Group[];
+
+  @Field(() => [Variable])
+  variables: Variable[];
+
   @Field(() => [Category])
   datasets: Category[];
 
diff --git a/api/src/engine/models/group.model.ts b/api/src/engine/models/group.model.ts
index c2087ba2c6023a4a3d7f17110e3e739709d08a90..0cb97a48fd77bb9300192429b034adb0505f5a9c 100644
--- a/api/src/engine/models/group.model.ts
+++ b/api/src/engine/models/group.model.ts
@@ -1,6 +1,5 @@
 import { Field, ObjectType } from '@nestjs/graphql';
 import { Entity } from './entity.model';
-import { Variable } from './variable.model';
 
 @ObjectType()
 export class Group extends Entity {
@@ -10,6 +9,6 @@ export class Group extends Entity {
   @Field(() => [Group])
   groups: Group[];
 
-  @Field(() => [Variable])
-  variables: Variable[];
+  @Field(() => [String], { description: "List of variable's ids" })
+  variables: string[];
 }
diff --git a/api/src/engine/models/variable.model.ts b/api/src/engine/models/variable.model.ts
index e3c4098e31fccbcc4bd223c82ea55225559edaaf..8650f48b1044bb07c88964ae36aeb00d0d9a3d1b 100644
--- a/api/src/engine/models/variable.model.ts
+++ b/api/src/engine/models/variable.model.ts
@@ -11,9 +11,9 @@ export class Variable extends Entity {
   @Field({ nullable: true })
   description?: string;
 
-  @Field(() => [Category])
-  enumerations: Category[];
+  @Field(() => [Category], { nullable: true, defaultValue: [] })
+  enumerations?: Category[];
 
-  @Field(() => [Group])
-  groups: Group[];
+  @Field(() => [Group], { nullable: true, defaultValue: [] })
+  groups?: Group[];
 }
diff --git a/api/src/schema.gql b/api/src/schema.gql
index aad684192e33c70fa81041ad58ef4c8d0b3bd6c8..ee828b162f66ff407881a7c9cdce312b450770e7 100644
--- a/api/src/schema.gql
+++ b/api/src/schema.gql
@@ -7,21 +7,23 @@ type Category {
   label: String
 }
 
-type Variable {
+type Group {
   id: String!
   label: String
-  type: String!
   description: String
-  enumerations: [Category!]!
   groups: [Group!]!
+
+  """List of variable's ids"""
+  variables: [String!]!
 }
 
-type Group {
+type Variable {
   id: String!
   label: String
+  type: String!
   description: String
-  groups: [Group!]!
-  variables: [Variable!]!
+  enumerations: [Category!]
+  groups: [Group!]
 }
 
 type Domain {