diff --git a/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/AssociationSchema.java b/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/AssociationSchema.java
index effe3017a21d2380dbcb0617c1147814ba3193ac..134a9c066d85923d7699294e91413c02940fc652 100644
--- a/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/AssociationSchema.java
+++ b/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/AssociationSchema.java
@@ -2,7 +2,7 @@ package lc.esp.eo.sdk.schema;
 
 public class AssociationSchema extends FieldBearer{
 
-    public AssociationSchema(String type) {
-        super(type);
+    public AssociationSchema(String type, boolean isRequired) {
+        super(type, isRequired);
     }
 }
diff --git a/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/EOSchema.java b/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/EOSchema.java
index b0d7b01ed4baa1c698c89265347da2e39714922e..2e515f2f6d2b611a60684ac40411dfcac8dc1c5e 100644
--- a/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/EOSchema.java
+++ b/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/EOSchema.java
@@ -1,5 +1,7 @@
 package lc.esp.eo.sdk.schema;
 
+import java.util.HashMap;
+
 /**
  * This class implements a descriptive schema for an {@link lc.esp.eo.sdk.EO}.
  *
@@ -8,13 +10,22 @@ package lc.esp.eo.sdk.schema;
  */
 
 public class EOSchema extends FieldBearer {
+    private HashMap<String, AssociationSchema> associations = new HashMap<>();
     private final String type;
     public EOSchema(String type) {
-        super(type);
+        super(type, false);
         this.type = type;
     }
 
     public String getType() {
         return type;
     }
+
+    public void putAssociation(AssociationSchema schema) {
+        associations.put(schema.getType(), schema);
+    }
+
+    public AssociationSchema getAssociation(String name) {
+        return associations.get(name);
+    }
 }
diff --git a/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/FieldBearer.java b/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/FieldBearer.java
index f087c73faa5534cf8f3aec1710579036683feb66..ff9d485577df6a3ce5346f57a799e7183fd17c9e 100644
--- a/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/FieldBearer.java
+++ b/java/lc-esp-eo-sdk/src/main/java/lc/esp/eo/sdk/schema/FieldBearer.java
@@ -13,11 +13,13 @@ import java.util.Set;
  * @since mk20
  */
 public abstract class FieldBearer extends TypedObject {
+    private final boolean isRequired;
 
     private final HashMap<String, FieldSchema> fields = new HashMap<>();
 
-    public FieldBearer(String type) {
+    public FieldBearer(String type, boolean isRequired) {
         super(type);
+        this.isRequired = isRequired;
     }
 
     public void putField(FieldSchema field) {
@@ -35,4 +37,16 @@ public abstract class FieldBearer extends TypedObject {
         }
         return required;
     }
+
+    public boolean isRequired() {
+        return isRequired;
+    }
+
+    @Override
+    public String toString() {
+        return "FieldBearer{" +
+                "isRequired=" + isRequired +
+                ", fields=" + fields +
+                '}';
+    }
 }