diff --git a/full/src/main/java/de/ids_mannheim/korap/dto/ResourceDto.java b/full/src/main/java/de/ids_mannheim/korap/dto/ResourceDto.java
index acf2001..8b03ec9 100644
--- a/full/src/main/java/de/ids_mannheim/korap/dto/ResourceDto.java
+++ b/full/src/main/java/de/ids_mannheim/korap/dto/ResourceDto.java
@@ -1,6 +1,5 @@
 package de.ids_mannheim.korap.dto;
 
-import java.util.List;
 import java.util.Map;
 
 import lombok.Getter;
diff --git a/full/src/main/java/de/ids_mannheim/korap/entity/Annotation.java b/full/src/main/java/de/ids_mannheim/korap/entity/Annotation.java
index 1fbe3fb..fb6939f 100644
--- a/full/src/main/java/de/ids_mannheim/korap/entity/Annotation.java
+++ b/full/src/main/java/de/ids_mannheim/korap/entity/Annotation.java
@@ -10,6 +10,12 @@
 import lombok.Getter;
 import lombok.Setter;
 
+/** Describes annotation tags available in the system / used in 
+ *  annotating corpus data. 
+ * 
+ *  @author margaretha
+ *
+ */
 @Setter
 @Getter
 @Entity
diff --git a/full/src/main/java/de/ids_mannheim/korap/entity/AnnotationPair.java b/full/src/main/java/de/ids_mannheim/korap/entity/AnnotationPair.java
index ca580c3..fdd0ea8 100644
--- a/full/src/main/java/de/ids_mannheim/korap/entity/AnnotationPair.java
+++ b/full/src/main/java/de/ids_mannheim/korap/entity/AnnotationPair.java
@@ -21,11 +21,18 @@
 import lombok.Getter;
 import lombok.Setter;
 
+/** Describes annotations as a pair, e.g. foundry and layer where 
+ *  foundry denotes where the annotation comes from e.g. Tree tagger 
+ *  parser, and layer denotes the annotation layer e.g. part of speech.
+ * 
+ *  @author margaretha
+ *  @see Annotation
+ */
 @Setter
 @Getter
 @Entity
-@Table(name = "annotation_pair", 
-    uniqueConstraints=@UniqueConstraint(columnNames={"annotation1","annotation2"}))
+@Table(name = "annotation_pair", uniqueConstraints = @UniqueConstraint(
+        columnNames = { "annotation1", "annotation2" }))
 public class AnnotationPair {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -41,28 +48,29 @@
     @ManyToOne //(fetch=FetchType.LAZY) 
     @JoinColumn(name = "annotation1", insertable = false, updatable = false)
     private Annotation annotation1;
-    
+
     @Fetch(FetchMode.SELECT)
     @ManyToOne //(fetch=FetchType.LAZY) 
     @JoinColumn(name = "annotation2", insertable = false, updatable = false)
     private Annotation annotation2;
 
-    @ManyToMany(fetch=FetchType.LAZY) //(fetch=FetchType.EAGER)
-    @JoinTable(
-            name="annotation_pair_value",
-            joinColumns=@JoinColumn(name="pair_id", referencedColumnName="id"),
-            inverseJoinColumns=@JoinColumn(name="value_id", referencedColumnName="id"),
-            uniqueConstraints = @UniqueConstraint(columnNames = {
-                            "pair_id", "value_id" })
-    )
+    @ManyToMany(fetch = FetchType.LAZY) //(fetch=FetchType.EAGER)
+    @JoinTable(name = "annotation_pair_value",
+            joinColumns = @JoinColumn(name = "pair_id",
+                    referencedColumnName = "id"),
+            inverseJoinColumns = @JoinColumn(name = "value_id",
+                    referencedColumnName = "id"),
+            uniqueConstraints = @UniqueConstraint(
+                    columnNames = { "pair_id", "value_id" }))
     private Set<Annotation> values;
 
+
     @Override
     public String toString () {
         return "id=" + id + ", annotation1=" + annotationId1 + ", annotation2="
                 + annotationId1 + ", description=" + description
-                + ", annotation1= "+ annotation1
-                + ", annotation2= "+ annotation2;
-                
+                + ", annotation1= " + annotation1 + ", annotation2= "
+                + annotation2;
+
     }
 }
