diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF
index 7cfab1df4f6ce20f4003b64c5986e5653233fe81..eb37f9cfa68f42b2c6235a30cbb916cc6cf9b445 100644
--- a/META-INF/MANIFEST.MF
+++ b/META-INF/MANIFEST.MF
@@ -12,5 +12,6 @@ Export-Package: WebPageCourses,
  WebPageCourses.impl,
  WebPageCourses.util
 Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.emf.ecore;visibility:=reexport
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport
 Bundle-ActivationPolicy: lazy
diff --git a/Readme.md b/Readme.md
index ce0d528a78eac688d6eb28c675fd043b9c599d46..a55cd4c99e424d6006a6cb316ab1d6ca33990d1e 100644
--- a/Readme.md
+++ b/Readme.md
@@ -41,4 +41,15 @@ Stores information about the different types of work of the course.
 ### Work
 Has a type (exam, assignments,work) and a percentage.
 
+## HTML
+In this part we create an html page out of the ecore project.
+
+### src/main
+Where the GentHTML and GenWebCourse are. They have the code to transform from xmi to html.
+This is where the html pages are created.
+
+### To Run
+Just put in the arguments the xmi you want to run, in this case: /model/StudyProgram.xmi
+
+
 # Jorge Cristobal Martin
\ No newline at end of file
diff --git a/bin/Main/GenHTML.class b/bin/Main/GenHTML.class
new file mode 100644
index 0000000000000000000000000000000000000000..5ace31818764d732a99bbc3f220cb09f59ab6b36
Binary files /dev/null and b/bin/Main/GenHTML.class differ
diff --git a/bin/Main/GenWebCourse.class b/bin/Main/GenWebCourse.class
new file mode 100644
index 0000000000000000000000000000000000000000..2cfa9b2f772b1f1fc25c35d5c713816d5e5becb9
Binary files /dev/null and b/bin/Main/GenWebCourse.class differ
diff --git a/bin/Main/WebPage0.html b/bin/Main/WebPage0.html
new file mode 100644
index 0000000000000000000000000000000000000000..83ea7af3dd7f1223b878fb860dec12e8904cd9aa
--- /dev/null
+++ b/bin/Main/WebPage0.html
@@ -0,0 +1 @@
+<html><h1>TDT4250 Advanced Software Design</h1><br><div> <h2> Course Work </h2> <table border="1"><tr><th>Lab Hours</th><th>Lecture Hours </th></tr><tr><th>2.0</th><th>3.0</th></tr></table> </div><div> <h2> People </h2> <table border="1"><p>Department of Computer Science</p><tr><th>Name</th><th>Role </th></tr><tr><th>Hallvard Tr�tteberg</th><th>Course coordinator:</th></tr></table> </div><div> <h2> Schedule </h2> <table border="1"><tr><th>Room</th><th>Date </th><th>Time </th></tr><tr><th>K5</th><th>Monday </th><th>10:15 - 11:00</th></tr><tr><th>A34</th><th>Tuesday</th><th>14:15 - 16:00</th></tr><tr><th>F6</th><th>Wednesday</th><th>10:15 - 12:00</th></tr><tr><th>A32</th><th>Thursday</th><th>12:15 - 14:00</th></tr></table> </div><div> <h2> Work </h2> <table border="1"><tr><th>Type</th><th>Porcentage </th></tr><tr><th>Exam</th><th>70.0</th></tr><tr><th>Assignments</th><th>30.0</th></tr></table> </div><div> <h2> Credit Reduction Courses </h2> <table border="1"><tr><th>Code</th><th>Credit Reduction </th></tr><tr><th>SIF8060</th><th>7.5</th></tr></table> </div><div> <h2> Requirement Courses </h2> <table border="1"><tr><th>Name</th><th>Code </th><th>Type </th></tr><tr><th>Object-oriented programming</th><th>TDT4100 </th><th>Recommended</th></tr><tr><th>Software Engineering</th><th>TDT4140 </th><th>Recommended</th></tr><tr><th> Information Systems</th><th>TDT4175</th><th>Recommended</th></tr><tr><th> Software Architecture</th><th>TDT4240</th><th>Recommended</th></tr></table> </div></html>
diff --git a/bin/Main/webpage1.html b/bin/Main/webpage1.html
new file mode 100644
index 0000000000000000000000000000000000000000..b10efc8a92b449597def924f17d979956f8ae282
--- /dev/null
+++ b/bin/Main/webpage1.html
@@ -0,0 +1 @@
+<html><h1>TDT4100 Object-Oriented Programming</h1><br><div> <h2> Course Work </h2> <table border="1"><tr><th>Lab Hours</th><th>Lecture Hours </th></tr><tr><th>7.0</th><th>4.0</th></tr></table> </div><div> <h2> People </h2> <table border="1"><p>Department of Computer Science</p><tr><th>Name</th><th>Role </th></tr><tr><th>Hallvard Tr�tteberg</th><th>Course coordinator</th></tr><tr><th>Hallvard Tr�tteberg</th><th>Lecturer</th></tr><tr><th>Rune S�tre</th><th>Lecturer</th></tr></table> </div><div> <h2> Schedule </h2> <table border="1"><tr><th>Room</th><th>Date </th><th>Time </th></tr><tr><th>F1</th><th>Monday</th><th>12-14</th></tr><tr><th>F1</th><th>Wednesday</th><th>12-14</th></tr><tr><th>R1</th><th>Thursday</th><th>12-14</th></tr></table> </div><div> <h2> Work </h2> <table border="1"><tr><th>Type</th><th>Porcentage </th></tr><tr><th>Exam</th><th>100.0</th></tr></table> </div><div> <h2> Credit Reduction Courses </h2> <table border="1"><tr><th>Code</th><th>Credit Reduction </th></tr><tr><th>IT1104</th><th>7.5</th></tr><tr><th>SIF8005</th><th>7.5</th></tr><tr><th>TDT4102</th><th>5.0</th></tr><tr><th>TDT4130</th><th>3.7</th></tr></table> </div><div> <h2> Requirement Courses </h2> <table border="1"><tr><th>Name</th><th>Code </th><th>Type </th></tr></table> </div></html>
diff --git a/bin/WebPageCourses/Course.class b/bin/WebPageCourses/Course.class
index 6755df05880bfc87355e3ba28fb65265c4a12624..bf05c551317220c2b247037cff2dcc936ff72134 100644
Binary files a/bin/WebPageCourses/Course.class and b/bin/WebPageCourses/Course.class differ
diff --git a/bin/WebPageCourses/RelatedCourses.class b/bin/WebPageCourses/RelatedCourses.class
index 8b85b42e9791e0f601f0ddf5500dc72f2c52c194..7b70ca0a447430213b8e94933bbc46c2aae71a0b 100644
Binary files a/bin/WebPageCourses/RelatedCourses.class and b/bin/WebPageCourses/RelatedCourses.class differ
diff --git a/bin/WebPageCourses/Requierement.class b/bin/WebPageCourses/Requierement.class
deleted file mode 100644
index 50976b2a9b10daaf3dedfd659a8d57c41aa48aa8..0000000000000000000000000000000000000000
Binary files a/bin/WebPageCourses/Requierement.class and /dev/null differ
diff --git a/bin/WebPageCourses/Requirement.class b/bin/WebPageCourses/Requirement.class
new file mode 100644
index 0000000000000000000000000000000000000000..7776c5b57105aacfd70f621783f7b4e2c47ae902
Binary files /dev/null and b/bin/WebPageCourses/Requirement.class differ
diff --git a/bin/WebPageCourses/WebPageCoursesFactory.class b/bin/WebPageCourses/WebPageCoursesFactory.class
index 71e584eb98a71ead3dcff033668c6de68a6727f4..b3f68910e5560d069b406f437958440657f2cabf 100644
Binary files a/bin/WebPageCourses/WebPageCoursesFactory.class and b/bin/WebPageCourses/WebPageCoursesFactory.class differ
diff --git a/bin/WebPageCourses/WebPageCoursesPackage$Literals.class b/bin/WebPageCourses/WebPageCoursesPackage$Literals.class
index dc8a7f29d50f2fb3b8914bd38e46fa92a4eff500..02fbc9c214e309473b338c22582b0d310d67afd6 100644
Binary files a/bin/WebPageCourses/WebPageCoursesPackage$Literals.class and b/bin/WebPageCourses/WebPageCoursesPackage$Literals.class differ
diff --git a/bin/WebPageCourses/WebPageCoursesPackage.class b/bin/WebPageCourses/WebPageCoursesPackage.class
index 629f4e2768895b7415d574c061f7d1ced8e5f0f4..d3ee909aa12d52d01aea891e43cf5f14603e58b2 100644
Binary files a/bin/WebPageCourses/WebPageCoursesPackage.class and b/bin/WebPageCourses/WebPageCoursesPackage.class differ
diff --git a/bin/WebPageCourses/impl/CourseImpl.class b/bin/WebPageCourses/impl/CourseImpl.class
index da5101953bfa0cdd059061a34c33bc0083a206d9..e861e438183f8b59e0b4319ed152d1ab0c136788 100644
Binary files a/bin/WebPageCourses/impl/CourseImpl.class and b/bin/WebPageCourses/impl/CourseImpl.class differ
diff --git a/bin/WebPageCourses/impl/RelatedCoursesImpl.class b/bin/WebPageCourses/impl/RelatedCoursesImpl.class
index afff70383ba5ff2388c6247550584e89f495831b..f571bc5cbfc8d34062929322deb64631e1fc8c3b 100644
Binary files a/bin/WebPageCourses/impl/RelatedCoursesImpl.class and b/bin/WebPageCourses/impl/RelatedCoursesImpl.class differ
diff --git a/bin/WebPageCourses/impl/RequierementImpl.class b/bin/WebPageCourses/impl/RequirementImpl.class
similarity index 78%
rename from bin/WebPageCourses/impl/RequierementImpl.class
rename to bin/WebPageCourses/impl/RequirementImpl.class
index 69759382668ccc7617b2c23797889b362d94702f..6fd29e8f531e15169f403d6493b6c8c7526691ff 100644
Binary files a/bin/WebPageCourses/impl/RequierementImpl.class and b/bin/WebPageCourses/impl/RequirementImpl.class differ
diff --git a/bin/WebPageCourses/impl/StudyProgramImpl.class b/bin/WebPageCourses/impl/StudyProgramImpl.class
index 4ccb474bd2744769a98e2def2b6158a446a588a4..075119083744fb8b98132018a08e7251c55d0871 100644
Binary files a/bin/WebPageCourses/impl/StudyProgramImpl.class and b/bin/WebPageCourses/impl/StudyProgramImpl.class differ
diff --git a/bin/WebPageCourses/impl/WebPageCoursesFactoryImpl.class b/bin/WebPageCourses/impl/WebPageCoursesFactoryImpl.class
index 33e43675234a32d2b3f7f0f9657b15aaa7bdd575..160480501f8677c937d4a9c9a0487287dc2bd352 100644
Binary files a/bin/WebPageCourses/impl/WebPageCoursesFactoryImpl.class and b/bin/WebPageCourses/impl/WebPageCoursesFactoryImpl.class differ
diff --git a/bin/WebPageCourses/impl/WebPageCoursesPackageImpl.class b/bin/WebPageCourses/impl/WebPageCoursesPackageImpl.class
index 550ee7f5fee50507d8ec3a7bf3dc3eeb7afb0d4c..56ba461bb23a2bde743584ecd238d170394b5652 100644
Binary files a/bin/WebPageCourses/impl/WebPageCoursesPackageImpl.class and b/bin/WebPageCourses/impl/WebPageCoursesPackageImpl.class differ
diff --git a/bin/WebPageCourses/util/WebPageCoursesAdapterFactory$1.class b/bin/WebPageCourses/util/WebPageCoursesAdapterFactory$1.class
index aad769f498abad3eb9953cc47215ecde7b8b271c..bfc46040b128be888bc75e64993f489a6009aec6 100644
Binary files a/bin/WebPageCourses/util/WebPageCoursesAdapterFactory$1.class and b/bin/WebPageCourses/util/WebPageCoursesAdapterFactory$1.class differ
diff --git a/bin/WebPageCourses/util/WebPageCoursesAdapterFactory.class b/bin/WebPageCourses/util/WebPageCoursesAdapterFactory.class
index e1c14671a4eda452f9abe95dde5fedb325a8470c..a2795a1b1802265da40ebe709552cd9c8d1288f0 100644
Binary files a/bin/WebPageCourses/util/WebPageCoursesAdapterFactory.class and b/bin/WebPageCourses/util/WebPageCoursesAdapterFactory.class differ
diff --git a/bin/WebPageCourses/util/WebPageCoursesResourceFactoryImpl.class b/bin/WebPageCourses/util/WebPageCoursesResourceFactoryImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..faa6456bcf5c13ecb76f4c11dd4a05242e92c8b9
Binary files /dev/null and b/bin/WebPageCourses/util/WebPageCoursesResourceFactoryImpl.class differ
diff --git a/bin/WebPageCourses/util/WebPageCoursesResourceImpl.class b/bin/WebPageCourses/util/WebPageCoursesResourceImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..f1fbb746d531ee9babb5dfba5de826c2508ac318
Binary files /dev/null and b/bin/WebPageCourses/util/WebPageCoursesResourceImpl.class differ
diff --git a/bin/WebPageCourses/util/WebPageCoursesSwitch.class b/bin/WebPageCourses/util/WebPageCoursesSwitch.class
index 33be6dcdba948eea6d4305b1e4e6a5ee6a6f29e1..46c191992f224f2fa1b619f209bbba126f983254 100644
Binary files a/bin/WebPageCourses/util/WebPageCoursesSwitch.class and b/bin/WebPageCourses/util/WebPageCoursesSwitch.class differ
diff --git a/bin/WebPageCourses/util/WebPageCoursesValidator.class b/bin/WebPageCourses/util/WebPageCoursesValidator.class
index 5de1c241db41c1b9fb5ed4fdee5c453fd64c0296..8d1aa1c857520b0314e9766587ff8f7bce94bb3f 100644
Binary files a/bin/WebPageCourses/util/WebPageCoursesValidator.class and b/bin/WebPageCourses/util/WebPageCoursesValidator.class differ
diff --git a/model/coursewebpage.ecore b/model/coursewebpage.ecore
index c6e52e84f425d6466c951516b0a8abbe012d0499..c01321f9f0ed4ffa27673ecb7ba1b56b9fb05284 100644
--- a/model/coursewebpage.ecore
+++ b/model/coursewebpage.ecore
@@ -20,6 +20,8 @@
         containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="relatedcourses" eType="#//RelatedCourses"
         containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="studyprograms" eType="#//StudyProgram"
