diff --git a/~dev_rating/application/classes/Controller/Student/Index.php b/~dev_rating/application/classes/Controller/Student/Index.php
index c2f407cff1e0c3294080caca943570e5a517a6ad..6d773f6699851d93844020917d541d0611ea2671 100644
--- a/~dev_rating/application/classes/Controller/Student/Index.php
+++ b/~dev_rating/application/classes/Controller/Student/Index.php
@@ -33,7 +33,7 @@ class Controller_Student_Index extends Controller_UserEnvi {
             $twig->disciplines = $disciplinesHandled;
         $twig->User = $this->UserInfo;
         $twig->Semester = $this->SemesterInfo;
-        $twig->SemesterList = DataArray::factory('Semesters')->getList();
+        $twig->SemesterList = Model_Semesters::factory()->getList();
         $this->response->body($twig);
     }
     
diff --git a/~dev_rating/application/classes/Controller/Teacher/Discipline.php b/~dev_rating/application/classes/Controller/Teacher/Discipline.php
index 25f0c9f26e65f8de9d843d724d5fa9da2976a76e..0d6b4bd6a82204426f9b891c6c4061dac97e8f59 100644
--- a/~dev_rating/application/classes/Controller/Teacher/Discipline.php
+++ b/~dev_rating/application/classes/Controller/Teacher/Discipline.php
@@ -219,7 +219,7 @@ class Controller_Teacher_Discipline extends Controller_UserEnvi {
         $subject['IsBonus'] = $info['IsBonus'];
         
         $subject['SemesterID'] = $info['SemesterID'];
-        $semester = DataArray::factory('Semesters')->bySemester($subject['SemesterID'])->asArray();
+        $semester = Model_Semesters::factory()->bySemester($subject['SemesterID'])->asArray();
         $subject['SemesterNum'] = $semester['SemesterNum'] == 1 ? 'Осенний' : 'Весенний';
         $subject['SemesterYear'] = $semester['SemesterYear'];
         
diff --git a/~dev_rating/application/classes/Controller/Teacher/Index.php b/~dev_rating/application/classes/Controller/Teacher/Index.php
index 188a6dbf8430175199703bb4afbc7f8aea30ac37..3e021eef46ebcbfb6a33a5f363ddb6ea9339f2f6 100644
--- a/~dev_rating/application/classes/Controller/Teacher/Index.php
+++ b/~dev_rating/application/classes/Controller/Teacher/Index.php
@@ -41,7 +41,7 @@ class Controller_Teacher_Index extends Controller_UserEnvi {
             $disciplinesHandled[$i]['Disciplines'][$j]['Groups'] = implode(', ', $groupsInDiscipline);
         } //!for_each
         $twig->Subjects = $disciplinesHandled;
-        $twig->SemesterList = DataArray::factory('Semesters')->getList();
+        $twig->SemesterList = Model_Semesters::factory()->getList();
         $twig->Semester = $this->SemesterInfo;
         $twig->User = $this->UserInfo;
         $this->response->body($twig);
diff --git a/~dev_rating/application/classes/DataArr/Semesters.php b/~dev_rating/application/classes/DataArr/Semesters.php
index 80a8f7491ebd1d95b476d6e3e916d2d34f4b15e7..b3cc5c64d6d23fef6498deb8f368be657bade0ad 100644
--- a/~dev_rating/application/classes/DataArr/Semesters.php
+++ b/~dev_rating/application/classes/DataArr/Semesters.php
@@ -1,5 +1,6 @@
 <?php
 
+/** @deprecated use Model_Semesters instead. */
 class DataArr_Semesters {
     protected $model;
     
@@ -7,11 +8,13 @@ class DataArr_Semesters {
         $this->model = new Model_DataArr_Semesters;
     }
 
+    /** @deprecated */
     public function bySemester($SemesterID){
     	$departaments = $this->model->getSemesterInfo($SemesterID);
-    	return new DataArray_Result($departamentsHandled);
+    	return new DataArray_Result($departaments);
     }
 
+    /** @deprecated */
     public function getList()
     {
         $semesters = $this->model->getSemesters();
diff --git a/~dev_rating/application/classes/Model/DataArr/Semesters.php b/~dev_rating/application/classes/Model/DataArr/Semesters.php
index eb23ad3054e867c2bf707a54f70cdf6ded73d5ca..cf8f4b38fad7c48a9a815419c557be59b9743f8a 100644
--- a/~dev_rating/application/classes/Model/DataArr/Semesters.php
+++ b/~dev_rating/application/classes/Model/DataArr/Semesters.php
@@ -1,13 +1,16 @@
 <?php defined('SYSPATH') or die('No direct script access.');
-  
+
+/** @deprecated use Model_Semesters instead. */
 class Model_DataArr_Semesters extends Model
 {
+    /** @deprecated */
    	public function getSemesterInfo($id)
     {
         $sql = "CALL `GetSemesterInfo`('$id'); ";
         return DB::query(Database::SELECT, $sql)->execute()->offsetGet(0);
     }
 
+    /** @deprecated */
     public function getSemesters()
     {
         $sql = "CALL `GetSemesters`()";
diff --git a/~dev_rating/application/classes/Model/Semesters.php b/~dev_rating/application/classes/Model/Semesters.php
new file mode 100644
index 0000000000000000000000000000000000000000..4c00e6c6f62c8b8b0bb9512becf7f6dd76e60547
--- /dev/null
+++ b/~dev_rating/application/classes/Model/Semesters.php
@@ -0,0 +1,35 @@
+<?php defined('SYSPATH') or die('No direct script access.');
+
+class Model_Semesters extends Model
+{
+    public static function factory() {
+        return new self();
+    }
+
+    public function getSemesterInfo($id) {
+        $sql = "CALL `GetSemesterInfo`('$id'); ";
+        return DB::query(Database::SELECT, $sql)->execute()->offsetGet(0);
+    }
+
+    public function getSemesters() {
+        $sql = "CALL `GetSemesters`()";
+        return DB::query(Database::SELECT, $sql)->execute();
+    }
+
+    public function bySemester($SemesterID) {
+        $departaments = $this->getSemesterInfo($SemesterID);
+        return new DataArray_Result($departaments);
+    }
+
+    public function getList() {
+        $semesters = $this->getSemesters();
+        $semestersHandled = array();
+        $i = 0;
+        foreach ($semesters as $value) {
+            $semestersHandled[$i] = $value;
+            $semestersHandled[$i]['Num'] = $value['Num'] == 1 ? 'Осенний' : 'Весенний';
+            $i++;
+        }
+        return $semestersHandled;
+    }
+}
\ No newline at end of file