diff --git a/full/src/main/java/de/ids_mannheim/korap/entity/Privilege.java b/full/src/main/java/de/ids_mannheim/korap/entity/Privilege.java
new file mode 100644
index 0000000..dd9fbd1
--- /dev/null
+++ b/full/src/main/java/de/ids_mannheim/korap/entity/Privilege.java
@@ -0,0 +1,12 @@
+package de.ids_mannheim.korap.entity;
+
+/** Simple definitions of privileges.
+ *  When needed can be adopted into a database table. 
+ * 
+ * @author margaretha
+ *
+ */
+public enum Privilege {
+    
+    READ, WRITE, DELETE;
+}
diff --git a/full/src/main/java/de/ids_mannheim/korap/entity/Resource.java b/full/src/main/java/de/ids_mannheim/korap/entity/Resource.java
index 18cec9e..f08b5b3 100644
--- a/full/src/main/java/de/ids_mannheim/korap/entity/Resource.java
+++ b/full/src/main/java/de/ids_mannheim/korap/entity/Resource.java
@@ -14,6 +14,12 @@
 import lombok.Getter;
 import lombok.Setter;
 
+/** Describes resources having free licenses. Primarily for accommodating 
+ *  clients in providing data without login such as KorapSRU. 
+ *  
+ * @author margaretha
+ *
+ */
 @Getter
 @Setter
 @Entity
@@ -28,22 +34,24 @@
 
     @Column(name = "en_title")
     private String englishTitle;
-    
+
     @Column(name = "en_description")
     private String englishDescription;
 
-    @ManyToMany(fetch=FetchType.LAZY)
-    @JoinTable(
-            name="resource_layer",
-            joinColumns=@JoinColumn(name="resource_id", referencedColumnName="id"),
-            inverseJoinColumns=@JoinColumn(name="layer_id", referencedColumnName="id")
-    )
+    @ManyToMany(fetch = FetchType.LAZY)
+    @JoinTable(name = "resource_layer",
+            joinColumns = @JoinColumn(name = "resource_id",
+                    referencedColumnName = "id"),
+            inverseJoinColumns = @JoinColumn(name = "layer_id",
+                    referencedColumnName = "id"))
     private Set<AnnotationPair> layers;
-    
+
+
     @Override
     public String toString () {
         return "id=" + id + ", germanTitle=" + germanTitle + ", englishTitle="
-                + englishTitle + ", description="+englishDescription+ ", layers= "+layers;
+                + englishTitle + ", description=" + englishDescription
+                + ", layers= " + layers;
     }
 
 }
diff --git a/full/src/main/java/de/ids_mannheim/korap/entity/Role.java b/full/src/main/java/de/ids_mannheim/korap/entity/Role.java
new file mode 100644
index 0000000..7461fda
--- /dev/null
+++ b/full/src/main/java/de/ids_mannheim/korap/entity/Role.java
@@ -0,0 +1,37 @@
+package de.ids_mannheim.korap.entity;
+
+import java.util.List;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.ManyToMany;
+import javax.persistence.Table;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/** Describes user roles for example in managing a group or 
+ *  virtual corpora of a group.
+ *  
+ * @author margaretha
+ * @see Privilege
+ */
+@Setter
+@Getter
+@Entity
+@Table(name = "role")
+public class Role {
+    @Id
+    @Column(unique = true)
+    private String id;
+    private String privilege;
+
+    @ManyToMany(mappedBy = "roles", fetch = FetchType.LAZY)
+    private List<UserGroupMember> userGroupMembers;
+
+    public String toString () {
+        return "id=" + id + ", privilege= " + privilege;
+    }
+}
diff --git a/full/src/main/java/de/ids_mannheim/korap/entity/UserGroup.java b/full/src/main/java/de/ids_mannheim/korap/entity/UserGroup.java
index 91cf76f..7f29477 100644
--- a/full/src/main/java/de/ids_mannheim/korap/entity/UserGroup.java
+++ b/full/src/main/java/de/ids_mannheim/korap/entity/UserGroup.java
@@ -1,15 +1,28 @@
 package de.ids_mannheim.korap.entity;
 
