diff --git a/src/main/java/koz01/java2/lab10/Clas.java b/src/main/java/koz01/java2/lab10/Clas.java
index 20993fffd0a25a8e3e9384d2afbb6919aca581d9..edf245d4b1c4968947c1887ed5fce6c666f0a3a8 100644
--- a/src/main/java/koz01/java2/lab10/Clas.java
+++ b/src/main/java/koz01/java2/lab10/Clas.java
@@ -1,7 +1,5 @@
 package koz01.java2.lab10;
 
-import java.util.Set;
-
 import javax.persistence.Entity;
 
 import lombok.AllArgsConstructor;
@@ -17,8 +15,9 @@ public class Clas extends BaseEntity {
 	@Getter
 	@Setter
 	private String cname;
-
-	@Getter
-	@Setter
-	private Set<Clas> clas;
+	/*
+			@Getter
+			@Setter
+			private Set<Clas> clas;
+	*/
 }
diff --git a/src/main/java/koz01/java2/lab10/Department.java b/src/main/java/koz01/java2/lab10/Department.java
index 132b6ed07fdabd04582320a0b67314bc1b32ebee..7b21b98e2af707b3a6f53c125534688c6d22351c 100644
--- a/src/main/java/koz01/java2/lab10/Department.java
+++ b/src/main/java/koz01/java2/lab10/Department.java
@@ -1,8 +1,10 @@
+
 package koz01.java2.lab10;
 
 import java.util.List;
 
 import javax.persistence.Entity;
+import javax.persistence.OneToMany;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -18,7 +20,9 @@ public class Department extends BaseEntity {
 	@Setter
 	private String name;
 
+	@OneToMany(targetEntity = Employee.class, mappedBy = "departmentRereference")
 	@Getter
 	@Setter
 	private List<Employee> employee;
+
 }
diff --git a/src/main/java/koz01/java2/lab10/Employee.java b/src/main/java/koz01/java2/lab10/Employee.java
index 259c167f456776c25f75a0e9ff406b52bc06c37c..720e1801e8290ecb5961447a765547d71caa6d33 100644
--- a/src/main/java/koz01/java2/lab10/Employee.java
+++ b/src/main/java/koz01/java2/lab10/Employee.java
@@ -1,6 +1,9 @@
+
 package koz01.java2.lab10;
 
 import javax.persistence.Entity;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -28,8 +31,11 @@ public class Employee extends BaseEntity {
 	@Setter
 	private String deg;
 
+
+	@ManyToOne
+	@JoinColumn(name = "department_id")
 	@Setter
 	@Getter
-	private Department department;
+	private Department departmentRereference;
 
 }
diff --git a/src/main/java/koz01/java2/lab10/NonTeachingStaff.java b/src/main/java/koz01/java2/lab10/NonTeachingStaff.java
index 59b164a093a8b8cfb44417e01b5cc233a4083d68..71f5e2f33d9a6d6dfc1512c9717ee0b19de31d2d 100644
--- a/src/main/java/koz01/java2/lab10/NonTeachingStaff.java
+++ b/src/main/java/koz01/java2/lab10/NonTeachingStaff.java
@@ -1,5 +1,6 @@
 package koz01.java2.lab10;
 
+import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
 import lombok.Getter;
@@ -7,6 +8,7 @@ import lombok.NoArgsConstructor;
 import lombok.Setter;
 
 @Entity