+        eOpposite="#//StudyProgram/courses"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CourseInstance">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="semester" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
@@ -58,7 +60,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="schedule" upperBound="-1"
         eType="#//Schedule"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="courses" upperBound="-1"
-        eType="#//Course" containment="true"/>
+        eType="#//Course" containment="true" eOpposite="#//Course/studyprograms"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Coursework">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="lectureHours" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
diff --git a/model/coursewebpage.genmodel b/model/coursewebpage.genmodel
index 878892dde9f809b498727e87c50c559c686c3e30..34d5026221626a42850fa709e7a2726c49fc04f2 100644
--- a/model/coursewebpage.genmodel
+++ b/model/coursewebpage.genmodel
@@ -5,7 +5,8 @@
     importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
     operationReflection="true" importOrganizing="true">
   <foreignModel>coursewebpage.ecore</foreignModel>
-  <genPackages prefix="WebPageCourses" disposableProviderFactory="true" ecorePackage="coursewebpage.ecore#/">
+  <genPackages prefix="WebPageCourses" resource="XMI" disposableProviderFactory="true"
+      ecorePackage="coursewebpage.ecore#/">
     <genClasses ecoreClass="coursewebpage.ecore#//Course">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference coursewebpage.ecore#//Course/instances"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute coursewebpage.ecore#//Course/code"/>
@@ -14,6 +15,7 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute coursewebpage.ecore#//Course/credits"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference coursewebpage.ecore#//Course/coursework"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference coursewebpage.ecore#//Course/relatedcourses"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference coursewebpage.ecore#//Course/studyprograms"/>
     </genClasses>
     <genClasses ecoreClass="coursewebpage.ecore#//CourseInstance">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute coursewebpage.ecore#//CourseInstance/semester"/>
@@ -25,10 +27,10 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute coursewebpage.ecore#//People/Role"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute coursewebpage.ecore#//People/name"/>
     </genClasses>
-    <genClasses ecoreClass="coursewebpage.ecore#//Requierement">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute coursewebpage.ecore#//Requierement/code"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute coursewebpage.ecore#//Requierement/name"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute coursewebpage.ecore#//Requierement/TypeOfRequierement"/>
+    <genClasses ecoreClass="coursewebpage.ecore#//Requirement">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute coursewebpage.ecore#//Requirement/code"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute coursewebpage.ecore#//Requirement/name"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute coursewebpage.ecore#//Requirement/TypeOfRequierement"/>
     </genClasses>
     <genClasses ecoreClass="coursewebpage.ecore#//EvaluationForm">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference coursewebpage.ecore#//EvaluationForm/Work"/>
diff --git a/plugin.xml b/plugin.xml
index 2de5c9fad336d581c3f5a8de174db81dd86cb204..ebe5305909393aa51326bbe5ef091927755de8cf 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -14,4 +14,11 @@
             genModel="model/coursewebpage.genmodel"/>
    </extension>
 
+   <extension point="org.eclipse.emf.ecore.extension_parser">
+      <!-- @generated coursewebpage -->
+      <parser
+            type="webpagecourses"
+            class="WebPageCourses.util.WebPageCoursesResourceFactoryImpl"/>
+   </extension>
+
 </plugin>