+import java.util.List;
+
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
+import javax.persistence.OneToMany;
 import javax.persistence.Table;
 
 import lombok.Getter;
 import lombok.Setter;
 
+/** Describes user groups.
+ * 
+ * Any user may create a user group and send invitations to group 
+ * member by username. Any group member may reject the invitation
+ * or unsubscribe from the group.
+ * 
+ * @author margaretha
+ * @see UserGroupMember
+ */
 @Setter
 @Getter
 @Entity
@@ -21,12 +34,18 @@
     private int id;
     @Column(name = "name")
     private String name;
-    @Column(name = "owner_id")
-    private int ownerId;
-    
+    @Column(name = "created_by")
+    private String createdBy;
+
+    @OneToMany(fetch = FetchType.LAZY)
+    List<UserGroupMember> members;
+
+    @OneToMany(mappedBy = "virtualCorpus", fetch = FetchType.LAZY)
+    private List<VirtualCorpusAccessGroup> virtualCorpusAccessGroup;
+
+
     @Override
     public String toString () {
-        return "id=" + id + ", name= " + name + ", ownerId= "
-                + ownerId;
+        return "id=" + id + ", name= " + name + ", createdBy= " + createdBy;
     }
 }
diff --git a/full/src/main/java/de/ids_mannheim/korap/entity/UserGroupMember.java b/full/src/main/java/de/ids_mannheim/korap/entity/UserGroupMember.java
index 9f1389f..6abe32b 100644
--- a/full/src/main/java/de/ids_mannheim/korap/entity/UserGroupMember.java
+++ b/full/src/main/java/de/ids_mannheim/korap/entity/UserGroupMember.java
@@ -1,33 +1,67 @@
 package de.ids_mannheim.korap.entity;
 
+import java.util.Set;
+
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
+import javax.persistence.Index;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
+import javax.persistence.ManyToMany;
+import javax.persistence.ManyToOne;
 import javax.persistence.Table;
+import javax.persistence.UniqueConstraint;
 
 import lombok.Getter;
 import lombok.Setter;
 
+/** Describes members of user groups.
+ * 
+ *  @author margaretha
+ *  @see UserGroup
+ *  @see Role
+ */
 @Setter
 @Getter
 @Entity
-@Table(name = "user_group_member")
+@Table(name = "user_group_member",
+        indexes = { @Index(unique = true, columnList = "user_id, group_id") })
 public class UserGroupMember {
 
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private int id;
-    @Column(name = "group_id")
-    private int groupId;
     @Column(name = "user_id")
     private int userId;
     private String status;
-    
+    @Column(name = "created_by")
+    private String createdBy;
+    @Column(name = "deleted_by")
+    private String deletedBy;
+
+    @ManyToOne(fetch = FetchType.LAZY)
+    @JoinColumn(name = "group_id")
+    private UserGroup group;
+
+    @ManyToMany(fetch = FetchType.LAZY)
+    @JoinTable(name = "group_member_role",
+            joinColumns = @JoinColumn(name = "group_member_id",
+                    referencedColumnName = "id"),
+            inverseJoinColumns = @JoinColumn(name = "role_id",
+                    referencedColumnName = "id"),
+            uniqueConstraints = @UniqueConstraint(
+                    columnNames = { "group_member_id", "role_id" }))
+    private Set<Role> roles;
+
+
     @Override
     public String toString () {
-        return "id=" + id + ", groupId= " + groupId + ", userId= "
-                + userId;
+        return "id=" + id + ", group= " + group + ", userId= " + userId
+                + ", createdBy= " + createdBy + ", deletedBy= " + deletedBy
+                + ", roles=" + roles;
     }
 }
