diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/AbstractPhase.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/AbstractPhase.java
index d6d156c9c3b84873fd45ae4e7bfb27f8b6247c62..36ec29d89fdfcc2c505778ab0c1a07be7b02bc83 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/AbstractPhase.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/AbstractPhase.java
@@ -7,13 +7,14 @@ import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.Inheritance;
 import javax.persistence.InheritanceType;
+import java.io.Serializable;
 
 
 // good source for entity inheritance: http://blog.marcinchwedczuk.pl/mapping-inheritance-in-hibernate
 
 @Entity
 @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
-public abstract class AbstractPhase {
+public abstract class AbstractPhase implements Serializable {
 
     @Id
     @GeneratedValue
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/DecisionMatrixRow.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/DecisionMatrixRow.java
index 61e04cfe77c8a766c00ca1ec7ec4b89f33ad7336..b2c12701f723fb365abedb62ba2345c0d8883b4f 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/DecisionMatrixRow.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/DecisionMatrixRow.java
@@ -6,9 +6,10 @@ import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.ManyToOne;
+import java.io.Serializable;
 
 @Entity
-public class DecisionMatrixRow {
+public class DecisionMatrixRow implements Serializable {
 
     @Id
     @GeneratedValue
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Question.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Question.java
index f0432e49724f498fb5e8c368416d8d8627dc0f8f..838222863fd492c6e08359db44f1af5daf06e89c 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Question.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Question.java
@@ -14,6 +14,7 @@ import javax.persistence.ManyToMany;
 import javax.persistence.ManyToOne;
 import javax.persistence.OneToMany;
 import javax.persistence.OrderBy;
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
@@ -21,7 +22,7 @@ import java.util.List;
 import java.util.Set;
 
 @Entity
-public class Question {
+public class Question implements Serializable  {
 
     @Id
     @GeneratedValue
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionChoice.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionChoice.java
index 110fc978710e1e7dacd0d6eeb350579176661d29..45f90ba31ee274b37389539415b74f6cf2ec8beb 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionChoice.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionChoice.java
@@ -6,9 +6,10 @@ import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.ManyToOne;
+import java.io.Serializable;
 
 @Entity
-public class QuestionChoice {
+public class QuestionChoice implements Serializable {
 
     @Id
     @GeneratedValue
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionPhaseRelation.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionPhaseRelation.java
index 53f209291d08afed7b96124864aa4ff167b0b5ba..8321edc05dc370892ebff33c500ebc638bb89ba9 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionPhaseRelation.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/QuestionPhaseRelation.java
@@ -10,10 +10,11 @@ import javax.persistence.JoinColumn;
 import javax.persistence.JoinTable;
 import javax.persistence.ManyToMany;
 import javax.persistence.ManyToOne;
+import java.io.Serializable;
 import java.util.Set;
 
 @Entity
-public class QuestionPhaseRelation {
+public class QuestionPhaseRelation implements Serializable {
 
     @Id
     @GeneratedValue
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Task.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Task.java
index ceb59992fe33a76a0359723d7cd6c2cc6c81a71e..944643090b8f07f3d66f7056d09a61a9e1907318 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Task.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/domain/Task.java
@@ -6,10 +6,11 @@ import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.ManyToOne;
+import java.io.Serializable;
 
 
 @Entity
-public class Task {
+public class Task implements Serializable {
 
     @Id
     @GeneratedValue