diff --git a/src/Main/GenHTML.java b/src/Main/GenHTML.java
new file mode 100644
index 0000000000000000000000000000000000000000..7a556ba069dfb53c82e379d5ad8b162ec290d12e
--- /dev/null
+++ b/src/Main/GenHTML.java
@@ -0,0 +1,133 @@
+package Main;
+
+import java.io.FileNotFoundException;
+
+import java.io.PrintWriter;
+
+import java.util.ArrayList;
+
+
+import WebPageCourses.Course;
+
+import WebPageCourses.Coursework;
+import WebPageCourses.Organization;
+import WebPageCourses.StudyProgram;
+import WebPageCourses.CreditReductionCourse;
+import WebPageCourses.People;
+import WebPageCourses.Schedule;
+import WebPageCourses.EvaluationForm;
+import WebPageCourses.Requirement;
+import WebPageCourses.Work;
+import WebPageCourses.RelatedCourses;
+import WebPageCourses.Timetable;
+
+
+public class GenHTML {
+	
+	
+	ArrayList<String> genHtml(StudyProgram studyprogram) throws FileNotFoundException{
+			ArrayList<String> strings = new ArrayList<String>();
+			
+		for(Course course : studyprogram.getCourses()) {
+			strings.add(genCourse(course));
+		}
+		
+			for(int i = 0; i < strings.size(); i++) {
+				PrintWriter out = new PrintWriter("src/Main/WebPage" + i + ".html");
+				out.println(strings.get(i));
+				out.close();
+			}
+		
+		return strings;
+	}
+
+
+
+	String genCourse(Course course) {
+		String html = "<html>" + "<h1>"	+ course.getCode() + " " + course.getName()	+ "</h1>" + "<br>"
+				+ genCourseWork(course)	+ genPeople(course) + genSchedule(course) + genWork(course)
+				+ genCreditReduction(course) + genRequirement(course) + "</html>" ;
+
+		return html;
+	}
+
+	
+	
+	String genCourseWork(Course course) {
+		Coursework coursework = course.getCoursework();
+		String table = "<div> <h2> Course Work </h2> <table border=\"1\">" +"<tr>" + "<th>"	+ "Lab Hours" + "</th>"
+						+ "<th>" + "Lecture Hours" + " </th>" + "</tr>"	+ "<tr>" + "<th>" + coursework.getLabHours()
+						+ "</th>" + "<th>" + coursework.getLectureHours() + "</th>"	+ "</tr>" +"</table> </div>";
+		return table;
+	}
+
+	
+	String genPeople(Course course) {
+		Organization organization = course.getInstances().get(0).getOrganizations().get(0);
+		String table = "<div> <h2> People </h2> <table border=\"1\">" + "<p>"  + organization.getDepartment()
+						+ "</p>" +"<tr>" + "<th>" + "Name" + "</th>" + "<th>" + "Role" + " </th>" + "</tr>";
+		for (People people : organization.getPeople()) {
+			table += "<tr>"	+ "<th>" + people.getName()	+ "</th>" + "<th>" + people.getRole()+ "</th>"
+				  + "</tr>";
+		}
+		table += "</table> </div>";
+		return table;
+
+	}
+	
+		
+	String genSchedule(Course course) {
+		Timetable timetable = course.getInstances().get(0).getTimetable();
+		String table = "<div> <h2> Schedule </h2> <table border=\"1\">" +"<tr>"	+ "<th>"+ "Room" + "</th>"
+						+ "<th>" + "Date" + " </th>" + "<th>" + "Time" + " </th>" + "</tr>";
+			for (Schedule schedule : timetable.getSchedule()) {
+			table += "<tr>"	+ "<th>" + schedule.getRoom() + "</th>" + "<th>" + schedule.getDate()
+				  + "</th>" + "<th>" + schedule.getTime()	+ "</th>" + "</tr>";
+			}
+			table += "</table> </div>";
+			return table;
+		}
+
+			
+	String genWork(Course course) {
+		EvaluationForm evaluation = course.getInstances().get(0).getEvaluationform();
+		String table = "<div> <h2> Work </h2> <table border=\"1\">"	+"<tr>"	+ "<th>" + "Type" + "</th>"
+							+ "<th>" + "Porcentage"	+ " </th>" + "</tr>";
+		for (Work work : evaluation.getWork()) {
+			table += "<tr>"	+ "<th>" + work.getName() + "</th>"	+ "<th>" + work.getPorcentage()
+				  + "</th>" + "</tr>";
+		}
+		table += "</table> </div>";
+		return table;
+
+	}
+	
+		
+	String genRequirement (Course course) {
+		RelatedCourses related = course.getRelatedcourses();
+		String table = "<div> <h2> Requirement Courses </h2> <table border=\"1\">" +"<tr>" + "<th>" + "Name"
+						+ "</th>" + "<th>" + "Code" + " </th>" + "<th>" + "Type" + " </th>"	+ "</tr>";
+		for (Requirement requirement : related.getRequiredcourses()) {
+			table += "<tr>" + "<th>" + requirement.getName() + "</th>" + "<th>"	+ requirement.getCode()
+				  + "</th>" + "<th>" + requirement.getTypeOfRequierement() + "</th>" + "</tr>";
+		}
+		table += "</table> </div>";
+		return table;
+	}
+	
+	
+	String genCreditReduction (Course course) {
+		RelatedCourses related = course.getRelatedcourses();
+		String table = "<div> <h2> Credit Reduction Courses </h2> <table border=\"1\">"	+"<tr>" + "<th>" + "Code"
+						+ "</th>" + "<th>" + "Credit Reduction"	+ " </th>" + "</tr>";
+		for (CreditReductionCourse reduction : related.getReductioncourses()) {
+			table += "<tr>"	+ "<th>" + reduction.getCode() + "</th>" + "<th>" + reduction.getCreditReduction()
+				  + "</th>" + "</tr>";
+		}
+		table += "</table> </div>";
+		return table;
+	}
+	
+	
+	
+}
diff --git a/src/Main/GenWebCourse.java b/src/Main/GenWebCourse.java
new file mode 100644
index 0000000000000000000000000000000000000000..ee2e133efe24314eaa99473751419c44c4ed7423
--- /dev/null
+++ b/src/Main/GenWebCourse.java
@@ -0,0 +1,46 @@
+package Main;
+
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+
+
+import WebPageCourses.StudyProgram;
+import WebPageCourses.WebPageCoursesPackage;
+import WebPageCourses.util.WebPageCoursesResourceFactoryImpl;
+
+
+public class GenWebCourse {
+	
+	public static void main(String[] args) throws IOException {
+		
+		StudyProgram studyprogram = genStudy(args[0]);
+		GenHTML generator = new GenHTML();
+		generator.genHtml(studyprogram);
+	}
+		
+	public static StudyProgram genStudy(String args) throws IOException {
+		ResourceSet resourceSet = new ResourceSetImpl();
+		resourceSet.getPackageRegistry().put(WebPageCoursesPackage.eNS_URI, WebPageCoursesPackage.eINSTANCE);
+		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new WebPageCoursesResourceFactoryImpl());
+		Resource resource = resourceSet.getResource(URI.createFileURI(args), true);
+			for (EObject eObject : resource.getContents()) {
+				if (eObject instanceof StudyProgram) {
+					return (StudyProgram) eObject;
+				}
+			}	
+		
+		return null;
+	}
+	
+	
+}
diff --git a/src/Main/WebPage0.html b/src/Main/WebPage0.html
new file mode 100644
index 0000000000000000000000000000000000000000..83ea7af3dd7f1223b878fb860dec12e8904cd9aa
--- /dev/null
+++ b/src/Main/WebPage0.html
@@ -0,0 +1 @@
+<html><h1>TDT4250 Advanced Software Design</h1><br><div> <h2> Course Work </h2> <table border="1"><tr><th>Lab Hours</th><th>Lecture Hours </th></tr><tr><th>2.0</th><th>3.0</th></tr></table> </div><div> <h2> People </h2> <table border="1"><p>Department of Computer Science</p><tr><th>Name</th><th>Role </th></tr><tr><th>Hallvard Tr�tteberg</th><th>Course coordinator:</th></tr></table> </div><div> <h2> Schedule </h2> <table border="1"><tr><th>Room</th><th>Date </th><th>Time </th></tr><tr><th>K5</th><th>Monday </th><th>10:15 - 11:00</th></tr><tr><th>A34</th><th>Tuesday</th><th>14:15 - 16:00</th></tr><tr><th>F6</th><th>Wednesday</th><th>10:15 - 12:00</th></tr><tr><th>A32</th><th>Thursday</th><th>12:15 - 14:00</th></tr></table> </div><div> <h2> Work </h2> <table border="1"><tr><th>Type</th><th>Porcentage </th></tr><tr><th>Exam</th><th>70.0</th></tr><tr><th>Assignments</th><th>30.0</th></tr></table> </div><div> <h2> Credit Reduction Courses </h2> <table border="1"><tr><th>Code</th><th>Credit Reduction </th></tr><tr><th>SIF8060</th><th>7.5</th></tr></table> </div><div> <h2> Requirement Courses </h2> <table border="1"><tr><th>Name</th><th>Code </th><th>Type </th></tr><tr><th>Object-oriented programming</th><th>TDT4100 </th><th>Recommended</th></tr><tr><th>Software Engineering</th><th>TDT4140 </th><th>Recommended</th></tr><tr><th> Information Systems</th><th>TDT4175</th><th>Recommended</th></tr><tr><th> Software Architecture</th><th>TDT4240</th><th>Recommended</th></tr></table> </div></html>
diff --git a/src/Main/webpage1.html b/src/Main/webpage1.html
new file mode 100644
index 0000000000000000000000000000000000000000..b10efc8a92b449597def924f17d979956f8ae282
--- /dev/null
+++ b/src/Main/webpage1.html
@@ -0,0 +1 @@
+<html><h1>TDT4100 Object-Oriented Programming</h1><br><div> <h2> Course Work </h2> <table border="1"><tr><th>Lab Hours</th><th>Lecture Hours </th></tr><tr><th>7.0</th><th>4.0</th></tr></table> </div><div> <h2> People </h2> <table border="1"><p>Department of Computer Science</p><tr><th>Name</th><th>Role </th></tr><tr><th>Hallvard Tr�tteberg</th><th>Course coordinator</th></tr><tr><th>Hallvard Tr�tteberg</th><th>Lecturer</th></tr><tr><th>Rune S�tre</th><th>Lecturer</th></tr></table> </div><div> <h2> Schedule </h2> <table border="1"><tr><th>Room</th><th>Date </th><th>Time </th></tr><tr><th>F1</th><th>Monday</th><th>12-14</th></tr><tr><th>F1</th><th>Wednesday</th><th>12-14</th></tr><tr><th>R1</th><th>Thursday</th><th>12-14</th></tr></table> </div><div> <h2> Work </h2> <table border="1"><tr><th>Type</th><th>Porcentage </th></tr><tr><th>Exam</th><th>100.0</th></tr></table> </div><div> <h2> Credit Reduction Courses </h2> <table border="1"><tr><th>Code</th><th>Credit Reduction </th></tr><tr><th>IT1104</th><th>7.5</th></tr><tr><th>SIF8005</th><th>7.5</th></tr><tr><th>TDT4102</th><th>5.0</th></tr><tr><th>TDT4130</th><th>3.7</th></tr></table> </div><div> <h2> Requirement Courses </h2> <table border="1"><tr><th>Name</th><th>Code </th><th>Type </th></tr></table> </div></html>
diff --git a/src/WebPageCourses/Course.java b/src/WebPageCourses/Course.java
index 222aa23faa68b255d37f6800fed7c033eb944844..f6ccc118be1b4ca202c02e6ef63324cb1a4510a8 100644
--- a/src/WebPageCourses/Course.java
+++ b/src/WebPageCourses/Course.java
@@ -22,6 +22,7 @@ import org.eclipse.emf.ecore.EObject;
  *   <li>{@link WebPageCourses.Course#getCredits <em>Credits</em>}</li>
  *   <li>{@link WebPageCourses.Course#getCoursework <em>Coursework</em>}</li>
  *   <li>{@link WebPageCourses.Course#getRelatedcourses <em>Relatedcourses</em>}</li>
+ *   <li>{@link WebPageCourses.Course#getStudyprograms <em>Studyprograms</em>}</li>
  * </ul>
  *
  * @see WebPageCourses.WebPageCoursesPackage#getCourse()
@@ -202,4 +203,32 @@ public interface Course extends EObject {
 	 */
 	void setRelatedcourses(RelatedCourses value);
 
+	/**
+	 * Returns the value of the '<em><b>Studyprograms</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link WebPageCourses.StudyProgram#getCourses <em>Courses</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Studyprograms</em>' container reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Studyprograms</em>' container reference.
+	 * @see #setStudyprograms(StudyProgram)
+	 * @see WebPageCourses.WebPageCoursesPackage#getCourse_Studyprograms()
+	 * @see WebPageCourses.StudyProgram#getCourses
+	 * @model opposite="courses" transient="false"
+	 * @generated
+	 */
+	StudyProgram getStudyprograms();
+
+	/**
+	 * Sets the value of the '{@link WebPageCourses.Course#getStudyprograms <em>Studyprograms</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Studyprograms</em>' container reference.
+	 * @see #getStudyprograms()
+	 * @generated
+	 */
+	void setStudyprograms(StudyProgram value);
+
 } // Course
diff --git a/src/WebPageCourses/RelatedCourses.java b/src/WebPageCourses/RelatedCourses.java
index cecb42d96bf5adf24c653f21818b180478510637..8e532b23e3628012106f3e188c3f00b3d3b75583 100644
--- a/src/WebPageCourses/RelatedCourses.java
+++ b/src/WebPageCourses/RelatedCourses.java
@@ -26,7 +26,7 @@ import org.eclipse.emf.ecore.EObject;
 public interface RelatedCourses extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Requiredcourses</b></em>' containment reference list.
-	 * The list contents are of type {@link WebPageCourses.Requierement}.
+	 * The list contents are of type {@link WebPageCourses.Requirement}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Requiredcourses</em>' containment reference list isn't clear,
@@ -38,7 +38,7 @@ public interface RelatedCourses extends EObject {
 	 * @model containment="true"
 	 * @generated
 	 */
-	EList<Requierement> getRequiredcourses();
+	EList<Requirement> getRequiredcourses();
 
 	/**
 	 * Returns the value of the '<em><b>Reductioncourses</b></em>' containment reference list.
diff --git a/src/WebPageCourses/Requierement.java b/src/WebPageCourses/Requirement.java
similarity index 65%
rename from src/WebPageCourses/Requierement.java
rename to src/WebPageCourses/Requirement.java
index f49cf0f80302c5838fb6c43fe07b5afd60aed1dd..c9069bf24a109e74a46f4c607aaa090c9fd580c5 100644
--- a/src/WebPageCourses/Requierement.java
+++ b/src/WebPageCourses/Requirement.java
@@ -6,23 +6,23 @@ import org.eclipse.emf.ecore.EObject;
 
 /**
  * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Requierement</b></em>'.
+ * A representation of the model object '<em><b>Requirement</b></em>'.
  * <!-- end-user-doc -->
  *
  * <p>
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link WebPageCourses.Requierement#getCode <em>Code</em>}</li>
- *   <li>{@link WebPageCourses.Requierement#getName <em>Name</em>}</li>
- *   <li>{@link WebPageCourses.Requierement#getTypeOfRequierement <em>Type Of Requierement</em>}</li>
+ *   <li>{@link WebPageCourses.Requirement#getCode <em>Code</em>}</li>
+ *   <li>{@link WebPageCourses.Requirement#getName <em>Name</em>}</li>
+ *   <li>{@link WebPageCourses.Requirement#getTypeOfRequierement <em>Type Of Requierement</em>}</li>
  * </ul>
  *
- * @see WebPageCourses.WebPageCoursesPackage#getRequierement()
+ * @see WebPageCourses.WebPageCoursesPackage#getRequirement()
  * @model
  * @generated
  */
-public interface Requierement extends EObject {
+public interface Requirement extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Code</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -33,14 +33,14 @@ public interface Requierement extends EObject {
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Code</em>' attribute.
 	 * @see #setCode(String)
-	 * @see WebPageCourses.WebPageCoursesPackage#getRequierement_Code()
+	 * @see WebPageCourses.WebPageCoursesPackage#getRequirement_Code()
 	 * @model
 	 * @generated
 	 */
 	String getCode();
 
 	/**
-	 * Sets the value of the '{@link WebPageCourses.Requierement#getCode <em>Code</em>}' attribute.
+	 * Sets the value of the '{@link WebPageCourses.Requirement#getCode <em>Code</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Code</em>' attribute.
@@ -59,14 +59,14 @@ public interface Requierement extends EObject {
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Name</em>' attribute.
 	 * @see #setName(String)
-	 * @see WebPageCourses.WebPageCoursesPackage#getRequierement_Name()
+	 * @see WebPageCourses.WebPageCoursesPackage#getRequirement_Name()
 	 * @model
 	 * @generated
 	 */
 	String getName();
 
 	/**
-	 * Sets the value of the '{@link WebPageCourses.Requierement#getName <em>Name</em>}' attribute.
+	 * Sets the value of the '{@link WebPageCourses.Requirement#getName <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Name</em>' attribute.
@@ -85,14 +85,14 @@ public interface Requierement extends EObject {
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Type Of Requierement</em>' attribute.
 	 * @see #setTypeOfRequierement(String)
-	 * @see WebPageCourses.WebPageCoursesPackage#getRequierement_TypeOfRequierement()
+	 * @see WebPageCourses.WebPageCoursesPackage#getRequirement_TypeOfRequierement()
 	 * @model
 	 * @generated
 	 */
 	String getTypeOfRequierement();
 
 	/**
-	 * Sets the value of the '{@link WebPageCourses.Requierement#getTypeOfRequierement <em>Type Of Requierement</em>}' attribute.
+	 * Sets the value of the '{@link WebPageCourses.Requirement#getTypeOfRequierement <em>Type Of Requierement</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Type Of Requierement</em>' attribute.
@@ -101,4 +101,4 @@ public interface Requierement extends EObject {
 	 */
 	void setTypeOfRequierement(String value);
 
-} // Requierement
+} // Requirement
diff --git a/src/WebPageCourses/StudyProgram.java b/src/WebPageCourses/StudyProgram.java
index 608b2d855bba9582df8d2c83dced873e517faf86..339019e56c92c7d34cfdf8ac1aa67de0672e8c50 100644
--- a/src/WebPageCourses/StudyProgram.java
+++ b/src/WebPageCourses/StudyProgram.java
@@ -70,6 +70,7 @@ public interface StudyProgram extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Courses</b></em>' containment reference list.
 	 * The list contents are of type {@link WebPageCourses.Course}.
+	 * It is bidirectional and its opposite is '{@link WebPageCourses.Course#getStudyprograms <em>Studyprograms</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Courses</em>' containment reference list isn't clear,
@@ -78,7 +79,8 @@ public interface StudyProgram extends EObject {
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Courses</em>' containment reference list.
 	 * @see WebPageCourses.WebPageCoursesPackage#getStudyProgram_Courses()
-	 * @model containment="true"
+	 * @see WebPageCourses.Course#getStudyprograms
+	 * @model opposite="studyprograms" containment="true"
 	 * @generated
 	 */
 	EList<Course> getCourses();
diff --git a/src/WebPageCourses/WebPageCoursesFactory.java b/src/WebPageCourses/WebPageCoursesFactory.java
index 6380bda034689eb099630a3296da37b74396c088..e8febcc08ca4f3b9850b0fd2b209444868dfab56 100644
--- a/src/WebPageCourses/WebPageCoursesFactory.java
+++ b/src/WebPageCourses/WebPageCoursesFactory.java
@@ -49,13 +49,13 @@ public interface WebPageCoursesFactory extends EFactory {
 	People createPeople();
 
 	/**
-	 * Returns a new object of class '<em>Requierement</em>'.
+	 * Returns a new object of class '<em>Requirement</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Requierement</em>'.
+	 * @return a new object of class '<em>Requirement</em>'.
 	 * @generated
 	 */
-	Requierement createRequierement();
+	Requirement createRequirement();
 
 	/**
 	 * Returns a new object of class '<em>Evaluation Form</em>'.
diff --git a/src/WebPageCourses/WebPageCoursesPackage.java b/src/WebPageCourses/WebPageCoursesPackage.java
index 6d4bf85022b28cc72ff5e3943ad7807339e884f6..d25dea4ae012db9cc33ef7a46ea1f807a378a812 100644
--- a/src/WebPageCourses/WebPageCoursesPackage.java
+++ b/src/WebPageCourses/WebPageCoursesPackage.java
@@ -129,6 +129,15 @@ public interface WebPageCoursesPackage extends EPackage {
 	 */
 	int COURSE__RELATEDCOURSES = 6;
 
+	/**
+	 * The feature id for the '<em><b>Studyprograms</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COURSE__STUDYPROGRAMS = 7;
+
 	/**
 	 * The number of structural features of the '<em>Course</em>' class.
 	 * <!-- begin-user-doc -->
@@ -136,7 +145,7 @@ public interface WebPageCoursesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int COURSE_FEATURE_COUNT = 7;
+	int COURSE_FEATURE_COUNT = 8;
 
 	/**
 	 * The number of operations of the '<em>Course</em>' class.
@@ -258,14 +267,14 @@ public interface WebPageCoursesPackage extends EPackage {
 	int PEOPLE_OPERATION_COUNT = 0;
 
 	/**
-	 * The meta object id for the '{@link WebPageCourses.impl.RequierementImpl <em>Requierement</em>}' class.
+	 * The meta object id for the '{@link WebPageCourses.impl.RequirementImpl <em>Requirement</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see WebPageCourses.impl.RequierementImpl
-	 * @see WebPageCourses.impl.WebPageCoursesPackageImpl#getRequierement()
+	 * @see WebPageCourses.impl.RequirementImpl
+	 * @see WebPageCourses.impl.WebPageCoursesPackageImpl#getRequirement()
 	 * @generated
 	 */
-	int REQUIEREMENT = 3;
+	int REQUIREMENT = 3;
 
 	/**
 	 * The feature id for the '<em><b>Code</b></em>' attribute.
@@ -274,7 +283,7 @@ public interface WebPageCoursesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int REQUIEREMENT__CODE = 0;
+	int REQUIREMENT__CODE = 0;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -283,7 +292,7 @@ public interface WebPageCoursesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int REQUIEREMENT__NAME = 1;
+	int REQUIREMENT__NAME = 1;
 
 	/**
 	 * The feature id for the '<em><b>Type Of Requierement</b></em>' attribute.
@@ -292,25 +301,25 @@ public interface WebPageCoursesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int REQUIEREMENT__TYPE_OF_REQUIEREMENT = 2;
+	int REQUIREMENT__TYPE_OF_REQUIEREMENT = 2;
 
 	/**
-	 * The number of structural features of the '<em>Requierement</em>' class.
+	 * The number of structural features of the '<em>Requirement</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REQUIEREMENT_FEATURE_COUNT = 3;
+	int REQUIREMENT_FEATURE_COUNT = 3;
 
 	/**
-	 * The number of operations of the '<em>Requierement</em>' class.
+	 * The number of operations of the '<em>Requirement</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REQUIEREMENT_OPERATION_COUNT = 0;
+	int REQUIREMENT_OPERATION_COUNT = 0;
 
 	/**
 	 * The meta object id for the '{@link WebPageCourses.impl.EvaluationFormImpl <em>Evaluation Form</em>}' class.
@@ -832,6 +841,17 @@ public interface WebPageCoursesPackage extends EPackage {
 	 */
 	EReference getCourse_Relatedcourses();
 
+	/**
+	 * Returns the meta object for the container reference '{@link WebPageCourses.Course#getStudyprograms <em>Studyprograms</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the container reference '<em>Studyprograms</em>'.
+	 * @see WebPageCourses.Course#getStudyprograms()
+	 * @see #getCourse()
+	 * @generated
+	 */
+	EReference getCourse_Studyprograms();
+
 	/**
 	 * Returns the meta object for class '{@link WebPageCourses.CourseInstance <em>Course Instance</em>}'.
 	 * <!-- begin-user-doc -->
@@ -919,47 +939,47 @@ public interface WebPageCoursesPackage extends EPackage {
 	EAttribute getPeople_Name();
 
 	/**
-	 * Returns the meta object for class '{@link WebPageCourses.Requierement <em>Requierement</em>}'.
+	 * Returns the meta object for class '{@link WebPageCourses.Requirement <em>Requirement</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Requierement</em>'.
-	 * @see WebPageCourses.Requierement
+	 * @return the meta object for class '<em>Requirement</em>'.
+	 * @see WebPageCourses.Requirement
 	 * @generated
 	 */
-	EClass getRequierement();
+	EClass getRequirement();
 
 	/**
-	 * Returns the meta object for the attribute '{@link WebPageCourses.Requierement#getCode <em>Code</em>}'.
+	 * Returns the meta object for the attribute '{@link WebPageCourses.Requirement#getCode <em>Code</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the attribute '<em>Code</em>'.
-	 * @see WebPageCourses.Requierement#getCode()
-	 * @see #getRequierement()
+	 * @see WebPageCourses.Requirement#getCode()
+	 * @see #getRequirement()
 	 * @generated
 	 */
-	EAttribute getRequierement_Code();
+	EAttribute getRequirement_Code();
 
 	/**
-	 * Returns the meta object for the attribute '{@link WebPageCourses.Requierement#getName <em>Name</em>}'.
+	 * Returns the meta object for the attribute '{@link WebPageCourses.Requirement#getName <em>Name</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see WebPageCourses.Requierement#getName()
-	 * @see #getRequierement()
+	 * @see WebPageCourses.Requirement#getName()
+	 * @see #getRequirement()
 	 * @generated
 	 */
-	EAttribute getRequierement_Name();
+	EAttribute getRequirement_Name();
 
 	/**
-	 * Returns the meta object for the attribute '{@link WebPageCourses.Requierement#getTypeOfRequierement <em>Type Of Requierement</em>}'.
+	 * Returns the meta object for the attribute '{@link WebPageCourses.Requirement#getTypeOfRequierement <em>Type Of Requierement</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the attribute '<em>Type Of Requierement</em>'.
-	 * @see WebPageCourses.Requierement#getTypeOfRequierement()
-	 * @see #getRequierement()
+	 * @see WebPageCourses.Requirement#getTypeOfRequierement()
+	 * @see #getRequirement()
 	 * @generated
 	 */
-	EAttribute getRequierement_TypeOfRequierement();
+	EAttribute getRequirement_TypeOfRequierement();
 
 	/**
 	 * Returns the meta object for class '{@link WebPageCourses.EvaluationForm <em>Evaluation Form</em>}'.
@@ -1360,6 +1380,14 @@ public interface WebPageCoursesPackage extends EPackage {
 		 */
 		EReference COURSE__RELATEDCOURSES = eINSTANCE.getCourse_Relatedcourses();
 
+		/**
+		 * The meta object literal for the '<em><b>Studyprograms</b></em>' container reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference COURSE__STUDYPROGRAMS = eINSTANCE.getCourse_Studyprograms();
+
 		/**
 		 * The meta object literal for the '{@link WebPageCourses.impl.CourseInstanceImpl <em>Course Instance</em>}' class.
 		 * <!-- begin-user-doc -->
@@ -1429,14 +1457,14 @@ public interface WebPageCoursesPackage extends EPackage {
 		EAttribute PEOPLE__NAME = eINSTANCE.getPeople_Name();
 
 		/**
-		 * The meta object literal for the '{@link WebPageCourses.impl.RequierementImpl <em>Requierement</em>}' class.
+		 * The meta object literal for the '{@link WebPageCourses.impl.RequirementImpl <em>Requirement</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see WebPageCourses.impl.RequierementImpl
-		 * @see WebPageCourses.impl.WebPageCoursesPackageImpl#getRequierement()
+		 * @see WebPageCourses.impl.RequirementImpl
+		 * @see WebPageCourses.impl.WebPageCoursesPackageImpl#getRequirement()
 		 * @generated
 		 */
-		EClass REQUIEREMENT = eINSTANCE.getRequierement();
+		EClass REQUIREMENT = eINSTANCE.getRequirement();
 
 		/**
 		 * The meta object literal for the '<em><b>Code</b></em>' attribute feature.
@@ -1444,7 +1472,7 @@ public interface WebPageCoursesPackage extends EPackage {
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute REQUIEREMENT__CODE = eINSTANCE.getRequierement_Code();
+		EAttribute REQUIREMENT__CODE = eINSTANCE.getRequirement_Code();
 
 		/**
 		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
@@ -1452,7 +1480,7 @@ public interface WebPageCoursesPackage extends EPackage {
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute REQUIEREMENT__NAME = eINSTANCE.getRequierement_Name();
+		EAttribute REQUIREMENT__NAME = eINSTANCE.getRequirement_Name();
 
 		/**
 		 * The meta object literal for the '<em><b>Type Of Requierement</b></em>' attribute feature.
@@ -1460,7 +1488,7 @@ public interface WebPageCoursesPackage extends EPackage {
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute REQUIEREMENT__TYPE_OF_REQUIEREMENT = eINSTANCE.getRequierement_TypeOfRequierement();
+		EAttribute REQUIREMENT__TYPE_OF_REQUIEREMENT = eINSTANCE.getRequirement_TypeOfRequierement();
 
 		/**
 		 * The meta object literal for the '{@link WebPageCourses.impl.EvaluationFormImpl <em>Evaluation Form</em>}' class.
diff --git a/src/WebPageCourses/impl/CourseImpl.java b/src/WebPageCourses/impl/CourseImpl.java
index d144806ff1407719aea22b1a0810c76855efd3f9..858c05dd122698adb35392edbdee47bda6513c73 100644
--- a/src/WebPageCourses/impl/CourseImpl.java
+++ b/src/WebPageCourses/impl/CourseImpl.java
@@ -6,6 +6,7 @@ import WebPageCourses.Course;
 import WebPageCourses.CourseInstance;
 import WebPageCourses.Coursework;
 import WebPageCourses.RelatedCourses;
+import WebPageCourses.StudyProgram;
 import WebPageCourses.WebPageCoursesPackage;
 
 import java.util.Collection;
@@ -22,6 +23,7 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecore.util.InternalEList;
 
 /**
@@ -39,6 +41,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link WebPageCourses.impl.CourseImpl#getCredits <em>Credits</em>}</li>
  *   <li>{@link WebPageCourses.impl.CourseImpl#getCoursework <em>Coursework</em>}</li>
  *   <li>{@link WebPageCourses.impl.CourseImpl#getRelatedcourses <em>Relatedcourses</em>}</li>
+ *   <li>{@link WebPageCourses.impl.CourseImpl#getStudyprograms <em>Studyprograms</em>}</li>
  * </ul>
  *
  * @generated
@@ -355,6 +358,63 @@ public class CourseImpl extends MinimalEObjectImpl.Container implements Course {
 			eNotify(new ENotificationImpl(this, Notification.SET, WebPageCoursesPackage.COURSE__RELATEDCOURSES, newRelatedcourses, newRelatedcourses));
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StudyProgram getStudyprograms() {
+		if (eContainerFeatureID() != WebPageCoursesPackage.COURSE__STUDYPROGRAMS) return null;
+		return (StudyProgram)eInternalContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetStudyprograms(StudyProgram newStudyprograms, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newStudyprograms, WebPageCoursesPackage.COURSE__STUDYPROGRAMS, msgs);
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStudyprograms(StudyProgram newStudyprograms) {
+		if (newStudyprograms != eInternalContainer() || (eContainerFeatureID() != WebPageCoursesPackage.COURSE__STUDYPROGRAMS && newStudyprograms != null)) {
+			if (EcoreUtil.isAncestor(this, newStudyprograms))
+				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+			NotificationChain msgs = null;
+			if (eInternalContainer() != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newStudyprograms != null)
+				msgs = ((InternalEObject)newStudyprograms).eInverseAdd(this, WebPageCoursesPackage.STUDY_PROGRAM__COURSES, StudyProgram.class, msgs);
+			msgs = basicSetStudyprograms(newStudyprograms, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, WebPageCoursesPackage.COURSE__STUDYPROGRAMS, newStudyprograms, newStudyprograms));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case WebPageCoursesPackage.COURSE__STUDYPROGRAMS:
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return basicSetStudyprograms((StudyProgram)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -369,10 +429,26 @@ public class CourseImpl extends MinimalEObjectImpl.Container implements Course {
 				return basicSetCoursework(null, msgs);
 			case WebPageCoursesPackage.COURSE__RELATEDCOURSES:
 				return basicSetRelatedcourses(null, msgs);
+			case WebPageCoursesPackage.COURSE__STUDYPROGRAMS:
+				return basicSetStudyprograms(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+		switch (eContainerFeatureID()) {
+			case WebPageCoursesPackage.COURSE__STUDYPROGRAMS:
+				return eInternalContainer().eInverseRemove(this, WebPageCoursesPackage.STUDY_PROGRAM__COURSES, StudyProgram.class, msgs);
+		}
+		return super.eBasicRemoveFromContainerFeature(msgs);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -395,6 +471,8 @@ public class CourseImpl extends MinimalEObjectImpl.Container implements Course {
 				return getCoursework();
 			case WebPageCoursesPackage.COURSE__RELATEDCOURSES:
 				return getRelatedcourses();
+			case WebPageCoursesPackage.COURSE__STUDYPROGRAMS:
+				return getStudyprograms();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -430,6 +508,9 @@ public class CourseImpl extends MinimalEObjectImpl.Container implements Course {
 			case WebPageCoursesPackage.COURSE__RELATEDCOURSES:
 				setRelatedcourses((RelatedCourses)newValue);
 				return;
+			case WebPageCoursesPackage.COURSE__STUDYPROGRAMS:
+				setStudyprograms((StudyProgram)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -463,6 +544,9 @@ public class CourseImpl extends MinimalEObjectImpl.Container implements Course {
 			case WebPageCoursesPackage.COURSE__RELATEDCOURSES:
 				setRelatedcourses((RelatedCourses)null);
 				return;
+			case WebPageCoursesPackage.COURSE__STUDYPROGRAMS:
+				setStudyprograms((StudyProgram)null);
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -489,6 +573,8 @@ public class CourseImpl extends MinimalEObjectImpl.Container implements Course {
 				return coursework != null;
 			case WebPageCoursesPackage.COURSE__RELATEDCOURSES:
 				return relatedcourses != null;
+			case WebPageCoursesPackage.COURSE__STUDYPROGRAMS:
+				return getStudyprograms() != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/src/WebPageCourses/impl/RelatedCoursesImpl.java b/src/WebPageCourses/impl/RelatedCoursesImpl.java
index ba540bb7fb64965ca1f116daa9c7925cd57c63d1..9f22d8b7e330830f0269e5125208713b407ad7fd 100644
--- a/src/WebPageCourses/impl/RelatedCoursesImpl.java
+++ b/src/WebPageCourses/impl/RelatedCoursesImpl.java
@@ -4,7 +4,7 @@ package WebPageCourses.impl;
 
 import WebPageCourses.CreditReductionCourse;
 import WebPageCourses.RelatedCourses;
-import WebPageCourses.Requierement;
+import WebPageCourses.Requirement;
 import WebPageCourses.WebPageCoursesPackage;
 
 import java.util.Collection;
@@ -44,7 +44,7 @@ public class RelatedCoursesImpl extends MinimalEObjectImpl.Container implements
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<Requierement> requiredcourses;
+	protected EList<Requirement> requiredcourses;
 
 	/**
 	 * The cached value of the '{@link #getReductioncourses() <em>Reductioncourses</em>}' containment reference list.
@@ -80,9 +80,9 @@ public class RelatedCoursesImpl extends MinimalEObjectImpl.Container implements
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EList<Requierement> getRequiredcourses() {
+	public EList<Requirement> getRequiredcourses() {
 		if (requiredcourses == null) {
-			requiredcourses = new EObjectContainmentEList<Requierement>(Requierement.class, this, WebPageCoursesPackage.RELATED_COURSES__REQUIREDCOURSES);
+			requiredcourses = new EObjectContainmentEList<Requirement>(Requirement.class, this, WebPageCoursesPackage.RELATED_COURSES__REQUIREDCOURSES);
 		}
 		return requiredcourses;
 	}
@@ -142,7 +142,7 @@ public class RelatedCoursesImpl extends MinimalEObjectImpl.Container implements
 		switch (featureID) {
 			case WebPageCoursesPackage.RELATED_COURSES__REQUIREDCOURSES:
 				getRequiredcourses().clear();
-				getRequiredcourses().addAll((Collection<? extends Requierement>)newValue);
+				getRequiredcourses().addAll((Collection<? extends Requirement>)newValue);
 				return;
 			case WebPageCoursesPackage.RELATED_COURSES__REDUCTIONCOURSES:
 				getReductioncourses().clear();
diff --git a/src/WebPageCourses/impl/RequierementImpl.java b/src/WebPageCourses/impl/RequirementImpl.java
similarity index 75%
rename from src/WebPageCourses/impl/RequierementImpl.java
rename to src/WebPageCourses/impl/RequirementImpl.java
index e251d2a8d7e322cfeca5b4a34553cd91cff19ab4..83bdb80ec205a81b14650a2a15f9d55ea34caaff 100644
--- a/src/WebPageCourses/impl/RequierementImpl.java
+++ b/src/WebPageCourses/impl/RequirementImpl.java
@@ -2,7 +2,7 @@
  */
 package WebPageCourses.impl;
 
-import WebPageCourses.Requierement;
+import WebPageCourses.Requirement;
 import WebPageCourses.WebPageCoursesPackage;
 
 import org.eclipse.emf.common.notify.Notification;
@@ -14,20 +14,20 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
 /**
  * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Requierement</b></em>'.
+ * An implementation of the model object '<em><b>Requirement</b></em>'.
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link WebPageCourses.impl.RequierementImpl#getCode <em>Code</em>}</li>
- *   <li>{@link WebPageCourses.impl.RequierementImpl#getName <em>Name</em>}</li>
- *   <li>{@link WebPageCourses.impl.RequierementImpl#getTypeOfRequierement <em>Type Of Requierement</em>}</li>
+ *   <li>{@link WebPageCourses.impl.RequirementImpl#getCode <em>Code</em>}</li>
+ *   <li>{@link WebPageCourses.impl.RequirementImpl#getName <em>Name</em>}</li>
+ *   <li>{@link WebPageCourses.impl.RequirementImpl#getTypeOfRequierement <em>Type Of Requierement</em>}</li>
  * </ul>
  *
  * @generated
  */
-public class RequierementImpl extends MinimalEObjectImpl.Container implements Requierement {
+public class RequirementImpl extends MinimalEObjectImpl.Container implements Requirement {
 	/**
 	 * The default value of the '{@link #getCode() <em>Code</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -93,7 +93,7 @@ public class RequierementImpl extends MinimalEObjectImpl.Container implements Re
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected RequierementImpl() {
+	protected RequirementImpl() {
 		super();
 	}
 
@@ -104,7 +104,7 @@ public class RequierementImpl extends MinimalEObjectImpl.Container implements Re
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return WebPageCoursesPackage.Literals.REQUIEREMENT;
+		return WebPageCoursesPackage.Literals.REQUIREMENT;
 	}
 
 	/**
@@ -125,7 +125,7 @@ public class RequierementImpl extends MinimalEObjectImpl.Container implements Re
 		String oldCode = code;
 		code = newCode;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, WebPageCoursesPackage.REQUIEREMENT__CODE, oldCode, code));
+			eNotify(new ENotificationImpl(this, Notification.SET, WebPageCoursesPackage.REQUIREMENT__CODE, oldCode, code));
 	}
 
 	/**
@@ -146,7 +146,7 @@ public class RequierementImpl extends MinimalEObjectImpl.Container implements Re
 		String oldName = name;
 		name = newName;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, WebPageCoursesPackage.REQUIEREMENT__NAME, oldName, name));
+			eNotify(new ENotificationImpl(this, Notification.SET, WebPageCoursesPackage.REQUIREMENT__NAME, oldName, name));
 	}
 
 	/**
@@ -167,7 +167,7 @@ public class RequierementImpl extends MinimalEObjectImpl.Container implements Re
 		String oldTypeOfRequierement = typeOfRequierement;
 		typeOfRequierement = newTypeOfRequierement;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, WebPageCoursesPackage.REQUIEREMENT__TYPE_OF_REQUIEREMENT, oldTypeOfRequierement, typeOfRequierement));
+			eNotify(new ENotificationImpl(this, Notification.SET, WebPageCoursesPackage.REQUIREMENT__TYPE_OF_REQUIEREMENT, oldTypeOfRequierement, typeOfRequierement));
 	}
 
 	/**
@@ -178,11 +178,11 @@ public class RequierementImpl extends MinimalEObjectImpl.Container implements Re
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case WebPageCoursesPackage.REQUIEREMENT__CODE:
+			case WebPageCoursesPackage.REQUIREMENT__CODE:
 				return getCode();
-			case WebPageCoursesPackage.REQUIEREMENT__NAME:
+			case WebPageCoursesPackage.REQUIREMENT__NAME:
 				return getName();
-			case WebPageCoursesPackage.REQUIEREMENT__TYPE_OF_REQUIEREMENT:
+			case WebPageCoursesPackage.REQUIREMENT__TYPE_OF_REQUIEREMENT:
 				return getTypeOfRequierement();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -196,13 +196,13 @@ public class RequierementImpl extends MinimalEObjectImpl.Container implements Re
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case WebPageCoursesPackage.REQUIEREMENT__CODE:
+			case WebPageCoursesPackage.REQUIREMENT__CODE:
 				setCode((String)newValue);
 				return;
-			case WebPageCoursesPackage.REQUIEREMENT__NAME:
+			case WebPageCoursesPackage.REQUIREMENT__NAME:
 				setName((String)newValue);
 				return;
-			case WebPageCoursesPackage.REQUIEREMENT__TYPE_OF_REQUIEREMENT:
+			case WebPageCoursesPackage.REQUIREMENT__TYPE_OF_REQUIEREMENT:
 				setTypeOfRequierement((String)newValue);
 				return;
 		}
@@ -217,13 +217,13 @@ public class RequierementImpl extends MinimalEObjectImpl.Container implements Re
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case WebPageCoursesPackage.REQUIEREMENT__CODE:
+			case WebPageCoursesPackage.REQUIREMENT__CODE:
 				setCode(CODE_EDEFAULT);
 				return;
-			case WebPageCoursesPackage.REQUIEREMENT__NAME:
+			case WebPageCoursesPackage.REQUIREMENT__NAME:
 				setName(NAME_EDEFAULT);
 				return;
-			case WebPageCoursesPackage.REQUIEREMENT__TYPE_OF_REQUIEREMENT:
+			case WebPageCoursesPackage.REQUIREMENT__TYPE_OF_REQUIEREMENT:
 				setTypeOfRequierement(TYPE_OF_REQUIEREMENT_EDEFAULT);
 				return;
 		}
@@ -238,11 +238,11 @@ public class RequierementImpl extends MinimalEObjectImpl.Container implements Re
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case WebPageCoursesPackage.REQUIEREMENT__CODE:
+			case WebPageCoursesPackage.REQUIREMENT__CODE:
 				return CODE_EDEFAULT == null ? code != null : !CODE_EDEFAULT.equals(code);
-			case WebPageCoursesPackage.REQUIEREMENT__NAME:
+			case WebPageCoursesPackage.REQUIREMENT__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case WebPageCoursesPackage.REQUIEREMENT__TYPE_OF_REQUIEREMENT:
+			case WebPageCoursesPackage.REQUIREMENT__TYPE_OF_REQUIEREMENT:
 				return TYPE_OF_REQUIEREMENT_EDEFAULT == null ? typeOfRequierement != null : !TYPE_OF_REQUIEREMENT_EDEFAULT.equals(typeOfRequierement);
 		}
 		return super.eIsSet(featureID);
@@ -268,4 +268,4 @@ public class RequierementImpl extends MinimalEObjectImpl.Container implements Re
 		return result.toString();
 	}
 
-} //RequierementImpl
+} //RequirementImpl
diff --git a/src/WebPageCourses/impl/StudyProgramImpl.java b/src/WebPageCourses/impl/StudyProgramImpl.java
index 231fb76d35b36d68865f37cb7934849de39e581a..a60929a8f4d2b9c454021a408ef658f91ae6cdd1 100644
--- a/src/WebPageCourses/impl/StudyProgramImpl.java
+++ b/src/WebPageCourses/impl/StudyProgramImpl.java
@@ -19,8 +19,7 @@ import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 
@@ -139,11 +138,26 @@ public class StudyProgramImpl extends MinimalEObjectImpl.Container implements St
 	 */
 	public EList<Course> getCourses() {
 		if (courses == null) {
-			courses = new EObjectContainmentEList<Course>(Course.class, this, WebPageCoursesPackage.STUDY_PROGRAM__COURSES);
+			courses = new EObjectContainmentWithInverseEList<Course>(Course.class, this, WebPageCoursesPackage.STUDY_PROGRAM__COURSES, WebPageCoursesPackage.COURSE__STUDYPROGRAMS);
 		}
 		return courses;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case WebPageCoursesPackage.STUDY_PROGRAM__COURSES:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getCourses()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/src/WebPageCourses/impl/WebPageCoursesFactoryImpl.java b/src/WebPageCourses/impl/WebPageCoursesFactoryImpl.java
index 1d6f4d3f2bf9d5b3277630d72fedcaa8156ab079..d6a672e3ad01d8b37e1bdbef0a43753f63c0b36b 100644
--- a/src/WebPageCourses/impl/WebPageCoursesFactoryImpl.java
+++ b/src/WebPageCourses/impl/WebPageCoursesFactoryImpl.java
@@ -59,7 +59,7 @@ public class WebPageCoursesFactoryImpl extends EFactoryImpl implements WebPageCo
 			case WebPageCoursesPackage.COURSE: return createCourse();
 			case WebPageCoursesPackage.COURSE_INSTANCE: return createCourseInstance();
 			case WebPageCoursesPackage.PEOPLE: return createPeople();
-			case WebPageCoursesPackage.REQUIEREMENT: return createRequierement();
+			case WebPageCoursesPackage.REQUIREMENT: return createRequirement();
 			case WebPageCoursesPackage.EVALUATION_FORM: return createEvaluationForm();
 			case WebPageCoursesPackage.WORK: return createWork();
 			case WebPageCoursesPackage.STUDY_PROGRAM: return createStudyProgram();
@@ -109,9 +109,9 @@ public class WebPageCoursesFactoryImpl extends EFactoryImpl implements WebPageCo
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Requierement createRequierement() {
-		RequierementImpl requierement = new RequierementImpl();
-		return requierement;
+	public Requirement createRequirement() {
+		RequirementImpl requirement = new RequirementImpl();
+		return requirement;
 	}
 
 	/**
diff --git a/src/WebPageCourses/impl/WebPageCoursesPackageImpl.java b/src/WebPageCourses/impl/WebPageCoursesPackageImpl.java
index eb72d58ddfa97ed7579498bd71486584d62748b8..4a9667363b9d43b6881a9088ad4c0db25198b4ef 100644
--- a/src/WebPageCourses/impl/WebPageCoursesPackageImpl.java
+++ b/src/WebPageCourses/impl/WebPageCoursesPackageImpl.java
@@ -10,7 +10,7 @@ import WebPageCourses.EvaluationForm;
 import WebPageCourses.Organization;
 import WebPageCourses.People;
 import WebPageCourses.RelatedCourses;
-import WebPageCourses.Requierement;
+import WebPageCourses.Requirement;
 import WebPageCourses.Schedule;
 import WebPageCourses.StudyProgram;
 import WebPageCourses.Timetable;
@@ -61,7 +61,7 @@ public class WebPageCoursesPackageImpl extends EPackageImpl implements WebPageCo
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass requierementEClass = null;
+	private EClass requirementEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -268,6 +268,15 @@ public class WebPageCoursesPackageImpl extends EPackageImpl implements WebPageCo
 		return (EReference)courseEClass.getEStructuralFeatures().get(6);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCourse_Studyprograms() {
+		return (EReference)courseEClass.getEStructuralFeatures().get(7);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -345,8 +354,8 @@ public class WebPageCoursesPackageImpl extends EPackageImpl implements WebPageCo
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getRequierement() {
-		return requierementEClass;
+	public EClass getRequirement() {
+		return requirementEClass;
 	}
 
 	/**
@@ -354,8 +363,8 @@ public class WebPageCoursesPackageImpl extends EPackageImpl implements WebPageCo
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getRequierement_Code() {
-		return (EAttribute)requierementEClass.getEStructuralFeatures().get(0);
+	public EAttribute getRequirement_Code() {
+		return (EAttribute)requirementEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -363,8 +372,8 @@ public class WebPageCoursesPackageImpl extends EPackageImpl implements WebPageCo
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getRequierement_Name() {
-		return (EAttribute)requierementEClass.getEStructuralFeatures().get(1);
+	public EAttribute getRequirement_Name() {
+		return (EAttribute)requirementEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -372,8 +381,8 @@ public class WebPageCoursesPackageImpl extends EPackageImpl implements WebPageCo
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getRequierement_TypeOfRequierement() {
-		return (EAttribute)requierementEClass.getEStructuralFeatures().get(2);
+	public EAttribute getRequirement_TypeOfRequierement() {
+		return (EAttribute)requirementEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -673,6 +682,7 @@ public class WebPageCoursesPackageImpl extends EPackageImpl implements WebPageCo
 		createEAttribute(courseEClass, COURSE__CREDITS);
 		createEReference(courseEClass, COURSE__COURSEWORK);
 		createEReference(courseEClass, COURSE__RELATEDCOURSES);
+		createEReference(courseEClass, COURSE__STUDYPROGRAMS);
 
 		courseInstanceEClass = createEClass(COURSE_INSTANCE);
 		createEAttribute(courseInstanceEClass, COURSE_INSTANCE__SEMESTER);
@@ -684,10 +694,10 @@ public class WebPageCoursesPackageImpl extends EPackageImpl implements WebPageCo
 		createEAttribute(peopleEClass, PEOPLE__ROLE);
 		createEAttribute(peopleEClass, PEOPLE__NAME);
 
-		requierementEClass = createEClass(REQUIEREMENT);
-		createEAttribute(requierementEClass, REQUIEREMENT__CODE);
-		createEAttribute(requierementEClass, REQUIEREMENT__NAME);
-		createEAttribute(requierementEClass, REQUIEREMENT__TYPE_OF_REQUIEREMENT);
+		requirementEClass = createEClass(REQUIREMENT);
+		createEAttribute(requirementEClass, REQUIREMENT__CODE);
+		createEAttribute(requirementEClass, REQUIREMENT__NAME);
+		createEAttribute(requirementEClass, REQUIREMENT__TYPE_OF_REQUIEREMENT);
 
 		evaluationFormEClass = createEClass(EVALUATION_FORM);
 		createEReference(evaluationFormEClass, EVALUATION_FORM__WORK);
@@ -766,6 +776,7 @@ public class WebPageCoursesPackageImpl extends EPackageImpl implements WebPageCo
 		initEAttribute(getCourse_Credits(), ecorePackage.getEDouble(), "credits", null, 0, 1, Course.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getCourse_Coursework(), this.getCoursework(), null, "coursework", null, 0, 1, Course.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getCourse_Relatedcourses(), this.getRelatedCourses(), null, "relatedcourses", null, 0, 1, Course.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getCourse_Studyprograms(), this.getStudyProgram(), this.getStudyProgram_Courses(), "studyprograms", null, 0, 1, Course.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(courseInstanceEClass, CourseInstance.class, "CourseInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getCourseInstance_Semester(), ecorePackage.getEString(), "semester", null, 0, 1, CourseInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -777,10 +788,10 @@ public class WebPageCoursesPackageImpl extends EPackageImpl implements WebPageCo
 		initEAttribute(getPeople_Role(), ecorePackage.getEString(), "Role", null, 0, 1, People.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPeople_Name(), ecorePackage.getEString(), "name", null, 0, 1, People.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(requierementEClass, Requierement.class, "Requierement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getRequierement_Code(), ecorePackage.getEString(), "code", null, 0, 1, Requierement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getRequierement_Name(), ecorePackage.getEString(), "name", null, 0, 1, Requierement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getRequierement_TypeOfRequierement(), ecorePackage.getEString(), "TypeOfRequierement", null, 0, 1, Requierement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEClass(requirementEClass, Requirement.class, "Requirement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getRequirement_Code(), ecorePackage.getEString(), "code", null, 0, 1, Requirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getRequirement_Name(), ecorePackage.getEString(), "name", null, 0, 1, Requirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getRequirement_TypeOfRequierement(), ecorePackage.getEString(), "TypeOfRequierement", null, 0, 1, Requirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(evaluationFormEClass, EvaluationForm.class, "EvaluationForm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getEvaluationForm_Work(), this.getWork(), null, "Work", null, 0, -1, EvaluationForm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -792,7 +803,7 @@ public class WebPageCoursesPackageImpl extends EPackageImpl implements WebPageCo
 		initEClass(studyProgramEClass, StudyProgram.class, "StudyProgram", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getStudyProgram_Name(), ecorePackage.getEString(), "name", null, 0, 1, StudyProgram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getStudyProgram_Schedule(), this.getSchedule(), null, "schedule", null, 0, -1, StudyProgram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getStudyProgram_Courses(), this.getCourse(), null, "courses", null, 0, -1, StudyProgram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getStudyProgram_Courses(), this.getCourse(), this.getCourse_Studyprograms(), "courses", null, 0, -1, StudyProgram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(courseworkEClass, Coursework.class, "Coursework", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getCoursework_LectureHours(), ecorePackage.getEDouble(), "lectureHours", null, 0, 1, Coursework.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -808,7 +819,7 @@ public class WebPageCoursesPackageImpl extends EPackageImpl implements WebPageCo
 		initEReference(getTimetable_Schedule(), this.getSchedule(), null, "schedule", null, 0, -1, Timetable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(relatedCoursesEClass, RelatedCourses.class, "RelatedCourses", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getRelatedCourses_Requiredcourses(), this.getRequierement(), null, "requiredcourses", null, 0, -1, RelatedCourses.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getRelatedCourses_Requiredcourses(), this.getRequirement(), null, "requiredcourses", null, 0, -1, RelatedCourses.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getRelatedCourses_Reductioncourses(), this.getCreditReductionCourse(), null, "reductioncourses", null, 0, -1, RelatedCourses.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(creditReductionCourseEClass, CreditReductionCourse.class, "CreditReductionCourse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
diff --git a/src/WebPageCourses/util/WebPageCoursesAdapterFactory.java b/src/WebPageCourses/util/WebPageCoursesAdapterFactory.java
index 9c09be6908dac3f763c6e40d6bb42be5c5359694..2fa1e424f757b768ea427d2a8cb6133d5644aee9 100644
--- a/src/WebPageCourses/util/WebPageCoursesAdapterFactory.java
+++ b/src/WebPageCourses/util/WebPageCoursesAdapterFactory.java
@@ -80,8 +80,8 @@ public class WebPageCoursesAdapterFactory extends AdapterFactoryImpl {
 				return createPeopleAdapter();
 			}
 			@Override
-			public Adapter caseRequierement(Requierement object) {
-				return createRequierementAdapter();
+			public Adapter caseRequirement(Requirement object) {
+				return createRequirementAdapter();
 			}
 			@Override
 			public Adapter caseEvaluationForm(EvaluationForm object) {
@@ -182,16 +182,16 @@ public class WebPageCoursesAdapterFactory extends AdapterFactoryImpl {
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link WebPageCourses.Requierement <em>Requierement</em>}'.
+	 * Creates a new adapter for an object of class '{@link WebPageCourses.Requirement <em>Requirement</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * @return the new adapter.
-	 * @see WebPageCourses.Requierement
+	 * @see WebPageCourses.Requirement
 	 * @generated
 	 */
-	public Adapter createRequierementAdapter() {
+	public Adapter createRequirementAdapter() {
 		return null;
 	}
 
diff --git a/src/WebPageCourses/util/WebPageCoursesResourceFactoryImpl.java b/src/WebPageCourses/util/WebPageCoursesResourceFactoryImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb3939ced1e5e5ff534559fc2d0fc0014dc066f1
--- /dev/null
+++ b/src/WebPageCourses/util/WebPageCoursesResourceFactoryImpl.java
@@ -0,0 +1,41 @@
+/**
+ */
+package WebPageCourses.util;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource Factory</b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see WebPageCourses.util.WebPageCoursesResourceImpl
+ * @generated
+ */
+public class WebPageCoursesResourceFactoryImpl extends ResourceFactoryImpl {
+	/**
+	 * Creates an instance of the resource factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WebPageCoursesResourceFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * Creates an instance of the resource.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Resource createResource(URI uri) {
+		Resource result = new WebPageCoursesResourceImpl(uri);
+		return result;
+	}
+
+} //WebPageCoursesResourceFactoryImpl
diff --git a/src/WebPageCourses/util/WebPageCoursesResourceImpl.java b/src/WebPageCourses/util/WebPageCoursesResourceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..55cf5711c0b585d2995f823c4ae99118fe386af8
--- /dev/null
+++ b/src/WebPageCourses/util/WebPageCoursesResourceImpl.java
@@ -0,0 +1,28 @@
+/**
+ */
+package WebPageCourses.util;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource </b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see WebPageCourses.util.WebPageCoursesResourceFactoryImpl
+ * @generated
+ */
+public class WebPageCoursesResourceImpl extends XMIResourceImpl {
+	/**
+	 * Creates an instance of the resource.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param uri the URI of the new resource.
+	 * @generated
+	 */
+	public WebPageCoursesResourceImpl(URI uri) {
+		super(uri);
+	}
+
+} //WebPageCoursesResourceImpl
diff --git a/src/WebPageCourses/util/WebPageCoursesSwitch.java b/src/WebPageCourses/util/WebPageCoursesSwitch.java
index d30e7e68214115c109c611be1d4869e0e43f755d..8f346d3ae1abd0737f8dfa4aca934dc96abcd261 100644
--- a/src/WebPageCourses/util/WebPageCoursesSwitch.java
+++ b/src/WebPageCourses/util/WebPageCoursesSwitch.java
@@ -84,9 +84,9 @@ public class WebPageCoursesSwitch<T> extends Switch<T> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case WebPageCoursesPackage.REQUIEREMENT: {
-				Requierement requierement = (Requierement)theEObject;
-				T result = caseRequierement(requierement);
+			case WebPageCoursesPackage.REQUIREMENT: {
+				Requirement requirement = (Requirement)theEObject;
+				T result = caseRequirement(requirement);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -194,17 +194,17 @@ public class WebPageCoursesSwitch<T> extends Switch<T> {
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Requierement</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Requirement</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Requierement</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Requirement</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseRequierement(Requierement object) {
+	public T caseRequirement(Requirement object) {
 		return null;
 	}
 
diff --git a/src/WebPageCourses/util/WebPageCoursesValidator.java b/src/WebPageCourses/util/WebPageCoursesValidator.java
index 10cb958c0ddd01eb5d33fa93f6e022ad4c336dbe..2cb6374578ef16a6d2945bf273b7db0f87084f38 100644
--- a/src/WebPageCourses/util/WebPageCoursesValidator.java
+++ b/src/WebPageCourses/util/WebPageCoursesValidator.java
@@ -92,8 +92,8 @@ public class WebPageCoursesValidator extends EObjectValidator {
 				return validateCourseInstance((CourseInstance)value, diagnostics, context);
 			case WebPageCoursesPackage.PEOPLE:
 				return validatePeople((People)value, diagnostics, context);
-			case WebPageCoursesPackage.REQUIEREMENT:
-				return validateRequierement((Requierement)value, diagnostics, context);
+			case WebPageCoursesPackage.REQUIREMENT:
+				return validateRequirement((Requirement)value, diagnostics, context);
 			case WebPageCoursesPackage.EVALUATION_FORM:
 				return validateEvaluationForm((EvaluationForm)value, diagnostics, context);
 			case WebPageCoursesPackage.WORK:
@@ -216,8 +216,8 @@ public class WebPageCoursesValidator extends EObjectValidator {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public boolean validateRequierement(Requierement requierement, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return validate_EveryDefaultConstraint(requierement, diagnostics, context);
+	public boolean validateRequirement(Requirement requirement, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return validate_EveryDefaultConstraint(requirement, diagnostics, context);
 	}
 
 	/**