diff --git a/full/src/main/java/de/ids_mannheim/korap/entity/VirtualCorpus.java b/full/src/main/java/de/ids_mannheim/korap/entity/VirtualCorpus.java
index dd050fc..b100600 100644
--- a/full/src/main/java/de/ids_mannheim/korap/entity/VirtualCorpus.java
+++ b/full/src/main/java/de/ids_mannheim/korap/entity/VirtualCorpus.java
@@ -1,15 +1,29 @@
 package de.ids_mannheim.korap.entity;
 
+import java.util.List;
+
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
+import javax.persistence.OneToMany;
 import javax.persistence.Table;
 
 import lombok.Getter;
 import lombok.Setter;
 
+/** Describes virtual corpora.
+ * 
+ *  Any user may create a virtual corpus and share it to a user group.
+ *  However, if the user is not a user-group admin, the virtual corpus 
+ *  will not be shared until a user-group admin accept his/her request.
+ *   
+ * @author margaretha
+ *
+ * @see VirtualCorpusAccessGroup
+ * @see UserGroup
+ */
 @Setter
 @Getter
 @Entity
@@ -28,8 +42,11 @@
     @Column(name = "collection_query")
     private String collectionQuery;
     private String definition;
-    @Column(name = "owner_id")
-    private String ownerId;
+    @Column(name = "created_by")
+    private String createdBy;
+
+    @OneToMany(mappedBy = "userGroup")
+    List<VirtualCorpusAccessGroup> accessGroup;
 
 
     @Override
@@ -37,6 +54,6 @@
         return "id=" + id + ", name= " + name + ", type= " + type + ", status= "
                 + status + ", description=" + description + ", requiredAccess="
                 + requiredAccess + ", collectionQuery= " + collectionQuery
-                + ", definition= " + definition + ", ownerId= " + ownerId;
+                + ", definition= " + definition + ", createdBy= " + createdBy;
     }
 }
diff --git a/full/src/main/java/de/ids_mannheim/korap/entity/VirtualCorpusAccessGroup.java b/full/src/main/java/de/ids_mannheim/korap/entity/VirtualCorpusAccessGroup.java
index 9b4ba9a..eb1fcb1 100644
--- a/full/src/main/java/de/ids_mannheim/korap/entity/VirtualCorpusAccessGroup.java
+++ b/full/src/main/java/de/ids_mannheim/korap/entity/VirtualCorpusAccessGroup.java
@@ -5,29 +5,53 @@
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
+import javax.persistence.Index;
+import javax.persistence.ManyToOne;
+import javax.persistence.PrimaryKeyJoinColumn;
 import javax.persistence.Table;
 
 import lombok.Getter;
 import lombok.Setter;
 
+/** Describes the relationship between virtual corpora and user groups, 
+ *  i.e. which groups may access which virtual corpora, and the history 
+ *  of group-access management.  
+ * 
+ * @author margaretha
+ * @see VirtualCorpus
+ * @see UserGroup
+ */
 @Setter
 @Getter
 @Entity
-@Table(name = "vc_access_group")
+@Table(name = "vc_access_group", indexes = {
+        @Index(unique = true, columnList = "virtual_corpus_id, group_id") })
 public class VirtualCorpusAccessGroup {
 
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private int id;
-    @Column(name = "vc_id")
-    private int virtualCorpusId;
-    @Column(name = "group_id")
-    private int groupId;
+    private String status;
+    @Column(name = "created_by")
+    private String createdBy;
+    @Column(name = "approved_by")
+    private String approvedBy;
+    @Column(name = "deleted_by")
+    private String deletedBy;
+
+    @ManyToOne
+    @PrimaryKeyJoinColumn(name = "virtual_corpus_id",
+            referencedColumnName = "id")
+    private VirtualCorpus virtualCorpus;
+
+    @ManyToOne
+    @PrimaryKeyJoinColumn(name = "group_id", referencedColumnName = "id")
+    private UserGroup userGroup;
 
 
     @Override
     public String toString () {
-        return "id=" + id + ", virtualCorpusId= " + virtualCorpusId + ", groupId= "
-                + groupId;
+        return "id=" + id + ", virtualCorpus= " + virtualCorpus
+                + ", userGroup= " + userGroup;
     }
 }