+@DiscriminatorValue(value = "nts")
 @NoArgsConstructor
 public class NonTeachingStaff extends Staff {
 
diff --git a/src/main/java/koz01/java2/lab10/Staff.java b/src/main/java/koz01/java2/lab10/Staff.java
index 6f09a62943a09c3d44b4b9e1bf0c4f0e8a270c52..fc78ace5a342c5884c2e3f58f1fd4f5cfcea9c02 100644
--- a/src/main/java/koz01/java2/lab10/Staff.java
+++ b/src/main/java/koz01/java2/lab10/Staff.java
@@ -1,16 +1,18 @@
 package koz01.java2.lab10;
 
 import javax.persistence.Entity;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
 @Entity
+@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
 @NoArgsConstructor
 public class Staff extends BaseEntity {
 
-
 	@Getter
 	@Setter
 	private String sname;
diff --git a/src/main/java/koz01/java2/lab10/Teacher.java b/src/main/java/koz01/java2/lab10/Teacher.java
index ee1c35713f94d95bcf0dc5255461d05ca91e852e..08302449e306a3cf58dbef5c708643244bc1a9a2 100644
--- a/src/main/java/koz01/java2/lab10/Teacher.java
+++ b/src/main/java/koz01/java2/lab10/Teacher.java
@@ -1,8 +1,6 @@
 
 package koz01.java2.lab10;
 
-import java.util.Set;
-
 import javax.persistence.Entity;
 
 import lombok.AllArgsConstructor;
@@ -22,8 +20,9 @@ public class Teacher extends BaseEntity {
 	@Getter
 	@Setter
 	private String subject;
-
-	@Getter
-	@Setter
-	private Set<Clas> clasSet;
+	/*
+		@Getter
+		@Setter
+		private Set<Clas> clasSet;
+		*/
 }
diff --git a/src/main/java/koz01/java2/lab10/TeachingStaff.java b/src/main/java/koz01/java2/lab10/TeachingStaff.java
index 7900ce4ab8eda147d5aa3fba18f7223524422053..04f10e3bf2bc52b59dcc4ac560b45a3764d53323 100644
--- a/src/main/java/koz01/java2/lab10/TeachingStaff.java
+++ b/src/main/java/koz01/java2/lab10/TeachingStaff.java
@@ -1,12 +1,15 @@
 package koz01.java2.lab10;
 
+import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
+
 @Entity
+@DiscriminatorValue(value = "ts")
 @NoArgsConstructor
 public class TeachingStaff extends Staff {
 
diff --git a/src/test/java/koz01/java2/lab10/DemoJPA.java b/src/test/java/koz01/java2/lab10/DemoJPA.java
index d859bdd310779f426d8c175e05ab8154fe6107f9..5439ed21642ef7d5151207ea55a5e0b58cd175cb 100644
--- a/src/test/java/koz01/java2/lab10/DemoJPA.java
+++ b/src/test/java/koz01/java2/lab10/DemoJPA.java
@@ -2,9 +2,7 @@
 package koz01.java2.lab10;
 
 import java.util.ArrayList;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
@@ -21,6 +19,7 @@ public class DemoJPA {
 		EntityManager entitymanager = emfactory.createEntityManager();
 		entitymanager.getTransaction().begin();
 
+
 		// Teaching staff entity
 		TeachingStaff ts1 = new TeachingStaff("Gopal", "MSc MEd", "Maths");
 		TeachingStaff ts2 = new TeachingStaff("Manisha", "BSc BEd", "English");
@@ -40,152 +39,155 @@ public class DemoJPA {
 		emfactory.close();
 	}
 
-	@Test
-	public void demostrateManyToOne() {
-		EntityManagerFactory emfactory = Persistence.createEntityManagerFactory(
-			"lab10");
-		EntityManager entitymanager = emfactory.createEntityManager();
-		entitymanager.getTransaction().begin();
-
-		// Create Department Entity
-		Department department = new Department();
-		department.setName("Development");
-
-		// Store Department
-		entitymanager.persist(department);
-
-		// Create Employee1 Entity
-		Employee employee1 = new Employee();
-		employee1.setEname("Satish");
-		employee1.setSalary(45000.0);
-		employee1.setDeg("Technical Writer");
-		employee1.setDepartment(department);
-
-		// Create Employee2 Entity
-		Employee employee2 = new Employee();
-		employee2.setEname("Krishna");
-		employee2.setSalary(45000.0);
-		employee2.setDeg("Technical Writer");
-		employee2.setDepartment(department);
-
-		// Create Employee3 Entity
-		Employee employee3 = new Employee();
-		employee3.setEname("Masthanvali");
-		employee3.setSalary(50000.0);
-		employee3.setDeg("Technical Writer");
-		employee3.setDepartment(department);
-
-		// Store Employees
-		entitymanager.persist(employee1);
-		entitymanager.persist(employee2);
-		entitymanager.persist(employee3);
-
-		entitymanager.getTransaction().commit();
-		entitymanager.close();
-		emfactory.close();
-	}
-
-	@Test
-	public void demostrateOneToMany() {
-		EntityManagerFactory emfactory = Persistence.createEntityManagerFactory(
-			"lab10");
-		EntityManager entitymanager = emfactory.createEntityManager();
-		entitymanager.getTransaction().begin();
-
-		// Create Employee1 Entity
-		Employee employee1 = new Employee();
-		employee1.setEname("Satish");
-		employee1.setSalary(45000.0);
-		employee1.setDeg("Technical Writer");
-
-		// Create Employee2 Entity
-		Employee employee2 = new Employee();
-		employee2.setEname("Krishna");
-		employee2.setSalary(45000.0);
-		employee2.setDeg("Technical Writer");
-
-		// Create Employee3 Entity
-		Employee employee3 = new Employee();
-		employee3.setEname("Masthanvali");
-		employee3.setSalary(50000.0);
-		employee3.setDeg("Technical Writer");
-
-		// Store Employee
-		entitymanager.persist(employee1);
-		entitymanager.persist(employee2);
-		entitymanager.persist(employee3);
-
-		// Create Employeelist
-		List<Employee> emplist = new ArrayList<>();
-		emplist.add(employee1);
-		emplist.add(employee2);
-		emplist.add(employee3);
-
-		// Create Department Entity
-		Department department = new Department();
-		department.setName("Development");
-		department.setEmployee(emplist);
-
-		// Store Department
-		entitymanager.persist(department);
-
-		entitymanager.getTransaction().commit();
-		entitymanager.close();
-		emfactory.close();
-	}
-
-	@Test
-	public void demostrateManyToMany() {
-
-		EntityManagerFactory emfactory = Persistence.createEntityManagerFactory(
-			"lab10");
-		EntityManager entitymanager = emfactory.createEntityManager();
-		entitymanager.getTransaction().begin();
-
-		// Create Clas Entity
-		Clas clas1 = new Clas("1st", null);
-		Clas clas2 = new Clas("2nd", null);
-		Clas clas3 = new Clas("3rd", null);
-
-		// Store Clas
-		entitymanager.persist(clas1);
-		entitymanager.persist(clas2);
-		entitymanager.persist(clas3);
-
-		// Create Clas Set1
-		Set<Clas> classSet1 = new HashSet<>();
-		classSet1.add(clas1);
-		classSet1.add(clas2);
-		classSet1.add(clas3);
-
-		// Create Clas Set2
-		Set<Clas> classSet2 = new HashSet<>();
-		classSet2.add(clas3);
-		classSet2.add(clas1);
-		classSet2.add(clas2);
-
-		// Create Clas Set3
-		Set<Clas> classSet3 = new HashSet<>();
-		classSet3.add(clas2);
-		classSet3.add(clas3);
-		classSet3.add(clas1);
-
-		// Create Teacher Entity
-		Teacher teacher1 = new Teacher("Satish", "Java", classSet1);
-		Teacher teacher2 = new Teacher("Krishna", "Adv Java", classSet2);
-		Teacher teacher3 = new Teacher("Masthanvali", "DB2", classSet3);
-
-		// Store Teacher
-		entitymanager.persist(teacher1);
-		entitymanager.persist(teacher2);
-		entitymanager.persist(teacher3);
-
-		entitymanager.getTransaction().commit();
-		entitymanager.close();
-		emfactory.close();
-
-	}
-
+	/*
+			@Test
+			public void demostrateManyToOne() {
+				EntityManagerFactory emfactory = Persistence.createEntityManagerFactory(
+					"lab10");
+				EntityManager entitymanager = emfactory.createEntityManager();
+				entitymanager.getTransaction().begin();
+		
+				// Create Department Entity
+				Department department = new Department();
+				department.setName("Development");
+		
+				// Store Department
+				entitymanager.persist(department);
+		
+				// Create Employee1 Entity
+				Employee employee1 = new Employee();
+				employee1.setEname("Satish");
+				employee1.setSalary(45000.0);
+				employee1.setDeg("Technical Writer");
+				employee1.setDepartment(department);
+		
+				// Create Employee2 Entity
+				Employee employee2 = new Employee();
+				employee2.setEname("Krishna");
+				employee2.setSalary(45000.0);
+				employee2.setDeg("Technical Writer");
+				employee2.setDepartment(department);
+		
+				// Create Employee3 Entity
+				Employee employee3 = new Employee();
+				employee3.setEname("Masthanvali");
+				employee3.setSalary(50000.0);
+				employee3.setDeg("Technical Writer");
+				employee3.setDepartment(department);
+		
+				// Store Employees
+				entitymanager.persist(employee1);
+				entitymanager.persist(employee2);
+				entitymanager.persist(employee3);
+		
+				entitymanager.getTransaction().commit();
+				entitymanager.close();
+				emfactory.close();
+			}
+	
+	*/
+			@Test
+			public void demostrateOneToMany() {
+				EntityManagerFactory emfactory = Persistence.createEntityManagerFactory(
+					"lab10");
+				EntityManager entitymanager = emfactory.createEntityManager();
+				entitymanager.getTransaction().begin();
+		
+				// Create Employee1 Entity
+				Employee employee1 = new Employee();
+				employee1.setEname("Satish");
+				employee1.setSalary(45000.0);
+				employee1.setDeg("Technical Writer");
+		
+				// Create Employee2 Entity
+				Employee employee2 = new Employee();
+				employee2.setEname("Krishna");
+				employee2.setSalary(45000.0);
+				employee2.setDeg("Technical Writer");
+		
+				// Create Employee3 Entity
+				Employee employee3 = new Employee();
+				employee3.setEname("Masthanvali");
+				employee3.setSalary(50000.0);
+				employee3.setDeg("Technical Writer");
+		
+				// Store Employee
+				entitymanager.persist(employee1);
+				entitymanager.persist(employee2);
+				entitymanager.persist(employee3);
+		
+				// Create Employeelist
+				List<Employee> emplist = new ArrayList<>();
+				emplist.add(employee1);
+				emplist.add(employee2);
+				emplist.add(employee3);
+		
+				// Create Department Entity
+				Department department = new Department();
+				department.setName("Development");
+				department.setEmployee(emplist);
+		
+				// Store Department
+				entitymanager.persist(department);
+		
+				entitymanager.getTransaction().commit();
+				entitymanager.close();
+				emfactory.close();
+			}
+
+			/*
+				@Test
+				public void demostrateManyToMany() {
+			
+					EntityManagerFactory emfactory = Persistence.createEntityManagerFactory(
+						"lab10");
+					EntityManager entitymanager = emfactory.createEntityManager();
+					entitymanager.getTransaction().begin();
+			
+					// Create Clas Entity
+					Clas clas1 = new Clas("1st", null);
+					Clas clas2 = new Clas("2nd", null);
+					Clas clas3 = new Clas("3rd", null);
+			
+					// Store Clas
+					entitymanager.persist(clas1);
+					entitymanager.persist(clas2);
+					entitymanager.persist(clas3);
+			
+					// Create Clas Set1
+					Set<Clas> classSet1 = new HashSet<>();
+					classSet1.add(clas1);
+					classSet1.add(clas2);
+					classSet1.add(clas3);
+			
+					// Create Clas Set2
+					Set<Clas> classSet2 = new HashSet<>();
+					classSet2.add(clas3);
+					classSet2.add(clas1);
+					classSet2.add(clas2);
+			
+					// Create Clas Set3
+					Set<Clas> classSet3 = new HashSet<>();
+					classSet3.add(clas2);
+					classSet3.add(clas3);
+					classSet3.add(clas1);
+			
+					// Create Teacher Entity
+					Teacher teacher1 = new Teacher("Satish", "Java", classSet1);
+					Teacher teacher2 = new Teacher("Krishna", "Adv Java", classSet2);
+					Teacher teacher3 = new Teacher("Masthanvali", "DB2", classSet3);
+			
+					// Store Teacher
+					entitymanager.persist(teacher1);
+					entitymanager.persist(teacher2);
+					entitymanager.persist(teacher3);
+			
+					entitymanager.getTransaction().commit();
+					entitymanager.close();
+					emfactory.close();
+			
+				}
+			*/
 	public void demonstrateCriterie() {
 
 	}